Agile Scrum and globally distributed teams


Agile Scrum and globally distributed software development

Challenges and Solutions

Joseph Vargheese PMP CISA CSM

Date: 2013-03-30

(Currently looking for consulting opportunities within USA.  Please contact joevgh@gmail.com)

  • Communication is the single largest contributor of the failure of agile scrum in globally distributed teams
  • Scrum is not optimal for globally distributed teams, but it works better than many other processes.
  • Scrum aggravates the challenges faced by globally distributed teams
  • Globally distributed scrum requires few  other  roles compared to traditional Scrum
  • Agile process knowledge still very limited in several of off-shore locations. Hence resources trained in agile process are also limited and very high in demand
  • Many global vendors are very comfortable in water-fall process where deliverable is highly predictable. Ever changing agile process brings disruption to that flow.
  • But even with all of the above Agile Scrum in globally distributed teams are here to stay because benefits outweighs challenges

 1.       Background

With wide acceptance of Agile SCRUM from Silicon Valley startups to every day software development, several organizations with globally distributed operations have already switched to agile or on the process of switching. This presentation mainly focuses the challenges of North American companies to do globally distributed software development in countries with 10-12 hours of time difference. Several techniques are listed in the article to resolve every day issues faced by these teams both off-shore and onsite. This article is based on practical experience of resolving different challenges.

Advertisement

2.       Off-shore and Near-shore teams

Software development teams from India, China, Russia, Poland and few others in the same region are generally referred as off-shore software development teams. Eastern Europe and South American companies also provide cheap software development solutions which are normally referred as near-shore teams.

3.       Not optimal but works well

It is not optimal to do agile development in a globally distributed team environment.  But benefits of the agile process outweigh the challenges faced compared to any other process like waterfall or RUP.

4.       Challenges and Solutions in a Distributed Scrum

4.1   Country based

Every country brings some natural challenges to software development. Agile by its nature of requirements like close interaction and communication within a team, aggravates some of these issues.

India and China brings the disadvantages of 10-12 hours of time difference with any of the North American companies. China and several others bring the disadvantage of English language.

But china has advantage over India and several others to do business in Japan, South Korea because of the language knowledge.

4.2   Communication

If an off-shore agile SCRUM project fails, single largest contributor of the failure will be communication due to 10-12 hours’ time difference between North American companies and off-shore development countries. North American companies having off-shores teams in Eastern Europe or South America have a better overlapping hours between both off-shore and onsite teams.

Some of the solutions are as follow:

i.        Video based meetings

ii.        One Instant  messenger  for onsite and off-shore staff

iii.        Overlapping working hours

iv.        Common sprint management tool including query escalation and resolution

v.        Automated daily status reporting

vi.        Shared source code repository

vii.        Common Build and deploy infrastructure

viii.        Share Drive

ix.        Shared Wiki for Information exchange

4.3   Resource Challenges on off-shore locations

Staff get selected in most agile development team’s is 1 in 5 interviewed. Most off-shore locations have very high demands for highly trained software developers and their low availability. More so in agile, it is better to select the candidates with better fit for agile process.

4.4   Team Layout Changes

Most effective team for agile off-shore development is combined off-shore onsite team 7 onsite and 5 off-shore. In my experience none of the other team layout are as successful as above.

4.5   Additional Roles Required

With the time difference there are additional role in the off-shore scrum team.

4.5.1 Off-shore scrum master

Senior member of the team assume this responsibility to resolve queries and status.

4.5.2 Proxy Product owner

There will be only one Product Owner in the team located generally onsite.  Off-shore should have equivalent proxy product owner role reporting to product owner. This role will speed up the development process

4.6   Additional Meetings  and Process Steps

Release planning (onsite)

Sprint backlog (combined)

Story pruning meeting (Add more details to excite meaningful discussion)

Sprint Planning (onsite)

Sprint Planning (off-shore)

Combined sprint planning (Off-shore and onsite)

Daily Stand-up off-shore

Daily Stand-up Onsite and off-shore together

Sprint Retrospect (Combined)

Burn down chart (Combined and/or separated)

4.7   Process Knowledge

