Tuesday, June 8, 2010

Shooting From The Hip

This is a style of programming that is often frowned upon. People shooting from the hip are called "Cowboys." They are wild gunslingers that make a mess wherever they go.

This is, of course, the stereotype. There are exceptions to the rule. Shooting from the hip is the rawest form of programming. The programmer has the most power, can make the most mistakes, and completes the work in the shortest time possible.

It takes a lot of practice to be a good hip shooter but when that time crunch happens (2 weeks to do a 6 month project) you will be happy you have the experience.

You may not know it, but you probably shoot from the hip when you are fixing bugs. Once you find the bug, it's usually a quick "reflex operation" to fix it. Hip shooting is taking that "reflex operation" and applying it to features as well as bugs.

When Do You Shoot

You don't have time.

The requirements are small or you know them well.

You aren't obligated to follow rules.

It's better to be done than done right.

You are working in small teams (1-3).

You know how to write good code quickly.

The feature can be disabled if working improperly.

How It Works

Think quickly about how you will fix the problem/implement the feature. Start writing. That's it. Go go go!

Make sure you have an on/off button for this new code (in case it breaks or is not the right solution). Provide a working demo to the requester in minimal time.

Work as fast as possible - this is exciting. Try to be faster than the last time. Try to impress everyone with how fast you wrote that feature. Make sure before it goes live that you didn't miss anything. Best if you can get another developer to review/test your new code.

A Story From A Cowboy

I can be a hip-shooter from time-to-time. I think it comes from my level of knowledge with the language, the customer, the requester of the feature, and the time allotted to developing the feature.

I once astounded a co-worker who had a very regimented process when I was asked to work on a new feature and began typing away vigorously. The feature request was a 30 second conversation with the CEO and it was complete and in the repository within 20 minutes. For him, it was at least a 2 hour job.

Monday, June 7, 2010

The 10 Minute Dash

The 10 Minute Dash

I haven't tried a 10 minute dash yet but I'm guessing it would be very effective. You do dashes of 10 minutes where you focus on nothing but that one task.

When to use it

1) If you keep getting distracted

Simply stop doing other things. Close the door, put the phone on DND, shut down your email client, and get 10 minutes of solid work done. Why stop there? Keep going and get a few solid hours of work done.

2) To get started

Like the article (link below) states, this is a mechanical process which means it is much closer to when you are "in the zone" making it an ideal way to start working on a new project.

You want to avoid thinking about the start or finish of the project (something also discussed in the article). This involves getting something - anything - on paper or in code. If you combine this technique with "focus on the important" you can jump right into a project without hesitation.

Reference Article

Procrastination Hack: Aim for Nonzero @ workawesome

Sunday, June 6, 2010

HasteCode Introduction


I have been analyzing what I do day-to-day during both my day job and my evening projects. Some days I am extremely productive while others I feel like nothing was done.

This blog is dedicated to expanding on tips and tricks I have collected over the past year of self-observation. From this information, I hope to form a new software development methodology that enables excellent programmers to be very effective programmers.

This methodology is named "Haste" or "HasteCode"



More to come soon!

Blog created June 6, 2010.