Sep 2007: XTreme Programming (Agile) – 101
Light weight software development methodology for small to medium sized projects.
No need to follow complex processes and filling tons of documents for anything, save the precious time the mighty programmers have and relieve them from pain of documentation and Bureaucracy.
Work elbow-to-elbow with customer in all software development phases (Planning, developing, deploying).
Review and receive feedback from customer all the time, customer need to be aware of the state of the application any given point of time.
Release well tested software very frequently.
Shorter release cycles (weekly/daily/monthly), follow test driven development, automate your testing and deployment.
Follow Iterative software development cycles.
Start with what ever information available, refine and rewrite as things become clear in an iterative way.
Work very closely with the team, write code in pairs.
Two person, one computer, one task, quality of the work product will be better in the long run (lesser bug because two brains working on single task). If possible have bigger cubes, and have every one sitting closely together (including the customer).
Continuously improve the code to make it better.
Look for even simpler refinement in past release’s code, and continuously fine tune it.
Keep everything very simple and clear; keep it running all the time.
No need for detailed architectural design before starting coding, make it simple, show the result to customer, refine it in later iterations if needed.
Following xTreme programming is not that easy when compared to well planned, documented ‘Other’ methodologies, so do all the above without killing yourself and have fun.
Retrospect after each iteration.
Correct the mistakes, do course correction, and become better ‘extreme programming team’, after each iteration.