The importance of setting goals in software development
Bob Slydell: You see, what we're actually trying to do here is, we're trying to get a feel for how people spend their day at work... so, if you would, would you walk us through a typical day, for you?
Peter Gibbons: Yeah.
Bob Slydell: Great.
Peter Gibbons: Well, I generally come in at least fifteen minutes late, ah, I use the side door - that way Lumbergh can't see me, heh heh - and, uh, after that I just sorta space out for about an hour.
Bob Porter: Da-uh? Space out?
Peter Gibbons: Yeah, I just stare at my desk; but it looks like I'm working. I do that for probably another hour after lunch, too. I'd say in a given week I probably only do about fifteen minutes of real, actual, work.
- Office Space (1999)
This is how I would end up spending my working week if I didn't set myself goals ... well that may be a bit over the top, but there is some truth to it.
I think setting goals in all aspects of life has its value, but in this post I will talk about it from the perspective of a software developer.
Setting yourself well defined goals will make your a much more productive developer and enable you to stay focused on the job at hand, as well as giving you something to strive for. It gives you a way to measure success and failure. Without goals, there is no clear indication of what your next step should be.
Goals should be set at different scopes, which I'm sure you've heard thousands of times before - short, medium and long term goals.
In software development your long term goals may be a company you want to work for, a role you want to play or a position you want to be in, in years to come.
However, the goals that we have to think about more often are the short and medium term goals. I think of medium term goals in terms of the things I want to achieve in an 'iteration' of an Agile project. This should be thought through and scoped out in the Planning game at the beginning of the iteration, and constantly refined on a daily basis. This will be something like "what stories do I want to implement?", or "what technology do I want to experiment with?" or "what pattern do I want to try?". The short term goals can be what features will I implement today.
If you practice TDD, you are constantly setting yourself "mini-goals". Write a test, and your goal is to make it pass. Make it pass, and then your goal becomes to make your solution elegant and simple.
Without goals, its so easy to lose focus. Leading to you spending half your day swapping between open windows, recompiling your code for no particular reason, pondering how to get past that big daddy in the next level of Bioshock or watching yet another video on youtube.
Having goals will enable you to focus your energy and make efficient use of your limited time - which leads to a productive day as a software developer. A good way to gauge whether you have ever achieved this, is when you get yourself "in the zone" - you are usually your most productive, and this is usually a result of having a clear and concise goals.
When I am coding I have found that keeping a notepad on my desk with a list of tests I need to write is a great way to keep yourself on track. As I think of new tests that will need to be written, I add it to the list, and when I have completed the test, I cross it off. When everything is crossed off, I am done and its time to move onto the next goal.
For the software projects at work, we use a program called OnTime2007 to keep track of the goals of the project, and we constantly refine them through stand up meetings and general discussions over coffee. A great side effect of explicitly setting goals in a team like this is that your (and your team members) estimation skills will improve.
For my personal goals as a software developer, I have a combination of notes on my computer and ideas floating around in my head. I am constantly refining my skills and always trying to find a better way. By doing this I am always setting myself goals to achieve a new skill or improve an existing one.
So the next time you find yourself lacking direction and "spacing out" during a work day or - on a grander scale - your career, take some time out to think about what it is you really want to achieve, and then do it.






Excellent writing.
Thanks for this post.
Could you please let me know more about OnTime2007, is it something like Microsoft Project software for SDLC.
Dutt
http://msdotnetsupport.blogspot.com
Reply to this
I haven't used Microsoft Project for years now so I can't compare the two products.
OnTime2007 is described as a 'Defect and Feature Management System'. It allows you to categorise your work under 'Defects', 'Features', 'Tasks', 'Incidents', 'Work Logs' and 'Audit Trails'. Each of these work items can then be assigned to someone, given a priority, estimation, due dates and have a whole range of extra pieces of information attached to it.
You can also add your own custom fields - so you can basically attach any attribute you want to a work item. An example of this is a field I recently added called 'Iteration' - so we could keep track of which iteration the work was completed in.
It then has a reporting/dashboard side to it where you can track project progress and report on a variety of criteria.
There is a demo edition of it available for download on their website if you are interested to try it out.
Reply to this
Some time before, I really needed to buy a building for my corporation but I did not have enough money and could not purchase anything. Thank goodness my mother suggested to try to get the mortgage loans from reliable bank. Thus, I did so and used to be happy with my secured loan.
Reply to this
I usually don’t post in Blogs but your blog forced me to, amazing work.. beautiful …
Reply to this
I really appreciate your professional approach. These are pieces of very useful information that will be of great use for me in future.
Reply to this
this is really a professional site,i really appreciate being a member of this site ,it really provides immense information.
Reply to this
I am just new to your blog and just spent about 1 hour and 30 minutes lurking and reading. I think I will frequent your blog from now on after going through some of your posts. I will definitely learn a lot from them.
Reply to this
i think we all should keep a very proffessional approach towards many things in life inorder to prosper.
Reply to this
Find open Cad engineering, teaching, and technician jobs in the US and Canada.
Reply to this
Get help writing a business plan with business plan samples and software.
Reply to this
nice one
Reply to this
Goals are the essence of a successful professional and personal life, and TDD is a proactive approach which help you achieve those goals, with minimum risks and failure.
Reply to this
I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well. In fact your creative writing abilities has inspired me. Internet WiFi de alta velocidad
Reply to this
Nice article, I am a big time fan of your site, keep up the nice work, and I will be a frequent visitor for a very long time.
Reply to this
Thanks for this article. It's just what I was searching for. I am always interested in this subject. Will bookmark!
Reply to this
Definitely a great post. Hats off to you! The information that you have provided is very helpful.
Reply to this
Thanks for sharing this thought provoking post, you have motivated me to become more productive in my job and to set goals that I could achieve.
Reply to this
if we are working for a software development first of all we should be more patience and the much patience we need while coding because many error occurs again and again,and as per the article to achieve goals in software development we should also have an ample of knowledge about the software and hardware too,and much more required in the coding and software is logic
Reply to this
thanks for sharing this with us
Reply to this
I recently came accross your blog and have been reading along. I thought I would leave my first comment. I dont know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
Reply to this
I just stumbled on your blog when i was lookng on google. I have to say that the information here was the most complet that I found anywhere. I am definitly bookmarkin this to come back and read later.
Reply to this
Definitely a great post. Hats off to you! The information that you have provided is very helpful.
Reply to this
I found your web page from bing and it is superb. Thanx for providing such an informative post!!!!
Reply to this
Where these jobs are available.....
Reply to this
aWESOME, kEEP IT UP
Reply to this
Great info. I like all your post. I will keep visiting this blog very often. It is good to see you verbalize from the heart and your clarity on this important subject can be easily observed..
Reply to this