Here's a quote from Agile Principles, Patterns, and Practices in C# By Micah Martin, Robert C. MartinSimplicity the art of maximizing the amount of work not done is essential. Agile teams do not try to build the grand system in the sky. Rather, they always take the simplest path that is consistent with their goals. They dont put a lot of importance on anticipating tomorrows problems; nor do they try to defend against all of them today. Rather, they do the simplest and highest quality work today, confident that it will be easy to change if and when tomorrows problems arise.I really don't get that.Does that means, instead of building a robust main engine which will be able to handle the features needed, one should just build one feature right ahead?Because as far as I know this would most likely eventually turns out inefficient and less flexible.Let's take an example:Imagine ASP.Net without base Control/WebControl classes, because the .Net dev team would just have rushed doing TextBox, CheckBoxe, Label, etc. immediatly. The .Net team dev would have taken the simplest path.Woudln't that have made the whole framework's developpement a hell of trouble?Can somebody tell me if I got the quote wrong of it's a really debatable rule?
Maximizing the amount of work not done in Agile?
agile
The concept of agile is that things change. So if you spend a very long time working on a super-engine, by the time you've finished and its ready to use, the requirements or technology may have changed and you'll have to start over.In reality that's not likely to happen, but the requirements do change. So agile methodology works on the principle of getting something running and modifying it to make it fit, evolving it to be what you want.Now this may sound dreadful, forever refactoring and never finishing (and some people do work like that, unfortunately) but if you have any experience then you'll be working on a design that can cope with a certain amount of change when you create the limited, initial releases. ASP.NET is a bad example of up-front-design given that it is currently on release 6 and each version is very different to the other releases!Its possible that you need experienced people in order to work efficiently in an agile way, or that experienced people will respond much better to agile than waterfall developments.