Saturday, January 29, 2011

Shaping Great Teams on Bad Projects

Ever since I read "The World's Most Powerful Leadership Principle: Servant Leadership", I've felt invigorated about corporate software development. This book has made me change my mental models and perspectives on building great teams on bad projects.

One of the key things I learned from this book was that there is an undeniable difference between managers and leaders. As James C. Hunter says it best, "Management is what you do: planning, budgeting, estimating, organizing, problem solving, and strategizing. Leadership is who we are." Leadership can be defined as something simple as knowing how to inspire your teammates to become better than they think they are. Incidentally, I look at this much like the military. A skilled leader of a unit (usually a Captain or Major, I believe) has the commanding ability to inspire his men to become more courageous and more heroic while in the heat of battle.

"The Heat of Battle" can be applied to software Death March projects: you're in a situation where your team's confidence is deteriorating and their determination to finish the project is fading. From demanding clients, to features that aren't even possible to implement, to teammates giving up on you--these are all products of an environment where "all odds are against you". This is where the servant leadership characteristic needs to be implemented. It is a characteristic and discipline that needs to be practiced over time.

Ultimately, your team members need to understand that they are leaders as well. There is no "lead" the pack. Everyone puts in 100%. Externally to the unit (your production team), there are titles like "Lead Software Architect", "Lead Software Engineer", or "Project Manager"; however, internally they must all understand that they are all equal in value, opportunity, and mentorship. Everyone on the team has a voice and you have to hear them out.

Good luck and have fun,
Jaime Bueza

Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.