Thursday, January 30, 2014

Agile Development......

Wikipedia on Agile Software Development 

Agile software development is basically a set of software development methods that promote adaptive planning, development and delivery.

What I thought was most interesting about agile software development methods is that they were developed to completely contrast waterfall methods because many people thought these methods were too "micromanaging".

 The Agile Manifesto, which basically started the movement of agile software development, is based on 12 principles:
  1. Customer satisfaction by rapid delivery of useful software
  2. Welcome changing requirements, even late in development
  3. Working software is delivered frequently (weeks rather than months)
  4. Working software is the principal measure of progress
  5. Sustainable development, able to maintain a constant pace
  6. Close, daily cooperation between business people and developers
  7. Face-to-face conversation is the best form of communication (co-location)
  8. Projects are built around motivated individuals, who should be trusted
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Self-organizing teams
  12. Regular adaptation to changing circumstances

I prefer waterfall-oriented approaches to agile development because I see many issues with the above.

   1. "Customer satisfaction by rapid delivery of useful software" - this shouldn't even  be stated because I believe this to be a founding principle in all software development

   2.   "Welcome changing requirements, even late in development" - not very reasonable.  There has to be a "feature freeze" date so that the customer does not tell you that they want a feature that tosses people they don't like into a black hole 2 days before the program is supposed to ship.


   3. "Face-to-face conversation is the best form of communication (co-location)" - I agree with this and it's a lovely thought, but with growing technology and things like repositories for code, many people can work on a project or talk about requirements without ever meeting face-to-face.

I personally like the idea of trying to squeeze every last drop of information from the client at the first meeting to establish a set of requirements and use waterfall-oriented approaches.  The agile development approaches just seem too laid back and unproductive.

No comments:

Post a Comment