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 [email protected] or visit us
on the web [ https://www.coreyreichle.com ].