A Badge of Honor
Often times, I hear folks exclaim that they’ve been on “40 development projects over the past 10 years.” Or, “70 projects spanning a 20 year career.” They say this as if it’s some badge of honor. But I’m not so sure that it is.
Of course, there is value in widespread project exposure. Gaining experience with new technologies. Experiencing the dynamics of different teams. Understanding the challenges surrounding different organizational cultures. Each project is unique, bringing its own set of experiences, and these experiences are all incredibly valuable.
But when I see that someone has jumped from one project to another, it also leaves me wondering! Have they ever stuck around long enough on any single project to see their decisions through to the end? Have they ever had to live with the decisions they’ve made? An amazing compilation of knowledge is obtained by not only participating in the early stages of development, but also in maintaining the software system after it’s been released. To name just a few:
- Dealing with the challenges of Phase 2, while also maintaining Phase 1.
- Managing multiple branches of the software system. Merging those
branches back together. Creating new branches.
- A critical production issue arising about the same time you need to start heading out for that important customer demo.
- Attempting to change a piece of code that hasn’t been touched in 10 months.
- Watching the software system grow from nothing to a system that’s more than 500,000 lines of code. Keeping the build performant. Keeping the build working!
- Being forced to live with seemingly meaningless early design decisions that haunt you over time.
- Trying to upgrade versions of third party libraries while development is ongoing. Simply recognizing the right time to upgrade.
And there is so much more. Priorities tugging you in five different directions at one time. If you’ve had the luxury of living with a system (and the mistakes) you created, you’ll realize that there are very few, if any, decisions that shouldn’t be given conscious thought.
When an individual sticks with a project for a long time, they realize the importance of maintaining a clean design, a robust suite of unit tests, and how they package their software system. There is significant knowledge gained by sticking with a project for a long period of time. Perhaps the next time you hire a developer, it might be wise to ask them, “What’s the longest you’ve spent on any given project?” That may be more important than the number of projects they’ve been on.
Somewhere along the way, I picked up a small piece of advice that has helped serve as a valuable guide. There is a big difference between ten years of experience and one year of experience ten times. When you jump from project to project, never living with the decisions you’ve made, you have lost an opportunity to learn what works well and what does not.





Comments
Jeroen Wenting replied on Wed, 2010/03/17 - 2:20am
I've myself been involved in all stages of a product lifecycle from pre-analysis to post mortem (and had to carry one or two to the grave). But I've never had all of those stages happen in one and the same project (unless you count the one or two that failed to get off the ground at all, which went directly from pre-analysis to the grave).
In part that saddens me, as I've never seen something go through its entire lifecycle. In part it's a good thing as it's given me broad exposure to a variety of environments and technologies (rather than being stuck in the same narrow environment chosen by someone back in 1997 and maintained to this day with no major upgrades because those'd be too expensive and risky to implement, thus stopping my skills from growing past what I knew back then).
Anilchandra Noo... replied on Wed, 2010/03/17 - 7:25am
Jeroen Wenting replied on Thu, 2010/03/18 - 1:07am
Due to budget restrictions and company politics we're not allowed to do any active development of the system otherwise, and our training budget has been slashed so severely there's not even room for me to spend the time I have available in seminars or reading books so we're effectively idle.
That's little different from what I've experienced in just about any other company I've ever encountered (they all promise challenging work and lots of time and money for training and "personal development" in their recruitment procedures but once you're hired that all turns out to have been just a sales pitch.).