PMI-ACP Agile Methods – Extreme Programming (XP)


PMI-ACP Exam: XP Extreme Programming

[PMI-ACP® Exam Study Notes] Extreme Programming (XP) is one of the most popular Agile model for software development good practices (Unlike Scrum which focuses of project management on prioritizing tasks and getting feedback). Extreme Programming is based on five core values taken to the extreme: simplicity, communication, feedback, courage and respect. This post is about the guidance practices, roles and responsibilities, events, etc. of XP.

Article Highlights

Extreme Programming (XP) Agile Model

Extreme Programming (XP) is based on five core values:

  • Simplicity – reduce wastes and extra features, find the simplest way to achieve the goals
  • Communication – make sure everyone involved get clear communication
  • Feedback – get feedback early and frequently, prefer failing fast
  • Courage – have confidence to make changes and share progresses (e.g. thru pair programming, unit tests and automated builds)
  • Respect – respect other teammates, everyone is accountable for success of the project

XP Roles (Whole Team)

Team members can cross-functional, taking up more than 1 roles. Team members are expected to be co-located.

  • Development team – including developers, quality assurance professionals and business analysts
  • Customer – business representative to guid priorities and direction, provide the requirements and describe customer tests for testing the products
  • XP Coach – (optional) to facilitate communication and coordination and guide the processes

XP Events

  • Requirements are described in the form of User Stories
  • Iterations – iterations are usually 2-week long, developers work in pairs to work together during the iterations
    • Spikes – work carried out the reduce risks
      • Architectural Spikes – a particular type of spike to prove technological approach
    • Planning Games – the customer provides the requirements while the developer estimate the difficulty and resources required, the customer will select a prioritized set of requirements for the upcoming releases
      • Release Planning – 1-2 times per year, for defining high-level tasks and estimates and system metaphor
      • Iteration Planning – every 2 weeks, customer explain the functional requirements
    • Daily Stand up – daily meeting to get updated on the progress among teammates
    • Acceptance Tests – tests are written before code and continuously used to check for correctness in system functions
    • Customer Approval
    • Small Releases with Integration Tests

XP Practices

  • Whole Team – co-located in a place, including the customer
  • Planning Games – planning meetings for releases and iterations
  • Small Releases – frequent deployment with automated testing and continuous integration for competitive advantages
  • Customer Tests – customer define tests for expectation alignment
  • Collective Code Ownership – everyone has access to the code for visibility and bug detection
  • Code Standards – ensure a coherent coding approach
  • Sustainable Pace – avoid overtime and burnout to maintain sustainability in the long term, often making 40-hour work weeks, not to take up more story points than what can be completed in the previous iteration
  • Metaphor – making use of tangible metaphor to ensure alignment of goals
  • Continuous Integration – programmers check in the code to the code repository several times daily, integration tests are automatically carried out each time to ensure code quality
  • Test-drive Development – write tests before new codes
  • Refactoring – improve the existing code quality without amending the functionalities (to pay back technical debts)
  • Simple Design – the simplest design is the most efficient and less risky, do things once and only once
  • Pair Programming – two programmers working side by side, one to write, the other to review

Basic XP Activities for  Software Development Process

  1. Listening
    • to the customer to understand the requirements
    • to other development team members for collaboration
  2. Designing the code based on the requirements input
  3. Coding
  4. Testing for quality control and assurance

Further Reading on Extreme Programming (XP)

Summary: PMI-ACP® Exam Study Notes on Extreme Programming (XP)

This PMI-ACP® Exam Study notes describes in barely enough details on the Extreme Programming (XP) Agile methodology, including guidance practices, roles and responsibilities, events for the PMI-ACP® Exam.

 

Most Popular PMI-ACP Certification Articles

Support website running for FREE, thanks!

If you find this post helpful and if you are thinking of buying from Amazon, please support the running cost of this website at no extra cost to you by searching and buying through the search box below. Thank you very much for your help!

Edward Chung

Edward Chung aspires to become a full-stack web developer and project manager. In the quest to become a more competent professional, Edward studied for and passed the PMP Certification, ITIL v3 Foundation Certification, PMI-ACP Certification and Zend PHP Certification. Edward shares his certification experience and resources here in the hope of helping others who are pursuing these certification exams to achieve exam success.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

3 Responses

  1. Mak says:

    And here are the core values:
    FORKS | Feedback, oral(Communication), Respect, {K}Courage, Simplicity.
    or
    Communicating Couragous Feedback Simplifies Respect.
    Simple Feedback Communicates Courage and Respect.

  2. Mak says:

    Your site is very useful. I have just started with ACP…

    Some of my brain dumps for remembering XP Practices:
    1. Simply for TRP, We create (news) for people — > S4 TRP W C4 P
    (TRP is Television rating point. Every news channel tries to increase their TRP by showing false and interesting news)

    S4 TRP, W C4 P
    — 4 Principles will start for S and C. Rest will begin with the letters letter.

    2. These one line statements can also be easily memorized.
    2.1 *Whole team* takes part in *planning games*.
    2.2 For *simple design*, use * system metaphor*, and for *sustainable pace*, use *small releases*. //coves 4 S
    2.3 In a “Test driven development* environment, *customer tests* the *continuous integration* of *peer programmers*, who *own the code collectively* and improve *code standards* by *refactoring*.