Agile process knowledge is very minimal in several off-shore locations and many teams are learning fast. Besides China still lags overall delivery framework. Travel of resources both direction will help with this.

4.8   Agile contracts

Most off-shore units are run by vendors of the client organization of North American Countries.  Both vendors and clients like fixed process contracts whereas agile is ever changing and fixed price is not much of possibility rather T&M contracts are used.  It is overly difficult to commit deliverable within T&M

4.9   Onsite Knowledge Travel

Bringing people to onsite will speed up knowledge transfer and it is important to do onsite knowledge transfer to several of the key employees.  This also helps to attract right talent to the team.

4.10      Sending regular Ambassadors to off-shore

Occasional travel (Once in 6 month at least) is very important to build trust between onsite and off-shore teams.

5.       Opportunities

5.1   Low cost and reasonable quality

Lower cost and comparable quality are still reasons for outsourcing software development to off-shore locations.  Some arguably say the availability of man-power, which is difficult to validate.

5.2   Better overall results

In my experience overall quality for several stakeholders are good compared to the traditional waterfall fixed price projects. Often the entire project is executed on a lesser cost than waterfall.

6.       Conclusion

As mentioned earlier off-shore software development using Agile SCRUM is here to stay.  It is adopted by many development teams every day and early adopters are beneficial from cost advantage as well as earned value.

Advertisements

Roles and Responsibilities in Onsite Off-shore Agile Scrum


Roles and Responsibilities in Onsite Off-shore Agile Scrum Teams

(Joseph Vargheese PMP CISA CSM,  joevgh@gmail.com)

(Currently looking for consulting opportunities within USA.  Please contact joevgh@gmail.com)

  • Role and responsibilities of offshore and on-site scrum teams are different.
  • Difference is mainly due to time difference and cultural issues.
  • Because of these differences sprint process requires several additional process steps to make off-shore scrum working
  • Proxy Product owner is almost a must for off-shore scrum team success
  • Product owner talents very limited in availability in many of off-shore countries
  • Strong, independent, self-organizing scrum teams will not be reality in the near future (there could be one-off)
  • To some degree, culture differences make it hard in creating self-organizing teams. But help is on the way.

1.     Introduction

Distributed agile teams are always a challenge to work together. Even more so when it comes to 10-12 hours of time difference to off-shore location like India and China. Absence of a product owner in an off-shore location makes very hard for an off-shore team to perform. But it is a reality that, these teams will have to be located different parts of the world due to cost reasons. The successful formula has to take different approach.

2.    Scrum work flow

  • Release planning (onsite)
  • Sprint backlog (combined)
  • Sprint Planning (onsite)
  • Sprint Planning (off-shore)
  • Combined sprint planning (Off-shore and onsite)
  • Daily Stand-up off-shore
  • Daily Stand-up Onsite and off-shore together
  • Sprint Retrospect (Combined)
  • Burn down chart (Combined and/or separated)

3.    What is different and why

Traditional off-shore work culture is very much adapted to water fall process, which includes well documented requirements and very well defined deliverables and contractual obligations controlling delivery components.

Agile comes with exact opposite of these requirements which makes it very hard for the team to operate. Some of the challenges will be as follows

3.1 Undocumented requirements

It will be difficult to conceptualize the business problem on a faraway off-shore location without strong domain knowledge. The presence of strong product owner with lots of domain knowledge can help to bridge the gap.

 

3.2 Work Culture

Generally off-shore has strong committed work culture.  Most off-shore location like India and china has very young work force with 1-5 years of experience. This young and dynamic workforce can contribute very well if fewer variants are placed on them.  Strong leadership is a necessity in that case.

 

3.3 Interaction Requirement

Off-shore teams are built mostly not to have many interactions because of time zone difference. Agile enforces that interaction.   This demands requirements of after-hours telephone connectivity as well as equipment to carry-out the work.

 

3.4 Process Structure

Off-shore teams are very familiar with strong process culture. Agile in essence is very lean on processes. Process ensures the quality even in the absence of strong leadership. Therefore off-shore agile teams require some amount of process.

 

3.5 Metrics

Off-shore teams are very familiar with performance metrics.  Defining and distributing those metrics can set goals for productivity, performance and thus overall improvement in sprint process.

