Forget 2013 Resolutions and Focus on Your Software Development Goals
By Howard Young
The first of the year everyone comes out with forecasts and resolutions which are promptly forgotten or broken within a week or so. However, the first show of the year on Dave Ramsey, the nationally syndicated personal finance radio show, Ramsey did the correct thing by having his listeners focus on goals this year instead of resolutions.
His five step process, which I share below, is very applicable to getting your finances into shape, but more important his process is a lifestyle change which you can adapt to your development process or any area in your life. Here is my interpolation to an Agile development process and how it will help you stay on track this year:
- Goals need to be specific. Agile is really good at specifying a goal or in other words user stories. This is the requirement which you are going to develop for the customer so it needs to be specific and testable. An example which Ramsey gave was to “lose weight this year” vs. “lose a minimum of 15 lbs in the next three months.” The first goal has an arbitrary value which could mean anything from 1 to 100 lbs; the second is written with a specific goal in mind which is measureable and testable.
- Goals need to be measurable. When you write your user story, make sure you quantify the parameters of the story. Being very specific limits the scope of the requirement and makes it easier to demonstrate the capability to the customer. Sometimes user stories are too large and you may want to subdivide them into child stories.
- The goal has to be your goal. When it comes to personal goals, it has to be your goal. You have to want to achieve the goal of “losing 15 lbs” and not somebody else’s goal. Unless you’re a senior developer, you’re pretty much told to go and implement the code “this way.” But it doesn’t have to be that way. In order for you to own the task, you need to present alternative solutions which ultimately produce a better product. There are lots of ways to lose weight including eating less and exercising more. The same goes with software development, you have many methods and techniques which can be used to implement the same result.
- The goal needs a time limit. Part of owning the goal requires that you come up with an estimate of how long it will take. If you’re going to lose 15 lbs in 3 months, you need to lose 5 lbs a month. Likewise, if the user story takes a month to implement, you need to make daily progress on that task otherwise you risk slipping the schedule out. Prioritize your task and get things done within the time limit.
- Goals need to be in writing. We’re all busy with our day to day work so you need to make sure that goals and tasks are recorded otherwise they are lost. Sometimes when implementing a user story, you may have a good idea which will improve the software. What you need to do is to insure that the idea is captured and put into the product backlog for you to work at a later time. This way things don’t get lost and you don’t get sidetracked.
The most import thing to remember as a developer is not to get sidetracked. Focus on your goals to get things done faster. Write your goals down and review them every morning to make sure you are achieving them in an efficient manner and you will find that you will be able to optimize your development process and produce world class software.