It’s amazing how the meaning of this simple word can dramatically change by how it’s written. Agile (Big A) has structure and is comprised of set of disciplined practices designed to get results, whereas agile (little a) is simply ‘do-whatever’ with little or no discipline and structure.
I often find that people are confused by the differences.
Want to be Agile?
- educate yourself: understand what it is and what the impacts will be to your organization
- educate yourself: no, that isn’t a typo. Get educated.
- hire a coach: no, not because I am one, but because it’s really a good idea.
- listen to your coach: we don’t have hidden agendas. We want progress. You are the people doing all the hard work. A coach can help guide you there but they can’t change your culture, define your requirements, develop and test your software and automate your deployment process.
- do not fear failure: through failure comes learning. The saying “failure is not an option” should be rephrased to “failure is not optional”
- empower your teams and invest in people: managers need to foster learning and lead by serving. Help your people. Get them training and cultivate those relationships.
- attack your problems: Agile will create visibility. Deal with it.
- resist temptation to panic: Agile will not fail you. You will fail Agile.
- be open to crazy ideas: it might sound nuts to have a programmer and tester sit beside each other and work together, but it just might work.
Want to be agile?
- do it yourself: don’t hire a coach or even better, hire one and ignore everything they say. The benefit of this is that you can waste more money.
- use agile as an excuse: are your processes too bloated? Spent too much time planning and only have a week to build a system that will probably take 6 months? Call the project ‘agile’ so you can fast-track it and skip all the internal bureaucracy. Then blame Agile (yes, big A) when it doesn’t work.
- strive for mediocrity: want crappy results only faster? agile will get you there.
- don’t listen to the teams: duct-tape that 8 year old application together at all costs. Time spent improving the code would be wasted when you can be adding more features.
- don’t plan: change priorities early and often to be as ‘nimble’ as possible.
- buy lots of expensive tools: the pricier the better. If they cost a lot, they must be able to make you agile.
- invent solutions to problems that don’t exist: force process onto the teams to make your life easier, even if it means longer time to market, increased cost and overhead.
- multi-task: if you have one high-performing team, take away team members to work on other projects at the same time. Since they are high-performing, they will definitely be able to handle it.
Agile is comprised of a disciplined set of tools and practices. And they work. While there are subtle differences between Agile and agile on paper, the difference between becoming Agile vs becoming agile are the differences between great success and catastrophic failure.