Chapter Eight: Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
You’re familiar with agile methodologies, but Extreme Programming, XP for short, is still a bit of a mystery to you. It sounds, well, extreme, and you’re not sure that it’s for you. Don’t let that name deter you, though. You’d miss out on a lot of good stuff.
Extreme programming is a software development methodology that’s part of what’s collectively known as agile methodologies. XP is built upon values, principles, and practices, and its goal is to allow small to mid-sized teams to produce high-quality software and adapt to evolving and changing requirements.
What sets XP apart from the other agile methodologies is that XP emphasizes the technical aspects of software development. Extreme programming is precise about how engineers work since following engineering practices allows teams to deliver high-quality code at a sustainable pace.
Extreme programming is, in a nutshell, about good practices taken to an extreme. Since pair-programming is good, let’s do it all of the time. Since testing early is good, let’s test before the production code is even written.
XP, unlike other methodologies, is very opinionated when it comes to engineering practices. Besides practices, XP is built upon values and principles.
Values provide purpose to teams. They act as a “north star” to guide your decisions in a high-level way. However, values are abstract and too fuzzy for specific guidance. For instance: saying that you value communication can result in many different outcomes.
Practices are, in some ways, the opposite of values. They’re concrete and down to earth, defining the specifics of what to do. Practices help teams hold themselves accountable to the values.
For instance, the practice of Informative Workspaces favors transparent and simple communication. Principles are domain-specific guidelines that bridge the gap between practices and values.
Chapter Nine: Extreme Programming (XP) is an agile framework that emphasizes both the broader philosophy of agile—to produce higher-quality software to please customers—and the more specific goal of making life better for the engineers developing it.
The main characteristics of XP include dynamically changing software requirements; using a small, collocated extended development team; and leveraging technology that facilitates automated unit and functional tests.
XP is designed to help companies meet the needs of customers who might not know or articulate precisely what they need or whose needs may change frequently. In addition, this agile framework is designed to help companies mitigate the risks of managing projects like this with dynamic requirements.
However, things to keep in mind are that XP demands a relatively small development team, requires developers working closely with managers and customers, and requires the team to be able to create automated unit and functional tests.
Reviews
There are no reviews yet.