4.    Off-shore Team structure, Roles and Responsibilities

4.1 Off-shore team structure

Dual-shore Teams Structure:

Dual shore team functions as one team at multiple locations with one scrum master and meetings with all of the members from different parts of the world.

Shared-Shore Teams Structure:

Shared-Shore team will have one scrum master; teams mostly function as multiple teams where daily standup area attended only by core members of team from multiple locations.

4.2 Roles and Responsibilities

Onsite agile catalyst:

This role is very similar to off-shore coordinator role in waterfall except responsibilities are different.  Agile catalyst is a member of off-shore team located onsite. His main responsibility is communication between teams and attending all team meetings from off-shore as well as onsite.  This resource will not have direct sprint task rather works reviewer of deliverables.

Off-shore proxy Product Owner:

This position is very confusing to several of agile teams.  But this is an important position for agile scrum success. This resource works very closely with actual product owner to understand product owner vision and then direct the off-shore team based on the vision.  One of the important point to note here is that this resource will not have any decision making capacity.  Ownership of every decision goes back to actual product owner only.

Off-shore sprint team:

Off-shore sprint team layout is very similar to onsite.

5.    Hand-off between onsite and off-shore teams

Hand-off is an important part of success of teams from multiple locations. Story acceptance to offshore sprint team to be clearly discussed on requirement standpoint as well as on assumptions made. Sprint planning is good place to clear those doubts.  As like in any environment, expectation management is an important part of the hand-off both ways. Daily stand-up is good place to reiterate the decision taken and most importantly assumptions not validated. Impediments and their impact have to be clearly discussed. Expectations on every deliverables have to be discussed.

6.    Cultural difference

Every country has cultural difference of its own.  Education, induction to work force, work culture is very different in many countries.  India and china are prime example of hierarchical work culture to some degree closes opportunity to voice bigger concerns, sometime even opinions.   Scrum requires open and honest opinions and discussions to take advantages of self-organizing team.  To some degree lot of times off-shore sprint teams have to put to test to question solutions and ideas floated by others.

7.     Strong Independent Agile teams, Myth or Reality

Rapid advance in collaboration tools and gaining acquaintance of work culture in different countries will make independent agile teams possible in few years.

8.   Conclusion

This discussion is to communicate that, scrum teams on an off-shore location is still a challenge, but can be done.  It takes lot of effort to make it work.  If not managed properly time in managing an off-shore team will eat into sprint tasks with in onsite team members.  Often some of best talents in the team will be pulled to solve problems from off-shore which also can create a team moral issue and of course productivity.

Building an Onsite Off-shore Agile SCRUM Team


Building an Onsite Off-shore Agile SCRUM Team
 (Joseph Vargheese, joevgh@gmail.com)
 
  • This article assumes basic knowledge of agile scrum
  • Agile scrum off-shore delivery model is much different than onsite agile model
  • Off-shore teams are also different than onsite team,  role of  product owner in off-shore agile is very different than onsite team
  • Right Off-shore team layout  is an important component for capacity utilization of team and productivity
  • Agile is very lean in processes. But off-shore agile team requires matured processes for predictable delivery
  • Because  of the absence of strong communication and interaction,  in sprint architecture/design  and in sprint test automation have to be scheduled outside the sprint
  • Agile off-shore delivery model requires a dynamic organization culture including alternate  carrier path for technology lovers and lean processes which are uncommon in many off-shore companies
  • Small vendors are more successful in agile off-shore delivery because of dynamic organization culture
  • Strong governance models are a must in agile to set expectation and delivery
 

1. Introduction

It is difficult to engage agile team from offshore location. Many organizations have tried different models.  This article discusses the steps to create a model close to agile utilizing Agile Scrum process. Agile XP approach is not covered in this article, although these models are very similar. This article also requires basic knowledge of agile process and scrum.

Following intervals on the bottom of the picture are sprint intervals. Below picture shows different milestones. Further process steps are explained below.

2. Planning for an offshore sprint team

There should be some change in the thinking process to get the offshore agile model working. Agile in principle demands close collaboration as well as co-location. If we consider these requirements, off-shore development is not a candidate for agile development process. But all these requirements are possible in some shape and form. Model could be closer to the actual definition of agile to take advantage of the lower cost of development and trained off-shore staff.

