Extreme Programming (XP) is an agile software development framework that facilitates the production of higher quality software, and a higher quality of life for the development team.
Extreme Programming is successful because it stresses customer satisfaction, as opposed to delivering everything the customer could possibly want on some date far in the future. The emphasis is on delivering the software in increments that provide the most value to the customer first. Extreme Programming empowers developers to confidently respond to changing customer requirements, even late in the life cycle.
To provide the benefits of this approach, XP emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. XP relies on a simple, yet effective environment that facilitates the formation of high performing teams. The team self-organizes around the problem to solve it as efficiently as possible.
XP improves a software project in four ways:
- Emphasis on communication between the team and stakeholders
- Simplicity of methodology
- Timely feedback from stakeholders
- Safe and courageous environment within the team
Extreme Programmers constantly communicate with their customers and fellow programmers. The team keeps its design simple and clean. They get feedback by testing their software often. They deliver the system to the customers as early as possible, by focusing on high-value functionality in early releases and implementing changes as suggested.
This emphasis on incremental delivery of high-value functionality creates an environment where small successes deepen customer and team respect for the unique contributions of all team members.
AGILE/XP is appropriate when a project exhibits the following characteristics:
- The customer is not sure of requirements definition and as such, the requirements are dynamically changing
- Uncertainty due to new technology implementation increases the risks of timely completion of fixed time projects
- The team is small, with a co-located extended development team
- The team has access to technology for automated unit and functional tests
This course integrates LEAN principles, where applicable, with AGILE/XP. Lean is a business methodology, initially used to improve throughput in manufacturing, that is used in Adaptive Project Life Cycles to achieve more predictable delivery, greater efficiency, and a customer-centric mindset
Applying Lean principles to project management facilitates empowerment project team members to better clarity and deliver projects with an emphasis of delivering value to internal and external customers.
This course describes provides a basic understanding of AGILE/XP principles and tools and techniques used in implementing AGILE/XP in a coordinated fashion to ensure successful project outcomes.