Sharpen Your Axe Before Starting Your Next ProjectFiled Under Human Factors, Software Process
This is a reader guest post by Jeremy Neuharth. Jeremy is a .NET software engineer with State Bank and Trust and enjoys learning and assisting teams in implementing release management and continuous integration.
Abe Lincoln was quoted:
Give me six hours to chop down a tree and I will spend the first four sharpening the axe.
Despite Abe’s wisdom and personal experience to teach us otherwise, I find continued pressure to dive into projects with little to no planning in efforts to “save time”. Additionally, the introductions of agile processes (and misrepresentations) have given some an excuse to toss out planning and communication on a whole new level.
So let’s take Abe’s simple yet effective quote and break it down into an easy to understand project, such as balancing the checkbook. I will quickly run through two scenarios.
I jump over to my desk excited to get started recording transactions in my check book register. I realize I have a few receipts in my wallet so I go to get them. On the way I decide I’m feeling thirsty, so I head into the kitchen to grab a soda. I have my soda and sit back down at my desk, but realize I forgot the receipts I got up for in the first place. I run out to retrieve them once again. After I get back to my desk, I look at my computer where I notice an email and get sidetracked by reading the newest post on Codesqueeze. By this time my evening has disappeared, it’s late and I’m tired so I hit the sack and put off balancing the checkbook until tomorrow.
Scenario 2 (Abe’s Way):
The end of the month has arrived, and I realize I need to balance the checkbook or the wife will not be happy. Before I begin, I write down a short list of items that I need in order to insure that the checkbook gets balanced. In no particular order, it looks something like this:
- Gather all my receipts and the bank statement
- Grab the tools I will need to assist in completing the task (pencil, scratch paper, and calculator)
- Pick up the checkbook
- Clean off the desk of any distractions
- Swing into the kitchen and get a soda
- Turn on “number crunching music”
- Shut off my computer and tell myself there is nothing good to read on Codesqueeze
- Close the door to the office so no one will bother me
During the process of making the list, I realize I need to add another item I hadn’t previously considered: leaving my cell phone in the living room on the silent setting. I am now prepared to execute my simple plan, which allows me to finish the balancing of the checkbook in record time. Because of this, I’m able to move on to other more enjoyable tasks and I reap the added bonus of keeping my wife happy as she knows how much money we now have in our account.
This might be simple example, but how many times have you started a project with the wrong tools, solved a problem that didn’t need solving, or discovered after jumping in that a different approach would have been more effective? How many times would a two-hour brain storming session with your client save man months worth of refactoring and building different logic within your code.
The point is you can’t go wrong dedicating some time to planning and preparation. While we may discover along the way that we might not be able to sharpen the axe as much as we should, taking Abe’s advice to do some sharpening could very well be less risky then just diving in.