Ch3 Agile SW Dev-Cust
Ch3 Agile SW Dev-Cust
Principle Description
Customer involvement Customers should be closely involved throughout the development
process. Their role is provide and prioritize new system requirements
and to evaluate the iterations of the system.
Incremental delivery The software is developed in increments with the customer specifying
the requirements to be included in each increment.
People not process The skills of the development team should be recognized and exploited.
Team members should be left to develop their own ways of working
without prescriptive processes.
Embrace change Expect the system requirements to change and so design the system to
accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and in the
development process. Wherever possible, actively work to eliminate
complexity from the system.
Small releases The minimal useful set of functionality that provides business value is
developed first. Releases of the system are frequent and incrementally
add functionality to the first release.
Simple design Enough design is carried out to meet the current requirements and no
more.
Test-first development An automated unit test framework is used to write tests for a new piece
of functionality before that functionality itself is implemented.
Refactoring All developers are expected to refactor the code continuously as soon
as possible code improvements are found. This keeps the code simple
and maintainable.
Pair programming Developers work in pairs, checking each other’s work and providing the
support to always do a good job.
Collective ownership The pairs of developers work on all areas of the system, so that no
islands of expertise develop and all the developers take responsibility
for all of the code. Anyone can change anything.
Continuous integration As soon as the work on a task is complete, it is integrated into the
whole system. After any such integration, all the unit tests in the system
must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as the net
effect is often to reduce code quality and medium term productivity
On-site customer A representative of the end-user of the system (the customer) should
be available full time for the use of the XP team. In an extreme
programming process, the customer is a member of the development
team and is responsible for bringing system requirements to the team
for implementation.
30/10/2014 Chapter 3 Agile Software Development 11
XP and agile principles
Development team A self-organizing group of software developers, which should be no more than 7
people. They are responsible for developing the software and other essential project
documents.
Potentially shippable The software increment that is delivered from a sprint. The idea is that this should be
product increment ‘potentially shippable’ which means that it is in a finished state and no further work,
such as testing, is needed to incorporate it into the final product. In practice, this is not
always achievable.
Product backlog This is a list of ‘to do’ items which the Scrum team must tackle. They may be feature
definitions for the software, software requirements, user stories or descriptions of
supplementary tasks that are needed, such as architecture definition or user
documentation.
Product owner An individual (or possibly a small group) whose job is to identify product features or
requirements, prioritize these for development and continuously review the product
backlog to ensure that the project continues to meet critical business needs. The
Product Owner can be a customer but might also be a product manager in a software
company or other stakeholder representative.
30/10/2014 Chapter 3 Agile Software Development 27
Scrum terminology (b)
ScrumMaster The ScrumMaster is responsible for ensuring that the Scrum process is followed
and guides the team in the effective use of Scrum. He or she is responsible for
interfacing with the rest of the company and for ensuring that the Scrum team is
not diverted by outside interference. The Scrum developers are adamant that the
ScrumMaster should not be thought of as a project manager. Others, however,
may not always find it easy to see the difference.
Velocity An estimate of how much product backlog effort that a team can cover in a single
sprint. Understanding a team’s velocity helps them estimate what can be covered
in a sprint and provides a basis for measuring improving performance.
The selection phase involves all of the project team who work
with the customer to select the features and functionality from
the product backlog to be developed during the sprint.