Top 10 indications that you moved up from ‘Offshore Staffing’ into Agile Software Development
‘Offshore Staffing’ relates to engineers staffed at offshore locations treated as augmented team members reporting into a lead sitting at the master location or onsite. While offshore staffing serves short-term tactical goals, it requires extensive one-to-one interactions and hence consumes significant communication and coordination overheads. As a result the team members continue to remain sincere ‘order-takers’ and do not find opportunities to understand the big picture in order to offer value to stakeholders. Even though there may be good reasons to start an engagement in ‘Offshore Staffing’ model, there are compelling benefits when stakeholders mature the engagement to the next level so that the team becomes agile and manages projects. In Software Product Engineering as well as Outsourced Product Development, agile software development has been the mantra of success over the past several years. However moving up from ‘Offshore Staffing’ is a collective decision of project stakeholders. I am sure you have experienced this.
At Mindtree we have collaborated with our partners in moving up the value chain. This requires lot of trust, support and strong governance to ensure results.
Here are the top 10 indications that you moved up from ‘Offshore Staffing’ into ‘Agile Software Development’.
- Offshore team is a structured team with a lead or manager. Team members have clarity on their roles and responsibilities. Everyone in the offshore team knows what everyone else does in the team. Key team members visit other locations couple of times a year for knowledge sharing and team bonding.
- Offshore team has adequate infrastructure support for day-to-day communication with remote teams. Team members do have access to Internet Messenger (IM), phone, and video conferencing in addition to email communication. Besides, the team members know efficient ways to utilize Internet Messenger or phone of video conferencing.
- Offshore team members do not perceive ‘Agile’ as a niche paradigm known to remote customer only or survive with inadequate preliminary awareness on agile. They are well aware of agile practices and have practiced agile for more than six months. Offshore team members organize knowledge sharing sessions to discuss agile best practices and share suggestions with customer teams.
- Offshore team members attend iteration planning meetings. Also they follow the similar set of agile practices followed by customer teams.
- Iterations are short (2 to 4 weeks) and estimation is done for tasks in small chunks. Offshore teams participate in estimation and prioritization of tasks. Working software is delivered at the end of each iteration and the team experiences continuous learning and improvement. While there is no change in iteration size, the overall model supports variations to scope in order to accommodate the priorities of stakeholders.
- Team members do not get daily task delegation emails from remote customer. There are no drastic changes to assigned tasks and do not have to do frequent context switching every day. However, team members embrace change swiftly with constructive discussions. Task assignment happens over a web-based tool that supports Agile Software Development. The scope of any iteration does not change during that iteration.
- Both onsite and offshore teams have access to a centralized version control system and adhere to the same set of build process and corresponding build scripts. Continuous Integration is practiced consistently.
- Both onsite and offshore teams use the same web-based tool for bug tracking, issue resolution and query resolution.
- Unit Testing happens all the time. Test Automation is passionately pursued in order to improve productivity.
- Everyone in the team understands the value of collective code ownership and more than 50% of the developers own the code. There has been an increasing trend in the percentage of developers who know the entire code base and exhibit code ownership. Team members are willing to move across various categories of tasks in the project in order to meet project goals. It is very rare to find someone in the team who attempts to claim “This is not my job.”