Prepping client’s onsite staff with process change is an important part of initial discussion. Since offshore agile scrum process is not same as onsite scrum process, it is important to get training programs organized with experts in this area. Normally vendors will have experts in this area, who can help on educating offshore management on changing expectation from offshore teams, as well as on vendor’s successful agile offshore models. This is very important to avoid some of the surprise during initial phases of sprints. Some of the discussion points will be as follows

  • Work intake process and delivery process.
  • Path of escalating issues
  • Current process structure
  • Offshore delivery model
  • Hierarchical culture in several offshore location and expressing the difference of opinion
  • General resource challenges

3. Offshore and Onsite Collaboration Mechanisms

    1. Video conferencing engines
    2. Instant messenger
    3. Shared WIKI space
    4. Shared Drive Space
    5. Shared artifacts repository (like SVN)

4. Why clients like Agile and vendors don’t

Vendors providing software off-shore services always want to have firm delivery and generally don’t like change. They are more comfortable in traditional waterfall which gives the predictability and stability to deliverables.

5. Overall sprint team roles for offshore

Overall offshore sprint team should include five distinct roles within sprint

  • Onsite Scrum Master
  • Onsite Product Owner
  • Offshore agile catalyst(located onsite and facilitates offshore communication and delivery oversight)
  • Offshore sprint team
  • Offshore proxy Product Owner (Business analyst with strong domain knowledge)

6. Offshore Sprint Team Size

Most efficient offshore agile team in my experience is 5 Resources (3 Developer + 2 QA). Next logical choice will be 7 resources (4 Developer and 3 QA) and further logical choice will be 10 resources (6 Developer and 4 QA). This mix is more dependent of the complexity of application. As complexity increases number of QA should also increase and vice versa.

7. Off-shore sprint process

Off-shore sprint process is not exactly same as onsite sprint process.  Variations are required to suit time difference and often a 24 hours turnaround time.  Let us discuss the individual components in variation

Sprint planning:

Due to time difference, off-shore and onsite sprint planning will be done during two different time zones, though combined sprint planning process is always recommended.  In case of two separate sessions, it is preferable to have off-shore sprint planning process after onsite sprint planning process.  Onsite planning should discuss any impediments team see on implementing these stories, which could be technical, functional or infrastructure.   Off-shore sprint team should discuss and document  any onsite support required for these stories and on importance on timeliness of help.

Off-shore daily scrum:

Apart usual scrum, it is scrum master’s(SM) responsibility to track timely delivery of onsite support (technical, functional or infrastructure) documented during sprint planning and change story status to yellow or red and escalate communication to appropriate stakeholders.

Scrum of Scrum with onsite Scrum master(s):

This is a very important item for success of offshore sprint.  Off-shore SM and onsite SM should talk together about the impediments and supports required for the team and assign the ownership for the delivery of items. This is important decision point for dropping a story from sprint.  Onsite Agile Catalyst will lead effort in getting these items resolved for the off-shore team.

Sprint Retrospect:

Apart from normal sprint retrospect, team should reflect on better ways of getting support from onsite stakeholders clearly document steps worked during current sprint.

8. Agile in captive business units and dual-shore model

Agile dual-shore model with onsite client SM

Captive business units are offshore business units owned and operated by client. Captive business units generally work as an extension of client onsite teams. In that case following model works better. This model is also called as dual-shore model, which is a successful agile model.

  • Most often dual shoring is the common agile practice in this environment. Dual-shore will have a collection of offshore and onsite teams in one agile sprint team.
  • Possible team sizes will be as follows
  1. 5 Onsite resources and 5 offshore resources
  2. 7 Onsite resources and 5 offshore resources
  3. 7 Onsite and 7 offshore will be an overkill
  • In this offshore team, function as an independent sprint team with offshore lead.
  • Offshore lead will be reporting to onsite Scrum Master.
  • Depends on the experience resources, SM could be offshore or onsite.

9. Successful agile models vary with vendor

Agile implementations and vendor knowledge of agile vary with vendors. It is very important for a client organization to understand agile implementation in vendor organization, even before implementing agile in teams for delivery of project. In that case, several of agile skill set in vendor organization can be leveraged to delivery teams.

