About Agile Programming
What is Agile?
Agile programming is a better way to produce software, especially in a changing business environment.
The phrase "agile software development" (often just "agile" for short) refers to a group of principles and practices that enable people to create bug-free software and do it much faster than with traditional software development methods. Changes are also much faster and easier to make.
The term "agile" refers to several software development methodologies that have been developed since the early 1990's. They all involve doing projects in iterations of about 2 to 8 weeks that deliver well-tested software. They all involve small teams working in close collaboration with their customers so that projects stay on track.
We help our clients find the shortest, surest path for them to achieve Lean and Agile maturity.
Common Agile Fallacies
Agile won't work for us because...
- "Our customers demand fixed-price contracts."
- "We build safety-critical systems that must pass FDA regulations."
- "We don't have room for the flexibility that Agile demands— we have to deliver all the features."
- "Our developers are not superstars."
- "Our software controls billions of dollars worth of investments— we need separation of duties for audit purposes, so developers cannot share roles."
- "We build embedded systems— you can't use Agile when there's hardware involved. Hardware has to be designed up-front."
Agile software development has worked, and worked very well, in all of these kinds of situations.
It's a myth that Agile practices are lax, or that Agile teams cannot commit to delivering on a hard deadline. On the contrary, genuine Agile practices are highly disciplined team-based techniques. They require a level of commitment that is often seen only in entrepreneurs, explorers, or in the creative arts— situations where people are following their passion. It's a kind of commitment that cannot be achieved by extrinsic motivators. No amount of carrot-and-stick tactics, such as bonuses or negative performance reviews, will achieve it.
How do you get this high level of commitment? There is nothing more motivating than a challenging but achievable goal, where those doing the work are allowed to do it in a manner they are proud of. Team autonomy is what generates this level of commitment. But team autonomy is not anarchy. We help you understand this crucial dynamic. We help you learn how to create and sustain genuine high-performance Agile teams.
Are You Already Doing Agile?
Can you tell whether a software team is really agile? Does it even matter? Businesses don't move to Agile for its own sake; the market doesn't care what methods a business uses. It only cares about results. The good news is that Lean-Agile methods deliver amazing results, and teams love working this way.
So, how do you tell whether a team is agile? What are the key signs?
"I can't believe the level of ownership this team is taking now! They used to just shrug when told there's a problem with the release they just put into production."
― Senior Director of IT at a bank, after their first agile iteration.