Upload
pmiireptp
View
159
Download
1
Tags:
Embed Size (px)
Citation preview
Mantra for Innovative Project Management
Pavan AdipuramAssociate ConsultantTata Consultancy Services
AbstractFor most of today's projects with vast horizons spanned across multiple geographies around the
world, the basic question of “Whether the Agile way is right for my distributed team environment?” is
still unanswered.
Some of the common challenges that distributed agile teams face today are
Time zones with less or no overlap
Customer and stakeholder availability for the off-site teams
Turnaround time to clear the impediments
Knowledge sharing and involvement (Iteration planning)
Cultural differences and no face to face interaction between the teams
Off-site team involvement in Demos
Reducing the Technical Debt
Continuous Value Delivery in each sprint
Agile at scale (Scrum of Scrums)
All these challenges always question the agility and capability of the teams working off-site and away
from the customer locations. It is very important to address these challenges appropriately to make
sure the distributed teams function efficiently and deliver with the highest velocity across iterations.
This paper focuses on the best practices, innovative tools and techniques that can be applied in
specific knowledge areas to help improve the efficiency of the distributed agile teams.
ContentsAbstract....................................................................................................................................2
Introduction..............................................................................................................................4
1. Communication.................................................................................................................4
1.1. Daily video huddles....................................................................................................4
1.2. IM Group chats..........................................................................................................5
1.3. Recording the crucial meetings.................................................................................6
2. Building Trust....................................................................................................................6
2.1. Off-site visits..............................................................................................................6
2.2. Off-site involvement in Sprint Reviews......................................................................7
3. Continuous Value Delivery................................................................................................7
3.1. Sprint Planning (Backlog Grooming).........................................................................8
3.2. Verticalization of User Stories....................................................................................8
3.3. Building a cross functional team................................................................................8
4. Agile at Scale....................................................................................................................9
4.1. Scrum of scrums........................................................................................................9
4.2. Sprint Retrospectives.................................................................................................9
5. Dedicated Scrum Roles..................................................................................................10
5.1. Pseudo Product Owner............................................................................................10
5.2. Scrum Master..........................................................................................................11
6. Adaption of Engineering Practices..................................................................................11
Conclusion.............................................................................................................................13
References.............................................................................................................................13
Authors...................................................................................................................................13
Introduction
Agile teams across the globe are getting increasingly distributed as new and cost effective
opportunities continue to evolve without boundaries. With the great opportunities and potential, the
challenge of managing a distributed agile team is also increased.
“Individuals and Interactions over process and tools” and “Customer Collaboration over contract
negotiation” being the core values of agile methodology, it is utmost important to empower the
distributed teams with state-of-the-art tools, techniques and best practices. We need to ensure
seamless communication and knowledge sharing across all the project teams irrespective of time
zone and work hour overlap constraints. At the same, protecting and improving the team morale by
ensuring their work-life balance is equally important.
In this paper, we propose few of the proven tools, techniques and best practices from our years of
experience in delivering large scale agile projects with multiple teams spanned across the cities in
India and USA. These practices help building and nurturing the teams to deliver with high and
sustainable velocities throughout all the iterations without affecting team morale.
1. Communication
Efficient communication is a critical success factor for any distributed agile team. Communication
needs for each team vary widely based on several factors like geographies, cultures and team sizes.
When the overlap of work hours is very minimal, the role of communication becomes double. This
section of the paper will focus on some best practices and tools that can ensure a seamless
communication between the distributed agile teams.
1.1. Daily video huddles
Body language forms 55%1 of the communication. With multiple geographies and cultures getting
involved in the team, its effect on the communication will be more. It is very important to
understand the emotions and body language of each culture to deliver the right message and
receive proper acknowledgement. While co-location is not practically possible in a distributed agile
teams, having a direct face-to-face interaction via high quality video comes to rescue.
Teams should be equipped with the required infrastructure at both ends. A high quality wide angle
webcam, wide screen display and an uninterrupted broadband internet for the video streaming are
required at each location. It is also important to have Instant Messenger (IM) connected to video
for any on-demand discussion.
Benefits:
Minimal chances of miscommunication or communication gaps
Team will get to know each other by face
Seamless communication and acknowledgement between the teams
Easier to understand all sorts of cultures and communications styles
Results in well cohesive teams
Example: Figure 1.0: Two US and India based project teams have their daily scrum over the video
and other on-demand meetings on need basis. This might require at least one team stretch a little
while the other team starts the day little early.
Figure: 1.0. Possible overlapping hours for team huddles
1.2. IM Group chats
A continuous dialog via IM group chat between multiple teams during the overlapping hours
(Example: multi-vendor teams in one location) would help in reducing the turnaround time by
avoiding the unnecessary email clutter. IM should also be equipped with sophisticated features like
screen share and virtual whiteboard for any direct and easy access to information related to
discussion context.
Example: A distributed IT team with multi-vendor involvement consisting of three scrum teams
working in different locations were typically exchanging 50-60 emails between the teams by end of
the day. The onshore team would have to mine the information from these mails when they start
their day. This number has come down to a couple of summary emails a day by moving most of
the discussion into the group chat. The chat typically starts after the morning huddles and be open
throughout the day to clear any impediments on the go. The core chat group stays on to co-
ordinate while rest can come and go into the chat on need basis to minimise the distraction while
the core team stays connected.
Figure: 1.1. Daily scrum with vs. without IM Group chat
1.3. Recording the crucial meetings
Recoding the crucial meetings will come in handy when it is not possible to conduct these
meetings and discussions in overlapping hours (Or when there is not enough overlap). Screen
recording with audio and virtual whiteboard helps the off-site teams to play back the on-demand
video and do further analysis to provide feedback. Pseudo Product owner2 and Scrum Master at
off-site will playback these videos to emulate the meetings. Video recording may not be necessary
for these recordings as they are off-line meetings.
Benefits:
Unplanned meeting minutes with Product owner or Architecture teams at onshore can be
shared as is without communication loss
Distributed teams do not have to stretch out too much for all the meetings – leads to a
better work-life balance
Serves as reference and on-demand access for the teams at any later point of time
Reduces the off-site team’s knowledge gap and reduce the turnaround time for
clarifications.
Increases velocity of the team in each sprint.
2. Building Trust
Trust is the key to a self-driven, high performing and a cross functional team. When the team has
great amount of trust amongst each other, their motivation is sparked, they commit themselves and
constructively challenges each other’s opinions and takes smart risks. The team will do deep dive
analysis and push themselves to excellence.
2.1. Off-site visits
Empowering the teams with the clear business vision and priorities in the early iterations helps in
improving the team’s efficiency by many folds. Typically, by second or third iteration, backlog gets
more matured and further grooming occurs during iterations. Product owner’s visit to off-site
during second or third iteration helps the teams to get the big picture of project objectives and
priorities. Along with the Product Owner, Tech Leads time would also bring great value to the
distributed teams and increase the amount of trust across the board. Each visit should be planned
for at least 3-4 weeks to be beneficial.
Benefits:
Product owner and other key stakeholders understand the teams’ capabilities better and
set the right expectations
Understanding the remote team’s environment, culture and impediments
Off-site teams build a sense of ownership and trust
A big picture sets the context clearly to the off-site teams
Reduction in knowledge gap
Team grooming
Stronger commitment to work as one team
2.2. Off-site involvement in Sprint Reviews
Sprint reviews or Demos occur only at onshore during their regular times due to Product Owner’s
availability. Mostly the team co-located with the Product Owner demonstrates the features
developed throughout the sprint.
Involving the distributed teams (all the scrum teams) in the demo is extremely important as the
teams would get a sense of achievement and appreciation while demonstrating their work to the
product owner and rest of the stakeholders. It also protects and improves the team morale when
the Product Owner directly interacts with the team and provides the feedback on the sprint
deliverables.
Benefits:
Direct feedback from the Product Owner and other stakeholders
Teams always get in sync with the Product Owner’s expectations
Trust building between the off-site teams and Product Owner
3. Continuous Value Delivery
Contrary to the popular belief about agile, it is very important to plan the key agile ceremonies
considering the distributed teams’ involvement and participation. This is at teams’ discretion based on
the trade-off between the benefits we derive and the teams’ readiness to stretch the work hours
appropriately. It is best to use the alternative techniques like recording the meetings wherever
applicable. This section of the paper will propose some best practices from our experience to have a
focus on the continuous value delivery.
3.1. Sprint Planning (Backlog Grooming)
Involving the teams early into the planning activities is important as it helps to get their buy-in for
the sprint deliverables, estimations and quality expectations. It also helps to identify and fix any
gaps very early.
Figure 1.2 is an example of a USA based team starting their day early while India based team
stretching their day little longer for a combined sprint planning effort. This stretch and overlap for
one or two days per iteration would achieve great results by involving all the teams into backlog
grooming, story prioritization and estimation. The team that stretches the day should be starting
their day late accordingly.
Figure 1.2. Sprint planning schedule
3.2. Verticalization of User Stories
Another challenge which any distributed agile team faces is, the wait time to integrate the work
items. UI team will have to wait to integrate the work that needs to be completed by Services
team to test the features at system level. These dependencies will result in waste such as
additional planning, coordinating the work, hand offs between the team and sometimes the team
ends up delivering a low value stories as part of the iteration.
Verticalization of the stories will come to rescue in such situations and improve the efficiency of
the teams. The term verticalization means, breaking the user stories such a way that the stories
cover all parts of the architecture of the system instead of covering only one piece at a time. For
example, in a J2EE project where we have MVC architecture to design and implement a web
project, a story slice which is perfectly verticalized will have UI, Services and Database related
work as part of the story to complete it in full.
The major challenge in implementing this is, both the APO (Agile Product Owner) and the
Technical Lead should spend more time in every iteration-planning exercise.
3.3. Building a cross functional team
Verticalization helps breaking the stories well. If the team has to deliver value in every iteration
and at the same time be more efficient, then it has to be cross functional. The team will remove
the dependencies and help reduce the waste if it is more cross functional. Everyone in the team
should focus on building a secondary competency required to take up the work at any given point
of time. We have continuously done this as part of our delivery and have seen great results.
Figure 1.3. Vertical vs. Non-verticalized requirements
4. Agile at Scale
4.1. Scrum of scrums
Scrum of scrums is the daily scrum for multiple distributed teams where only one or two
representatives from each team participate in the scrum. It is beneficial when multiple distributed
teams are involved in a medium to large scale project where each team owns features that have
dependency on the other teams.
Technical lead, business SMEs and scrum master from individual teams join the scrum of scrums.
This meeting is similar to the regular scrum except that only the team level representation and
discussion happens instead of individual focus. Update pattern from the participants slightly
differs from the regular scrum as follows.
1. What your team has done yesterday or today? (Based on the time of the day)
2. What your team will be doing today or tomorrow? (Based on the time of the day)
3. Are there any impediments to the team?
Representation should not be restricted to the same parties every day. The choice should be
depending on the on-going activities, impediments and the interaction required with the other
teams. A database administrator can be joining one day and an UI designer can be joining the
other day depending on the activities.
4.2. Sprint Retrospectives
In a distributed agile team, the team’s participation in retrospectives is always a challenge. This
can be addressed similar to scrum of scrums. Sprint retrospectives should be conducted at the
individual team level and the feedback is to be shared across all teams. Doing this meeting, the
team identifies their strengths and continue to do what serves best for them and work on things
which need focus. Retrospectives driven effectively bring continuous improvement into the teams
and increase the morale of the team and bring sense of achievement. An appreciation across the
distributed teams during the retrospectives goes a long way in increasing the trust and hence the
efficiency.
5. Dedicated Scrum Roles
Defining dedicated scrum roles in a distributed agile environment plays a key role in the successful
delivery of the project. This section of the paper will focus on some of the roles which can be planned
at off-site locations, enabling the team to be self-sufficient.
4.1. Pseudo Product Owner
Continuous connect with product owner is one of critical success factors of any agile team. In
distributed environment, off-site teams the turnaround time on clarifications can be as much as
12-14 hours depending on overlap. Keeping the train of thoughts throughout the day and waiting
for the clarification till next day would really kill the team’s potential to deliver at their highest
velocity.
One solution to this problem is to have a functional analyst (Business Domain expert) act as a
proxy to the product owner at off-site. Responsibilities of a pseudo product owner includes but not
limited to:
To provide the business expertise (SME)
To be in sync with Product Owner on the product vision and backlog priorities
Involve in story boarding, backlog grooming and estimations
Empowered to make calls on key aspects
Support co-located team with required clarifications immediately
Conduct internal reviews and demos and provide feedback to the team (mid-sprint
reviews)
Case study: An off-site team, part of a distributed agile project has already delivered multiple
agile projects successfully with consistent performance. Team has reached a comfortable state
where they can jump start the work directly in Norming and Performing stages skipping Forming
and Storming stages3. Below example shows a significant lift in team velocity after Pseudo
Product Owner role was brought on board.
Project A: Scenario 1
There was a continuous feedback from the sprint retrospectives to improve the turnaround time to
get business clarifications from the product owner. Delay is mostly due to the team not being able
to catch product owner’s time and interact with him directly. Team’s highest velocity was 105
points only in last but two iterations
Project B: Scenario 2
A functional analyst (business SME) was brought onboard to assume the role of pseudo product
owner with all the aforementioned responsibilities. Turnaround time for the clarifications has come
down and the team was able to reach their peak velocity of 120 as early as third iteration
sustaining the same through the end of the project.
The same team was able to deliver 20% more, after the pseudo product owner was on on-
boarded.
Figure 1.4 Better team velocities with Pseudo Product Owner in off-site team
4.2. Scrum Master
Another important role is dedicated scrum master for the distributed team. As the distributed
teams spread across the cultures and geographies, the kind of impediments arise everyday could
be entirely different from onshore team environment. So the need for a dedicated scrum master is
quite evident to provide required support and clear the impediments on the team’s way.
6. Adaption of Engineering PracticesOne common problem all agile teams face is “Increasing technical debt” through iterations. There are
multiple factors that contribute to the technical debt.
Few of them are:
Coding standard violations
Code complexity
Duplicate code
In agile, quality of the deliverables is the key aspect and is part of the definition of done. Team needs
to deliver production ready code at the end of iteration, enabling the product owner to improve TTM.
Achieving this integral goal gets trickier when multiple teams from different vendors and technological
expertise are involved.
This problem can be addressed easily by making all the teams adapting to a suite of engineering
practices that suits the team. All these engineering practices help in identifying the quality problems
on the go and in very early stages to ensure quality and value are built into every increment of the
product. Few of them are listed below.
Continuous Integration:
Teams are encouraged to check-in the code frequently with automated scheduled builds once or
twice a day to make sure there are no conflicts to the other teams when they start their day.
Also, every build should automatically trigger the automated unit tests and integration test suits to
make sure code integrity is intact due to the changes internal and external to the team.
Continuous Inspection:
Coding standards should be enforced on the go. It helps teams to follow the standards as they code
and helps in reducing the review and rework efforts. IDEs should be equipped with sophisticated and
customized plug-ins or extensions with global and customized coding standards so that the codebase
is compliant to standards at any point of time.
Team should also have the ability to run the on-demand scan of the complete codebase for violations
and fix them before delivery and review.
Automated Tests and Developer Driven Testing:
“Write the test first” approach makes the developers to buy-in to the criteria of done completely for
every piece of code they write. When the team writes the test first, they know what to expect when
their code executes.
Team should come up with a test strategy during the initial planning and estimations identifying the
focus areas and decide the amount of automation required. Automating the unit and integration tests
wherever applicable helps in creating re-usable assets and reduces the QA time significantly during
system and regression testing efforts.
Though these practices cost some time and money initially, the benefits are continuous and
incremental through iterations once the team buy-in and adapt them.
Conclusion
It is very important to understand that every distributed team is different and so their needs and
capabilities. They change dynamically depending on their geographies, cultures and work
environment. No single solution or best practice suites all teams. Appropriate tools and best practices
should be tailored according to the needs of the each distributed team involved in the project. The
team should continuously leverage the technology advancements, innovate on tools and techniques
as part of continuous improvement.
Operational best practices like daily video hurdles, recording crucial meetings, off-site visits of the key
stakeholders, pseudo product owner at off-site helps the team to gain the big picture and increase the
trust amongst each other, the focus on spring planning, verticalization of requirements and building a
cross functional team will enhance the efficiency of a distributed agile teams to deliver consistent
quality and velocity throughout the iterations.
References
1. Corporate Visions : Power messaging
2. Pseudo Product Owner: A business domain expertise (typically functional analyst) assuming
the role of a product owner in any off-site distributed agile team
3. Tuckman ladder: PMBOK 5th edition, page 276.
Authors
Pavan Adipuram has 12 years of experience, currently in the role of Program Manager and Agile Lab
coach for one of the Large Financial Services Customer. He has played a crucial role in the journey of
Agile Lab in setting up the process, coaching and helping the teams to reach the matured level in
agile delivery in a truly distributed environment. He is a Certified Scrum Master!
Purnachandra Moparthi has 11 years of experience and currently in the role of Project Leader for
one of the Large Financial Services Customer. He has been an active agile team member from past 3
years and currently leading one of the Agile Teams in a multi vendor distributed agile team. He is a
PMI certified Project Manager (PMP) since Oct 2012.
Key Words
Efficiency enhancement , Distributed Agile, Cross Functional Team, Video Huddles and Verticalization