10 Agile vendor team model

This is not a recommended model. Chance of this model succeeding is very remote. In this model onsite agile catalyst will function as onsite scrum master. Onsite team will include BA and SME from vendor. Vendor sprint development team will be located offshore. Overall delivery responsibility will fall into onsite agile catalyst. Most often this  model  fails because inadequate onsite support system.

11 Agile vendor team model with shared delivery responsibility

This is one of the successful agile model in which delivery responsibility is with onsite scrum master.  In this model onsite agile catalyst report to onsite scrum master who owns overall delivery responsibility

shared agile off-shore team with onsite client SM

12. Agile in T&M model

Agile and T&M model goes hand in hand. But one of the challenges is the quantification of deliverables in this model. There is a clear definition of end product in water fall variations as well as RUP model. In agile, these end products will come as short increments. Though text-book agile talks about releasable product after a sprint, it may be releasable only after few sprints. Quality of deliverables can be determined only at that time. Seemingly well running sprint delivery will expose several quality issues at the time of release and will send several red flags to all parts of organization.

13. Agile in FP model

This is a very challenging model. Since fixed price require locked down requirements and agile allow change, it will be difficult for fixed price model to have agile delivery model. But “fixed” term can be used well in the equation. Instead of holding to fixed price, client can hold fixed SLA, Quality Metrics, productivity.

