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
- Video conferencing engines
- Instant messenger
- Shared WIKI space
- Shared Drive Space
- 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
- 5 Onsite resources and 5 offshore resources
- 7 Onsite resources and 5 offshore resources
- 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.