Extreme Programming Roles - Extreme Programming

What are the different roles in Extreme Programming?

The working of the extreme programming project depends on the person taking the corresponding responsibility and who are accountable for the contribution to the roles and hence certain roles are required. It is always advisable that right people are allocated to roles rather than changing the people to suit the roles.

The effective roles of Extreme Programming are:

  • Developer (also called Programmer by some teams)
  • Customer
  • Manager (also called tracker)
  • Coach

Developer

Developer is very essential for any extreme programming. In order to be a developer one should be accustomed with the following:

Developer Rights

  1. Right to know what is required with clear priority declarations.
  2. Right to produce quality work
  3. Right to ask and receive help from others including peers, superiors and customers
  4. Right to develop and update the estimates
  5. Right to accept the responsibilities

Major responsibilities that developer is accountable are −

  1. Estimate stories
  2. Define tasks from stories
  3. Estimate tasks
  4. Write unit tests
  5. Write code to pass the written unit tests
  6. Perform unit testing
  7. Refactor
  8. Integrate continuously

Developer Skills

  1. Pair Programming
  2. Necessary and sufficient communication
  3. Using of Metaphor for right names
  4. Coding of only what is necessary
  5. Maintain simplicity.

Collective Ownership

  1. If the code written by the developer is changed, trust the changes and learn. In case of wrongheaded changes, it is the responsibility of the developer for making things better without blaming anyone.
  2. The fears need to be acknowledged. The success of Extreme programming lies in the courage of the team members and team as a whole.
  • As the developer in the team wear different hats such as −
    • Programmer.
    • Architect and designer.
    • Interface architect/UI designer.
    • Database designer and DBA.
    • Operations and network designer.
  • Sometimes one of the developers has to wear the hat of a tester
    • Customers are helped in writing functional tests and helping them.
    • Functional tests are regularly run
    • Test results are reported.
    • Ensuring proper running of the testing tools.

Customer

The role of the customer is as crucial as that of a developer as it the customer who conveys what need to be programmed and accordingly the developer develops the program.

Hence the customer role is associated with certain skills, such as -

  • Requires stories are written as necessary as desired.
  • An attitude towards project success is developed.
  • Without controlling the project is influenced.
  • Decisions are made on the basis of the timely functionality that is required.
  • As the product evolves, the customer must be willing to change the decisions accordingly.
  • Writing functional tests.

The customer has to be in constant and continuous communication with the team in extreme programming. This is essential as -

  • Customer could be multiple stakeholders.
  • Customer could be a community.
  • Customer is not always the PRINCIPAL (proxies).
  • Customer can be a team with the following potential members −
    • Product Managers
    • Marketing, Sales
    • Business Analysts
    • End Users, their Managers
    • Business/System Operations

The Major Responsibilities of the Customer are −

  • To write user stories
  • To write functional tests
  • To set story based priorities
  • To explain the stories
  • To decide on the story based questions.

It is the customer who is always accountable for these mentioned responsibilities.

Manager

The responsibilities of Manager in Extreme programming are -

  • Planning game rules are defined
  • The defined rules are properly explained to the team and customers
  • The planning game is monitored, deviations are fixed, rules are modified as and when required.
  • Release planning and iteration planning meetings are scheduled and conducted.
  • At team level and at individual level, provide feedback on the estimates that helps in coming up in better estimates next time.
  • With committed schedule and functionality as the team progress towards the iterations, manager has to ensure that the team work towards next release.
  • The defects of functional tests are tracked.
  • The time spent by each team member is tracked.
  • By not disturbing the work of the team, an ability to get the required information has to be developed. For all these responsibilities, manager is accountable.

Coach

Everyone in the team is responsible for Extreme Programming. And the role of the coach is very crucial and essential if the team is new to extreme programming.

The responsibilities of the coach are -

  • Having an in depth knowledge about the application of Extreme programming to the project.
  • The extreme programming practices that are helpful in resolving the problems are to be identified.
  • Even when everyone is panicking, learn to stay calm.
  • Team has to be observed silently and when a significant problem arises, then involve and make the team involved.
  • Ensure that the team is self-reliant
  • Always be ready and alert to help.

Extreme Programming Related Tutorials

Extreme Programming Related Practice Tests


All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

Extreme Programming Topics