Read the Manifesto again. You will notice that is actually about the considerations you should take into account if you want to run a software team without managers. Each point is there to ensure that the necessary functions a manager would traditionally take care of still get done.
Waterfall never existed as some kind of formal process. It was invented as an illustrative device.
I did, and here's the direct quotes:
> Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
As I said, the cycle length is shortened, yet...
> Continuous attention to technical excellence and good design enhances agility.
...design is not removed from the process, but kept as a cornerstone.
> Simplicity--the art of maximizing the amount of work not done--is essential.
This one might be a bit more of a stretch, but I see here the benefit of designing a simple, elegant solution rather than doing work straight ahead.
In any case, I don't fully agree with the agile manifesto, even when correctly implemented. Particularly this quote is the bane of my existence:
> The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Which you can identify as the very opposite of the ever popular 'this meeting could have been an email'.
Once you put it together, you'll realize that the message is:
1. Deliver software. You won't have a manager hounding you to do so.
2. Do good work. You won't have a manager questioning what you've done.
3. Don't spend more time programming than you need to. You need time for managerial tasks.
4. Meet with your teammates. You won't have a manager to act as the go-between.
My opinion is based on being a software engineer (junior through principal) at small, medium, and fortune 100 companies. I also have years of experience as an engineering manager.
It’s silly to be absolute about it, but I think there’s probably a large overlap between competent engineers and people that agree that the agile manifesto is generally a good thing.
What says that? The Manifesto is there to help guide you if your group chooses to forego managers, but it doesn't suggest not having managers is the right tool for the job. An engineer more than anyone should understand the concept of tradeoffs.
We're building entire skyscrapers and cathedrals by gluing a few toothpicks together at a time. Because that's all there's time for in a sprint. It shows in the quality of modern software, and the never-ending updates necessary to keep them from collapsing.
Of course planning it all out years in advance and then executing blindly on those plans without ever correcting course wouldn't make sense either. But maybe a middle ground could be better than either extreme.
Waterfall vs agile is not really about how much effort you put into design, it’s about how long the plan-code-reassess cycle is.
You should not plan a whole year ahead and then act, it’s better to plan the next couple of weeks.
But you still need to define how the work for those weeks fits in the system, the load it’s expected to take, the metrics that tell you it’s working, how to roll it back if you screw up, etc.
I find that many people use agile as an excuse to ignore these questions and just pile up fixes on top of prototypes.