presentation by pavan adipuram

16
Theme – Mantra for Innovative Project Management Sub Theme - Efficiency Enhancement M M P A

Upload: pmiireptp

Post on 24-Jun-2015

150 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Presentation by pavan adipuram

Mantra for Innovative Project Management

Pavan AdipuramAssociate ConsultantTata Consultancy Services

Page 2: Presentation by pavan adipuram

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.

Page 3: Presentation by pavan adipuram

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

Page 4: Presentation by pavan adipuram

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

Page 5: Presentation by pavan adipuram

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.

Page 6: Presentation by pavan adipuram

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

Page 7: Presentation by pavan adipuram

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.

Page 8: Presentation by pavan adipuram

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

Page 9: Presentation by pavan adipuram

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

Page 10: Presentation by pavan adipuram

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

Page 11: Presentation by pavan adipuram

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

Page 12: Presentation by pavan adipuram

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.

Page 13: Presentation by pavan adipuram

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

Page 14: Presentation by pavan adipuram