Software Engineering, Project Management, and Effectiveness
Extreme Programming (XP) is a lightweight software development methodology based on principles of simplicity, communication, feedback, and courage. I like to be able to scan methodologies to compare approaches. To do so, I create a skeleton of the activities, artifacts, principles, and practices. Here are my notes on XP:
12 Practices Here's the 12 XP practices:
For a visual of the XP practices, see a picture of the Practices and Main Cycles of XP.
5 Values (Extreme Programming Explained)
Phases The following are phases of an XP project life cycle.
For a visual overview, see Agile Modeling Throughout the XP Lifecycle.
These are the 12 Agile principles according to the Agile Manifesto:
These are the four Agile values according to the Agile Manifesto:
Please provide a more in depth details of the processes so that they can be adopted for practical use.
Would like to read some stories where Agile, XP.
What scenarios or project types should avoid these methodologies?
eXtreme Programming Explained by Kent Beck does the job. You can also check out http://www.extremeprogramming.org.
The rule of thumb is that if you know exactly what you need to build (i.e. you've built the same thing many times before), you don't need agile. The book Scenarios, Stories, and Use Cases by Ian Alexander provides a nice frame for analyzing your meta-process: evolutionary, incremental, and high risk.
I don't look at it as avoiding methodologies -- instead, I look at it as what tools from the toolbox can I borrow that work for me. For example, I like using stories to put requirements in context and for prioritizing value.