Agile is very popular. It seems like it solves all our problems if we simply just say or use it. We can forget about the traditional problem solving process. Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing and selecting alternatives for a solution; and implementing a solution.
Here is the Manifesto for Agile Software Development:
“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.”
From the Manifesto above, I just cannot see how it solves all our problems magically. To me, agile is just one extra way to approach problem, and doesn’t conflict with traditional problem solving process. They solve the problems from different angles, and can go hand-in-hand with each other. They should both on your shelve of tools. Any methodology has its application domain, and agile is not an exception.
I found that if some teams focus too much on agile and without sufficient planning can have initial success on faster delivery, follow by slower delivery, and then by maintenance nightmare a few years later. At that time, the original “glory” development team was long gone. Technical debt must be paid by the current team, which usually is much smaller in number. So I complete one of possible sentences here. In this case, agile is great unless you are the one who maintain it.