Jonathan and I had the distinct pleasure last week of sitting down with Sam Guckenheimer for a chat and while the focus of our talk was applying the Agile methodology to delivering great software, it got me thinking about using the Agile method in other areas of life and work. In fact, the night before sitting down with Sam, I delivered a deck to students at the University of Guelph titled Got for IT: How to Have an Awesome Career and Life that was initially developed by my former colleague and self described rock and roll accordion-playing, code-writing, fun-loving tech evangelist, Joey DeVilla. Part of the talk compared development methodologies with planning for your life:
The premise with the Waterfall method, is that all information is gathered during the requirements phase, fully documented and then designed, implemented, verified and maintained. I was taught a similar method for operating system and application deployments in my IT consulting days. The problem is that rarely, if ever, do you know or does the client know every detail of what is needed at the start of the project cycle. And it’s difficult to plan for what you don’t know. In life or in IT projects.
With Agile, the premise is that you do just enough planning to get started and then you add more as you discover more as you progress. You are gathering requirements throughout the project cycle, designing as you go and implementing along the way. You don’t expect to have a complete plan upfront and you do expect change, which imho is more realistic to what life is actually like.
Even though the Agile Manifesto was born of a desire to create a mechanism for better software delivery, I see applications outside of that world too. In life, keeping an eye on your goals while planning a little at a time allows you to adjust for change, take advantage of opportunity and be released from disappointment because The Grand Plan didn’t pan out exactly how you anticipated. In desktop deployment projects, applying elements of the Agile methodology should allow you to be more flexible, adapt as issues are discovered and respond to your client’s needs. Less documentation, more collaboration with the customer and being responsive to change.
Now, I’m not out there deploying Office and Windows these days, so I don’t have the opportunity to put my theory into practice. What do you think? Is it possible to be "more agile” in client deployments? Leave me your thoughts here on the blog or join the conversation over on our Linkedin group.