What is agile development?
Agile development is a term used for iterative and/or incremental software development methodologies. Extreme Programming (XP), Scrum, Lean Development are a few methodologies associated with agile development. Even though each of these methodologies are different, they all share a common core definition – the Agile Manifesto. With this method, software development occurs in iterations. Continuous feedback is gathered from users and this is then used to fine-tune the development process.
Why is agile the buzz word?
- It establishes a feedback loop. Software is being developed in smaller chunks and it is delivered to customers in a short time frame. They give you feedback and then the team can use this feedback to fine-tune the product and development process.
- It encourages innovation. Another advantage is setting the product and team for innovation. Unlike waterfall where the delivery cycle is longer, with agile you get a chance to do proof of concept and then chances to tweak and improve. Organizations don’t have to wait months or years to know if they are meeting customers needs or not. Organizations get a chance to create what the users want and would love to use.
- Efficient, shorter delivery cycles. Lean looks at creating efficient processes without too much wastage. Agile looks at high-quality, customer-defined products. With these two tools in hand, oranizations can now create high-quality products with the highest efficiency and shorter delivery cycles.
What does it mean to go agile?
It’s not a phase or a temporary solution. Agile is a phenomenon, culture, and language. Organizations have to adopt it as a way of life: agile living. The other thing to remember here is that agile does not mean throwing everything one has been doing out the door. Agile living means being able to create processes that can accommodate and respond to change: change in market, change in need, change in customers, change in products, etc. What really needs to happen is organizations have to take a close look at existing processes, eliminate redundancies, waste, and rework. The focus should be doing the right thing the first time and involving end users.
Another big focus should be on collaboration. Teams have to work closely to get the job done right and efficiently. Like the agile manifesto mentions, the focus should be on people and not processes. Getting a successful product out the door is important, and this cannot happen without customer collaboration.
In short, agile gives you tools to be ready for change, to be flexible, and efficient in order to deliver a product to customers that is high-quality.
Are you agile?
Agility is not easy and it expects us to throw our traditional and fundamental methodologies thinking out the door. We cannot expect teams to just pick it up and run with it. Teams needs training and support; they will have to learn as they go; and it’s easy to fail or fall the first couple of times. Also, agile is not for everybody and it might be harder on some teams to adopt than others. Agile has many flavors and organizations might have to let the teams choose a flavor depending on what works for them. Remember – agile is a way of life and one doesn’t change life in a day or so.