Dave Thomas, Founder and
Chairman of Bederra Research Labs, gave the keynote this morning at Agile 2010 here in Orlando, FL. He
spoke on the benefits of Agile Development, practicing Lean,
transitioning to Agile, and how to overcome today's challenges for
Agile Development. Below are some key takeaways.
Benefits of Agile Development
Thomas listed the benefits of Agile Development. The first benefit is improved predictability, which comes from:
- simplified workflow,
- short iterations,
- collaborative estimation,
- and simplified visual progress tracking.
Next he listed improved quality, which is the result of improved requirements communication and integrated teams. Last he mentioned that Agile Development does provide some improved productivity, but not nearly as much as managers usually expect. Less meetings, less rework, improved response to change, improved communication and reduced stress will all lead to you becoming more productive, but not so much that you are twice as efficient as you were before using Agile Development.
Thomas said that practicing Lean requires one secret ingredient - the ability to think. He went into the concept of metrics and explained that you can only improve what you can measure and, thus, need reporting in order to be successful with Lean. He emphasized that spreading leadership horizontally across a Lean software organization is important (as opposed to spreading it vertically up the ladder). He also stressed the need to grow your knowledge in your spare time by meeting with coworkers, friends, and even competitors.
Transitioning to Agile
He gave his top 10 steps for a "large" transition to Agile:
Do a Lean and Agile assessment to know where you are starting from.
Establish realistic expectations for predictability, quality, and productivity.
Plan for systemic change over an 18-36 month period.
Establish a change management plan.
Streamline portfolio management.
Implement CI (Continuous Integration) and automated measurement infrastructure.
Invest in an inventory of automated tests.
Implement a Lean organization structure with a real technical ladder.
Resource feature and component teams.
Learn and adapt from experience.
Challenges and Solutions
Thomas covered some key challenges that are part of the Agile's future. He stated that software is simply way too hard and there is way too much of it. He explained that object technology is drowning us in complexity, that maintenance and integration dominate development, and that developers can no longer practice data avoidance. He believes that skills are in relatively short supply and that, at rate things are currently going, there will never be enough craftspersons.
So what can be done to overcome these challenges? Thomas believes that education is key. We need to teach teamwork and storytelling to kids in kindergarten all the way up to 6th grade. We need to invest in education beyond trivial literacy and really teach people how to compute. We need to write in more expressive, higher-level languages and we need to be more data-driven. It is important to adopt better business practices like sensible budgeting and portfolio management. Thomas also stressed the need to develop a winning culture because software is a team sport and requires coaching.