Following list of items with a target number will have almost same result of fixed price, but with better quality

  • Capacity utilization (How many hours resource worked in all tasks within sprint)
  • Productivity metrics (Sprint resource delivery time against average resource)
  • Defects created during sprint development and found during sprint testing
  • Defects induced to the product during sprint development
  • Code quality measurements using standard tools (for example Sonar for Java, nDepend for C#.)
  • Unit testing coverage

14. Starting an Agile Project

Much the work needs to happen before starting an agile sprint. Following items should be discussed during the kick-off meeting.

  • Offshore resource selection and management process should be in place
  • Offshore resource induction training programs should be in place
  • Should have reasonable idea on quality metrics expected as well as training period
  • Should have fair idea about the progression of velocity of sprint teams
  • Should have defined role of product owner and have identified a person for that role

Following key points need to be finalized before starting an agile engagement

  • Decide agile offshore team model
    • Dual-shore
    • Vendor team model (not recommended)
    • Vendor team model with shared delivery responsibility
    • Decide the team size
      • Based on the discussion above, please determine the appropriate team size
      • Define the role of agile catalyst and proxy product manager
      • Define the flow of feature to sprint and frequency of production release (following section will give pointers)
      • Decide on the quality metrics/SLA/KPI
      • Define governance framework/feedback mechanism

14.1 Flow of offshore agile sprint

As discussed earlier offshore agile sprint needs little more discipline  to be successful. Design and test case automation are the difficult issues within offshore agile sprint.  In the proposed process flow, high level and test automation has been taken out of development sprint.  High level design has been moved prior  to the feature development sprint and test automation has been moved after the development sprint.  This will help to reduce number of queries and decision points with in development sprint and bring better predictability.

Flow of a feature set in off-shore agile sprint

15. Onsite Support System.

Even before starting the sprint, onsite support system has to be defined and agreed upon with offshore teams. Resolving hardware and software issues will be one of the key elements during off hours.

16. Sprint -1 Design

Sprint-1 is defined as the sprint earlier to the development sprint. An offshore team requires little more disciples in terms of receiving work and committing to deliverables. Offshore units are generally several hundred miles away and several time zones apart. Communication will always be a challenge. High level design during the sprint will take lot of back and forth discussion and approval from different teams. Once the high level design is finalized, it is easier to do the rest of the design work within sprint. Otherwise the process normally hampers the delivery process and predictability.

17. Sprint -1 Story creation, review and estimation process

Once design is finished rest of time should be used to create stories and estimation required for the actual development sprint. This will help the teams to prioritize stories within a development sprint reducing the unknowns. Quality will be better as well because clarity of requirements and design is very clear at the point of development.

Estimation is little tricky for scrum process. Many organization use variation FP called story point.  Story point calculates estimate based complexity of the story and comparison similar estimates in the past.  Story points will be translated to hours if sprint burn down is tracked using hours.

18. Continuous integration and Continuous Delivery

Agile normally recommends continuous integration to reduce the unknowns. Even more offshore teams require continuous integration and build process to reduce integration problems in the beginning itself. Continuous delivery will also be recommended for offshore team. This will enable teams to improve productivity.

19. Sprint +1 Automation

Automation within sprint is a way to improve quality and overall ownership of software. Automation will reduce the cost of release and software certification. It will be ideal to do automation after completion of development and verification of software using manual scripts. Automation within development sprint normally creates heavy overhead of reworks down the road.

20. Offshore Scrum (Dos and Don’ts)

Best practices

  • Make sure to filter and select the right talents for the team
  • Create overlapping business hours for the offshore team with onsite resources.
  • Enable close communication between onsite teams using agile catalyst
  • Create measurement metrics for the team (ex: Capacity, productivity, defects created, code rework hours, communication lapse, code quality index)
  • Create continuous improvement for the team based on sprint retrospect
  • Daily progress report and time reporting for status
  • Daily standup meeting with offshore
  • Frequent offshore and onsite travel
  • Daily review of all deliverables and daily feedback mechanisms
  • Tracking offshore created reworks
  • Maintaining WIKI based issue register for all impediments.
  • Selecting a right vendor is the most important one of all

Practices to be discouraged

  • Offshore only team with no onsite oversight
  • Offshore team with no access to domain knowledge
  • Set of offshore hidden factors also need to be avoided

21. Offshore Knowledge Transfer

On periodic basis offshore resources should travel to onsite location for knowledge transfer. It will be a good idea to send a knowledgeable resource to offshore for training. My recommendation will be to have yearly travel of 20% of the resources to onsite for KT for a period of 4-8 weeks.

22. Offshore interaction model

Most important factor in offshore interaction model is to avoid SPOF. Interaction model should be diversified in such a way that offshore failure or rework will not be suppressed.

23. Maintaining Issue Register

It is important to maintain global issue and risk register for offshore engagements. WIKI will be good place to keep track of this register. Key factor is that both offshore and onsite can update this on regular basis.

24. Evolution of Offshore Scrum

Offshore Scrum is still involving. People are experimenting new roles to make it a successful model. Standalone offshore scrum teams are still very far from realty. Though many companies are trying several variations of quasi offshore teams with an oversight from offshore design scrums and onsite requirement/feature creation scrums, net results of these experiments will take time to prove.

25. Agile delivery control (tools and techniques)

There are several tools available for code quality/requirement quality. These tools will help to tune the delivery without much overhead.

Following WIKI has several Code Quality Tools. http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

26. Creating a compare, contrast and challenge culture

This is one of most challenging task in an offshore environment in general. Even if resource recognizes the request that does not make sense, resource will shy in questioning the validity of the request. Creating such culture requires constant monitoring of communication from all sides. Communication has to be constructive in nature to address these issues and encourage them to challenge and reward the people challenging with right question. This is an important element to be inculcated in the team culture.

27. Switching to agile offshore team

Re-tuning waterfall to agile offshore project is a difficult task. It requires much bigger discussion. I am deferring the discussion for now.

28. Agile Fixed Price vs. SLA based delivery

Sections 9 and 10 have references to this section. Further discussion will be added soon.

 

29. Resource, Carrier Path and challenge in agile

One of the challenges I faced in the past are related to offshore resource career path. Some of offshore hiring managers will state that, “they could find enough developers with experience more than 5-6 years of experience” and agile teams require strong technical skills in large numbers to be successful. There is a cultural issue. Because of the phenomenal growth in software industry in India and China, it is almost given that after 5-6 years of experience good engineer will be promoted to manager. They manage a set of people and will be less practiced on technical skills.

30. Conclusion

Overall this article is intended to give an overview of offshore agile process in the current form. Since this is brief paper, several of details are not discussed in this article. If any of you are interested we can talk more details.

Qualities of deliverables are based on the quality of vendor providing services. After all quality can be inserted only to certain extend using process.

Thanks to Julie John for reviewing this article.