Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

One Step #19

Open
tempire opened this issue Dec 31, 2012 · 0 comments
Open

One Step #19

tempire opened this issue Dec 31, 2012 · 0 comments

Comments

@tempire
Copy link
Owner

tempire commented Dec 31, 2012

created_at=2013-01-02T00:40:57

If my career has taught me anything, it's the importance of having repetitive tasks be completable in one step.

Every action should take one step.

Consequently,

Every piece of information should be one step away.

How can this apply to daily development?

Let's talk about databases. What is involved when you deploy your schema? If you can't answer in under 5 seconds, the process is too long. You're wasting time. Your brainpower is not being used effectively.

When working with a Mojolicious web app, here's my process:

myapp deploy_schema

After I write the deploy_schema command, I tend not to remember the details of how it works. Sometimes it's a wrapper around DBIx::Class->deploy, sometimes it's a fixture dump with MongoDB::Collection->insert. I don't care, because I'm busy making the application do something nifty.

It's actually enjoyable to make schema changes, because I marvel at how easy it is, every time. Internally, I'm overjoyed like a little girl. Sometimes I giggle.

This giggle affects my opinion of the project. It affects how much I want to work on the project. It affects how I feel about the other people involved in the project. It positively correlates to how well the project works, how maintainable it is, and how well designed it is.

Changing a schema requires other supporting tasks, like changing tests, changing fixtures, and running those tests; those are related, but separate processes. Each one of those are one step as well, which can be subsequently combined to create higher order one-step tasks.

Keep combining, and after a while, you've got one-step deployment of the entire product...kind of like this blog. A Perl app deployed in one click.

It's a natural progression.

Make everything one step.

I'm on Twitter!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant