Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contents
1. Introduction 2
Process Metrics 3
Process Monitoring 4
Visibility 4
Communication 4
Culture 5
Collaboration 5
Team 5
Rework 6
Configuration Management 6
4. Agile Principles 6
5. Conclusion 11
6. Glossary of Terms 11
7. Further Reading 13
| |
MphasiS white paper Agile for distributed delivery
| |
Agile for distributed delivery MphasiS white paper
to it – business stakeholders and the development made as well and communicated to all stakeholders.
teams together. Breaking of high level scope into well Effort should be to trade or reduce scope but keep
defined stories is followed by prioritizing the stories and timelines and thereby commercials the same unless
putting them into a scope bank. High level process absolutely required to change.
flows, UI prototypes and potentially user journeys, high
• Maintenance and project closure follow. Project closure
level system architecture (which would typically include
among others should definitely conclude with client
logical architecture, physical architecture, data model
feedback and lessons learnt fed back into the process to
and business services definition if needed) are also
close the loop.
created in this phase. The attempt is however just to
document what we can at this point confidently based Process Metrics
on what we know and not really trying to foresee the Included below are some of the key project metrics used
future needs and trying to create a design which would in Agile which can improve visibility and bring issues to
cater to future needs. Think about it as creating a quick fore earlier in the cycle.
whiteboard design which covers all components needed
Project Management Metrics
and their interconnections, implementing the clear
• Velocity – Number of work units ( stories) completed
business requirements which we are aware of. Business
every iteration
vision with critical success factors, scope bank and EA
• Daily count of stories completed, in progress and not
release plan would typically form the basis of executive
started
presentation and subsequent EA release.
• Scope bank churn – stories added or de-scoped
• EA (executable architecture) picks up the most complex • Actual delivery time estimated for story versus
pieces of the solution (technically complex, difficult user estimated
experience designs or the ones with the most complex
Quality Metrics
business logic) and implemented to validate the
• Code coverage - It describes the degree to which the
proposed system architecture. It should produce 10-15%
source code of a program has been tested. It can be
of fully working vertical slice of the application and is
measured using tools like EMMA, Clover etc.
used as a basis for development in subsequent releases.
EA release can be executed in client or remote • Unit test pass rate – Indicates the quality of the code at
geography and the decision would typically depend on a unit level. This can be a code method or a stored
resource availability and has a bearing on cost involved. procedure or a cron job, unit test everything you can.
Unit tests can be written using frameworks like JUnit
• This should be followed by an iterative sequence of
and pass/fail rate measured using tools like custom Ant
ongoing releases, typically in the remote geography,
scripts.
broken down into iterations or sprints (2-4 weeks long)
till the entire application is delivered. Each iteration • Cyclomatic complexity - is used to measure the
picks up the prioritized stories from the scope bank complexity of a program. It directly measures the
and there are weekly checkpoints with the clients where number of linearly independent paths through a
the developed application is demonstrated and real time program’s source code. It can be measured using
feedback received. Stories can be traded from the scope tools like PMD
bank for new scope items or re-prioritized depending on
• Functional & non functional defects per story. This can
the business need at the start of each release/iteration.
be reported using a combination of manual and
This is typically done by the product owner(s). The
automated testing.
release and iteration plans are adjusted based on the
re-prioritized scope, actual effort spent by developers Continuous Integration Metrics
on similar stories in the last iteration and other • Number of check-ins per team size – Determines if all
contextual factors that come to light based on previous developers are checking in the code regularly and
release / iteration experience. If there is a guards against people working off of a stale code base.
corresponding change to the high level plan, that is
| |
MphasiS white paper Agile for distributed delivery
Process Monitoring
Figure 2: Burn Down Chart Work quality and team morale are two other aspects of
Agile teams where the visibility can get masked very
easily.
Communication
| |
Agile for distributed delivery MphasiS white paper
documentation, formal meetings and emails is a bad old members during the development and testing cycles,
habit which needs to be shed off. Also, due to time zone business users and development teams during
differences between western business centers and many requirement gathering and also among business users to
of the major offshore development sites in India and be able to correctly prioritize a requirement over other
China, there are very few hours in the day when project during project and iteration backlog meetings. This
participants are in both office locations at the same time. collaboration needs to exist, keeping all personal
These factors, as well as the current cost and quality of differences and politics aside.
telecommunications, serves to significantly decrease the
volume and quality of communication between offshore Daily Stand-ups
and on-site teams.
Stand-up meeting is a daily team meeting held to
People need to be more reliant on direct or phone based,
provide a status update to the team members. The
one to one verbal communication, which has the least
status allows participants to know about potential
possibility of gaps or errors. Be open, raise issues and
challenges as well as coordinate efforts to resolve
seek help during daily stand-ups* (see inset for details)
difficult and/or time-consuming issues.
when you have not made progress in the day. This is a
The meetings are usually time boxed to
habit that needs to be instilled at all levels. Travel plan
and project team structure introduced below additionally 5–15 minutes and are held standing up to remind
helps to address these issues to a large extent. people to keep the meeting short and to the point.
The meeting is usually held at the same time and
Culture
place every working day. All team members are
Culture offers both local and global challenges to expected to attend, but the meetings are not
software teams as they collaborate to understand postponed if some of the team members are not
requirements, build systems, and deliver product. present. One of the crucial features is that the
Agile software practices through iteration, incremental meeting is intended to be a status update to other
delivery, and customer proximity can ameliorate cultural team members and not a status update to the
challenges to create synergies. management or other
stakeholders. Team members take turns speaking.
Being open and transparent with issues and using the
Each member talks about his progress since the last
simplest and therefore most robust solution on the table
stand-up, the anticipated work until the next stand-up
using pure common sense are two values which
and any impediments they foresee.
transcend cultures. Make use of them, they will not only
help in delivering a successful Agile project, it would
make us a better and a more successful person in our
daily lives.
Team
| |
MphasiS white paper Agile for distributed delivery
mentor. Have an Agile mentor between the team if you 4. Agile Principles
can’t really structure the team with members having
Included below are a set of ten key principles which have
qualities mentioned above.
worked for the author and also various other project
Rework leaders involved in delivering large Agile projects in a
distributed delivery model. While there can be numerous
Not following some of the best practices and moving at others added to this list, this is a distillation of the ones
the pace you do in Agile it is very easy to accrue a lot of which have proven instrumental in the delivery process.
If followed, there are very good chances the Agile project
rework to be done later. This affects project
you are leading or intending to benefit from would stay
schedules, quality of deliverables and of course has a
on track and get you the benefits of reliability, speed
cost implication. and flexibility that we all so desperately seek in a mature
software development methodology...
Good Agile practices avoid both rework and rebuilding
of finished products. High level design and concepts Principle 10: Kick off engagement with business
validated in the executable architecture* (see principle workshops
6 and inset below) release phase, business stories Once the basic sales process is done we need to
elaborated as late in the schedule as possible to make understand the objective of the engagement and the end
the best and most informed decision and with the use state of the application client intends to build/enhance.
of unit tests & customer defined tests for each story For this a team can often make more progress in a
make sure “done is done” in Agile. well-executed 2-3 days of business workshop than in a
few months of research, individual interviews and one
Configuration Management
to one meetings. This is an adoption of the accelerated
“Bringing it all together” for implementation in the business requirements technique and works very well
integration, testing and production environment has when the intention is to align all the business stakeholder
always been a challenge. Many teams that have built quickly and get a clear objective to kick off the work.
components offshore have seen huge problems when
A business workshop should be a strongly driven and
the time came to integrate the offshore and on-site
facilitated working session typically over 3 days with a
pieces, or even multiple offshore pieces into a working
delivery team and a group of six to ten carefully selected
system in a remote integration environment.
client stakeholders. This is typically executed during
Defining team structure to address vertical slices of project initiation phase just before the EA (see inset
business functionality (across all technical components), below for details) release. The goal is to extract decisions
continuous integration* (see inset above for details), using the knowledge and experience of the stakeholders
automated build and deployments and unit testing are in the room. Each workshop requires diligent
just a few arrows in your Agile quiver to handle this age preparation, specialized or prepared facilities and an
old enemy. experienced team of facilitators and recorders. It should
deliver business vision and prioritized business
Continuous Integration requirements in the form of a scope bank.
| |
Agile for distributed delivery MphasiS white paper
product owner to articulate business needs during spent, or as the project changes. As a result, you don’t
the business workshops introduced above. have a credible way of understanding where you truly
stand in relation to completing, what you set out
Use some of the following best practices while
to deliver.
creating story cards:
a. Story cards must be small and complete Your Agile plan should typically have three levels, each
b. Avoid dependencies between story cards within an with successively more detail and a shorter time period
iteration as depicted in the interlocked gear diagram above:
c. Be brief – write stories in 2 to 3 sentences a. High Level Plan - shows key milestones and bounds
d. Keep the story card simple, define business the project on a 6-24 month timeline
terminology upfront b. Release Plan - maps all the project stories across
e. Each story needs to be capable of being estimated iterations for a single release lasting 1-3 months,
have a business value, be small, be testable and identifying key internal and external dependencies,
independent assumptions and risks
f. Keep the stories consistent – do not include c. Iteration Plan - maps stories across a single 2-4 week
contradictory, incoherent and conflicting statement long iteration, with each story broken down into very
which would lead to wrong interpretations detailed tasks, with clear exit criteria outlined for each
g. Keep a link between story card and client stakeholder story contained in the iteration
and take that information to traceability matrix. This
In each iteration, the Project Manager works with the
helps get questions answered and issues clarified
client to change all three levels, revising the High Level
when they arise
Plan and Release plan, and creating the Iteration Plan for
h. Define customer tests as part of the story creation
the next cycle. This maximizes the ability to learn from
exercise, so we know how to validate it has been
each time boxed iteration, maximizes flexibility to change
built correctly
the plan and minimizes wasted effort in re-planning.
i. Keep a guideline handy for story prioritization
j. Include non functional requirements on the story
cards when needed
| |
MphasiS white paper Agile for distributed delivery
impact of an issue would be greatest). By front-loading a following some basic principles which are easily achieved
controversial user experience design, integration of a new in a distributed model as well.
release of a major software package, or even the
During the EA release, have the product owner(s) travel
testing of complex business processing, when you
to the remote geography (if EA is happening out of
discover issues, you’ll have the maximum time possible
remote geography). This will help clarify high risk
to adjust course, remain in control, and have the best
requirements, change architectural options and seek
chance of steering the project to success.
real time feedback on POCs and customer tests.
The Executable Architecture (for details on EA look at the
Have a rotation plan for Business Analysts / Product
inset) release phase is all about risk mitigation: You
Owners, Testers wherein they work on the next iteration
create an early working version of part scope of what
requirements and customer tests and then travel back to
you’re building, including the most challenging and
the development geography to work with the team while
business-critical work – 10-15% of the overall
executing that iteration. Also, allow for travel of a client
functionality – in a real working environment. If you defer
stakeholder to the remote geography to answer any
a major integration issue to later in the project, chances
requirement questions and/or to close on a
are you will not have sufficient time to address it as
contentious user experience design, seek clarifications
thorough as necessary. As a result, you’ll be forced to cut
from the business.
either scope or quality.
Stories defined should have business value and there
Executable Architecture should be well defined business milestones at the end of
An executable architecture is an each week/iteration. Have weekly / iteration checkpoints
implementation that realizes the Software with the key stakeholders and showcase everything
Architecture. It is used to validate that the developed, seek real time feedback. Make abundant use
Architecturally Significant Requirements are of client proxy role (a local team member having
correctly implemented. It validates the sufficient knowledge of business and requirements; also
architecture as an integrated whole through someone who is in regular touch with the client
integration tests. The team gains feedback stakeholders/product owner) and tools like Instant
about the architecture from the customer or Messaging, Web-ex and Video Conferencing.
stakeholder by providing the executable
Plan for some hours of overlap between client and
architecture for verification. This way the
remote geography teams for a few hours in a day for
executable architecture helps to assure that
things like – requirements clarification, bug prioritization,
the core functionality is stable enough to
demos etc. A daily 20 minutes synch-up after daily
build the remainder of the system
stand-ups, between the development team and the
It is a recommended activity in the product owner for clarifying requirements and
Unified Process* as part of the elaboration phase reconfirming the priorities works very well.
wherein the partial implementation of the system
serves to validate the architecture and act as a
foundation for remaining development.
| |
Agile for distributed delivery MphasiS white paper
| |
MphasiS white paper Agile for distributed delivery
phase. Keep the system architecture document updated Principle 2: Establish a regular rhythm of time
as part of the subsequent releases, which initially sets the boxed iterations
basic integration mechanism and architectural direction. Break down all scope into stories and stories into time
boxes. Commit to a target, fix the end date and execute
The scope bank along with high level use cases, user
to it. Within the time box, you must complete the planned
journeys/UI prototypes and a system architecture
work. There is no concept of partial credit. “Done is
document would make the minimal documentation that
done.”
the remote implementation team would need to get
the basic context. This should be backed up by Product There are clear tests that the team must pass to get
Owner and architect / business analysts / testers credit. Time boxes also help you improve estimation as
travelling to the development geography and also audio/ you move forward. At the end of each time box, you can
video conference calls with client and vendor teams as see if you’re still on the right track to meet your end
needed. While in most cases white board designs work, goal. Regularly stepping back and evaluating progress
define a mid level design template for complex and high is healthy – your goal may change, and what you learn
risk stories. For all designs do a walkthrough with 1-2 with each time box can be applied to the next one. Avoid
technical client stakeholders early in the cycle to avoid long stretches of time where nothing is delivered. Keep
surprises/changes later. Set expectations for this your iterations the same length throughout the project.
involvement upfront in the project setup phase. This allows you to establish a regular rhythm and to
understand your velocity so that you can plan for future
Principle 3: Have an open client partnership
iterations.
Clients run and know their business. Hence, partnering
with your client will make your project more successful.
Value clients’ input and include them in your processes,
plans, and decision-making to a degree that makes sense
with their schedules. Be open and honest with project
issues.
| 10 |
Agile for distributed delivery MphasiS white paper
| 11 |
MphasiS white paper Agile for distributed delivery
Offshore - The remote (off-shore) team is usually parts Stand-ups - Stand-up meeting is a daily team meeting
of the technical team. This team is effective at taking held to provide a status update to the team members. For
development packages (stories, system architecture and more details see the side bar on page 5.
UI artifacts) and developing, customizing or configuring
System Architecture – A high level design document
applications to meet the desired results.
typically comprising of logical and physical architecture
On-site – In a distributed delivery model, onsite team and data model. In some cases it may also comprise of
typically includes anyone that, by necessity, needs to be business services and high level interface specifications
client facing. It always includes sales people, an on-site as well
project manager that interacts with the client for any
TAR – Technical assistance request, typically raised in a
scheduling, scope, change, cost, quality, issues, risks
maintenance project by client stakeholders in response to
and customer satisfaction issues. Other resources may
a user complaint or a new enhancement to be introduced
include Business Analysts, Systems Architects etc.
in the system
POC – Proof of concept typically executed to validate a
User Stories - A software system requirement
design concept, usually a use and throw construct
formulated as one or two sentences in the everyday or
Product Owner - The Product Owner (typically someone business language of the user. User stories are used with
from a Marketing role or a key user in internal Agile software development methodologies for the
development) who owns and prioritizes the stories specification of requirements (together with acceptance
tests). Each user story is limited, so it fits on a small
Scope Bank – Typically a spreadsheet which contains list
paper note card—usually a 3×5 inches card—to ensure
of stories, their prioritization, estimates and release they
that it does not grow too large. The user stories should
are scheduled in. Stories in this scope bank can be traded
be written by the customers for a software project and
for new scope.
are their main instrument to influence the development
Scrum - Scrum is an agile process for software of the software.
development. With Scrum, projects progress via a series
of iterations called sprints. Each sprint is typically 2-4
weeks long. A key principle of Scrum is its recognition
that during a project the customers can change their
minds about what they want and need (often called
requirements churn), and that unpredicted challenges
cannot be easily addressed in a traditional predictive or
planned manner. As such, Scrum adopts an empirical
approach—accepting that the problem cannot be fully
understood or defined, focusing instead on
maximizing the team’s ability to deliver quickly and
respond to emerging requirements. Scrum enables the
creation of self-organizing teams by encouraging
co-location of all team members, and verbal
communication across all team members and disciplines
that are involved in the project.
| 12 |
Agile for distributed delivery MphasiS white paper
7. Further Reading
4. Rational Unified Process – Best practices for software development teams: http://www.ibm.com/developerworks/
rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf
htm
should_busi.html
| 13 |