This is not Agile
Misconceptions people have about agile software development.
2 min read
Many of us, many teams, many companies, and many engineers do not know what agile really means.
I will confess, I was one of them, thinking that agile means delivering faster. And no, agile doesn't mean delivering faster.
Let's dig into a couple of things people misunderstand with agile software development.
Agile is just a synonym for fast.
While agile software development can lead to faster development times, agile is not about being fast. Agile is about delivering early and often, doing so incrementally.
Agile means no planning.
In fact, agile software development relies on careful planning and regular re-evaluation of the plan to ensure that the development team stays on track working on what's most important.
Agile means no documentation.
While agile software development does prioritize working code over extensive documentation, it does not mean that documentation is completely ignored. Agile teams often use lightweight documentation techniques to ensure that important information is captured and shared.
Agile means no hierarchy.
While agile software development emphasizes collaboration and flat organizational structures, it does not mean that there is no hierarchy or leadership within the team. Agile teams often have designated leaders who facilitate collaboration and decision-making.
Agile means no structure.
While agile software development is often seen as more flexible and less structured than other approaches to software development, it does have a clear set of principles and practices that guide the development process. Agile teams follow a defined process but are able to adapt and change as needed to meet the needs of the customer.
Scrum by the book isn't agile. This is a mistake many companies do, following things strictly. Agile is about embrace changing, and we don't do agile, we are agile.
If you asked me to explain what agile software development is:
Agile software development is about correcting the course. Our goal is always to be working on the most important thing.
We want to deliver things early, frequently and incrementally.
By shortening the feedback loop, we learn as soon as possible what the next important thing we need to work on is, and we embrace change as necessary.