Manifesto for Agile Software DevelopmentI have spent the past few hours understanding Agile Programming Methodologies better and have found some of its practices quite interesting and quite different from the ones in the conventional software development models.
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
In our undergraduate course on "Software Engineering", we were introduced to a whole bunch of Traditional Software development Models (and a whole lot of SE jargons). The only thing that bothered us all was the extensive documentation that was required at each stage. For me, seeing valuable "man hours" being devoted to formal documentation rather than the code was something quite disturbing. It is not that I am against documentation or opine that there has to be zero documentation. I am just of the opinion that documentation needs to be concise, and less formal. Agile Programming just requires that.
Another practice Agile Programming methodologies require is "Pair Programming" where two developers work on a single terminal working on the same code. This is something that I had followed during mt internship and found extremely helpful. Not only was the productivity higher in terms of code delivery, the code quality that we turned out was also impressive. Two brains definitely are better than one!
Agile Programming Software Development Pair Programming