Is Agile Good For Software Development?
Now 16 years old, Agile is in its teenage years. As such, it gets blamed a lot for, well, everything. So, let’s address a basic question — is Agile good for software development?
The answer is: Yes but…
Yes, Agile advocates for an iterative, collaborate approach to software development. That’s great. It’s much better than a team going down a rabbit hole for a year only to release a piece of software that no one needs anymore.
However, far too often, Agile is implemented incorrectly and/or blamed for failures outside of its control.
Agile is a tool kit, a set of practices that are intended to adapt to the needs of the team. At its core are 4 main tenants:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Notice the word “over” is in each tenant. Agile never says we should write code with reckless abandon. Agile never says we should rid ourselves of all documentation and fly by the seat of our pants. That would be foolish.
Rather, Agile says that we should prioritize individuals over tools, software over documentation, etc.
The best Agile teams take a non-prescriptive, non-dogmatic approach, and understand that there is indeed a time and a place for tools, for documentation, and for a plan.