WHAT EXACTLY IS AGILE? (Posted 2015-04-23 16:32:32 by corey_reichle) So, after some time spent in a couple of "Agile" environments, I've yet to actually figure out what Agile means.  I mean, in English, it means able to quickly adapt to a change in the environment.  But while reading the Agile Manifesto, it seems to be written in such a manner that it can really mean anything, and is subject to wide interpretation by the "user" of it. It's gotten me to realize that repeating the mantra of "Agile" just really means a person doesn't like operating in a structured environment.  Of any sort.  Which includes a codebase with structure.  I'm far from a developer, but I've written some code of my own in the past, and I've hacked on other people's code, so I'm not a total dunce in this regard.  I do know a coding cowboy [ http://c2.com/cgi/wiki?CowboyCoder ] is the last thing you want pushing production code, and Agile seems to promote that style. An example of one of the Agile principles that really grates my nerves as an Ops person is the "Working Software over documentation" part.  No, sorry.  You will not fling a big ball of mud over the fence for me to babysit [ http://c2.com/cgi/wiki?BigBallOfMud ] without documentation.  Properly documented applications are a requirement for working software.  In fact, it's an integral part of the application!  This is CS101 folks:  Your code must be documented. "Individuals and interactions over processes and tools" is another that grates on me.  This may work when the company is a 10 person team.  Hell, one manager can manage a 10 person team rather easily.  Once you start getting over 8 individuals, you start seeing the need for processes and tools in order to prevent things like outages, bugs, and other things that make customers really, really, really unhappy.  Want to know the best way to ensure your business fails?  Have an outage at 11AM that lasts for an hour. Don't get me wrong, the feelings behind Agile are great.  The implementation, however, is lacking.  One can be in an agile (English) environment, and still produce good, documented code; using proper processes and tools.  In fact, I really like being in a highly adaptive environment, it leads to great changes.  But, adaptive doesn't mean you sacrifice Software Design 101 just to rush something out to production, and it doesn't mean you need to skip processes that ensure only good code goes to production. If your processes are slowing you down so much, you need to streamline your processes.  If you are introducing bugs into production on a regular basis you need more testing and a better process.  Skipping process doesn't provide any real value-add. Basically, being agile (English) is a great goal.  The Agile Manifesto is a poor implementation. -------- There are no comments on this post. To submit a comment on this post, email corey.reichle@gmail.com or visit us on the web [ https://www.coreyreichle.com ].