10 Top Considerations for Success with AgileSuccessful Software Development Outsourcing
The Agile RevolutionAgile has provided a methodology that has revolutionized the software development industryTeams concentrate on user stores that give context to functionality instead of dry, detailed requirementsTeam interaction, the ability for an app to evolve and change direction, and attention to quality all heightened and focused on with agile.
Teams release working software for testing and evaluation throughout the project to Product Owners, client teams and users
Success with AgileAt the core of the methodology there is focus on:Achieving better, more direct communication between members of the entire project teamEnabling all members to interact face-to-face, in real time within a framework of regular events at regular intervalsA basic understanding emphasizes that each team member is responsible for outcomes of functionality, understanding how it fits in project goals or asking for clarity if needed.
Dealing with ProblemsPart of the success of agile is a realization that not all problems can be foreseen and unexpected opportunities will need to be considered during software development projectsAgile itself is made to be adjusted, scaled, along with the methodologies and systems that surround it. So, when the question is asked, Can outsourced software development, with distributed teams, be done using agile? The simple answer is yes. ButSuccessful implementaton depends on planning & experienceFocus on desired outcomes of the final approach, rather than strict aderence to a formal set of processes and procedures.
The Simplest Form of Agile with Outsourced TeamsImagine an outsourced team, collocated with their client, using the same agile methodologies and approach. It is easy to say there should be no impact to agile when outsourcing with collocated teams, but considerDoes the outsourced team feel they are on an equal footing with the internal team?Is your internal team threatened by having contractors on their turf?Is your outsourced team comfortable enough to question interpretations of user stories or the implementation of a technology?Are discussions on a level playing field or do contractors feel they are being held at arms length
Common Bumps in the RoadAgile teams can be impacted by issues with team interaction and dynamics whether the team members are collocated, distributed within a geography or more distant.Methodology There are many flavors of agile and each methodology is likely to be further adapted by team implementationWhen teams with different methodologies and implementations of agile are blended, it can create serious issues with productivity and interactionCreates silos that are hard to change and monitor by other teams, product owners and project leadersDuring project startup, do some iterations to check team interactions and insure everyone is on the same page. Dont allow inter-team barriers to interaction to form. Dont be afraid to adjust implementations to reach common understandings.
Common Bumps in the RoadRecognize & Remove BarriersCommunication: Remove anything that stands in the way of real-time communication between team members. Consider infrastructure, technical systems, reliability and cost of communications of course but also considerCan teams get together, face-to-face during sprint zero?Can you use team games to help everyone know each other and build trust?Look for ways to both expose cultural differences and remove them as barriers to interaction and trust.
Common Bumps in the RoadRecognize & Remove BarriersProcesses: Reaching agreement on methodology and processes should include run-throughs with monitoring to insure things actually work as expected and everyone is on the same page. Include technical systems to manage backlog and burndown, shared repositories, continuous integration and quality assurance.Start system and process rationalization during the startup phase of the project. When issues arise, shared experience makes it much easier to iron out differences and arrive at compromises quickly.
Team Integration & AcceptanceReview the impact of outsourcing on your internal teamWhether your outsourced team is collocated or remote consider the rules of engagement carefullyDoes your internal team see the outsourced team as an equal? A threat? A subordinate? How has outsourcing impacted your teams workload and hours? Their responsibilities?Do they feel outsourcing has high-level sponsorship? Is it solving important business problems? Do they understand the goals of the relationship?A lack of understanding and cooperation in these areas can easily cause a project to go off the rails.
10 Top Considerations for Success With Agile OutsourcingStrong Executive SponsorshipThere is no substitute. Sets the agenda as an organizational priority that has visibility and goals that are part of the business strategySolve Real ProblemsRecognize outsourcing as a decision to solve specific business issues and list them specifically in the statement of executive sponsorship.Flexible ContractDont waste pages on operational aspects of the project in the contract. They become difficult to change and endanger team interaction. Focus on a shared understanding of critical project objectives for the business and the responsibilities of each team in reaching those objectives
10 Top Considerations for Success With Agile OutsourcingPlanned Face-to-Face MeetingsBest case client or outsourced team offices but always in a central location where everyone can participateProvide space for both large team meetings and smaller focus groups to address specific issuesInclude team games, cross team interaction to build trust and understandingProvide good network access, power, lighting, air conditioning control, white boards, markers, project and screen, tables, chairs with flexible organization, etc.Have methods to record meetings and meeting results for later reviewIn longer projects, consider more than one meeting to quickly get in sync and iron out issues. Outsourcing should not be allowed to be a barrier to bringing team members together. Knowing that meetings have a cost, focus on building team understanding and trust, ironing out issues and removing barriers.
10 Top Considerations for Success With Agile OutsourcingOpen CommunicationsOpen, trustful communications is key, especially in outsourcing.All team members must be enabled and responsible to raise issues and ask for clarification. If they feel they must ask someone to ask someone else, fidelity will be lost and problems that start out small will mushroom before they can be addressed. Having planned face-to-face meetings helps, but there is no substitute for a team communications plan that goes beyond technical aspects to establish the critical value of open communications between all team members.
10 Top Considerations for Success With Agile OutsourcingEqual Partner StatusEstablish from the beginning that all teams have an equal stake and status in assuring project success. Teams that feel subordinate will build resentment and become isolated. If the change becomes a cultural adaption, it can be very hard to reverse. Instead of sharing status and barriers, isolated teams withhold issues and sometimes slow production. A shared sense of being part of the whole team and reaching project objectives is critical. When equal partner status is achieved, it is more likely that the creativity of each team and individual will be recognized and used effectively.
10 Top Considerations for Success With Agile OutsourcingTeam ContinuityAssuring team continuity is critical, in outsourcing just as it is in internal teams. When a team member is added or replaced during a project, it will create a new cycle of forming-storming-norming-performing that can lower productivity and team cohesion. If the change is planned carefully, downsides can be overcome. Continuity can be addressed at the contract level and with interviews that probe personality fit as well as technical skills. Personnel loss and change will happen, but assuring there is an understood value in low turnover should be part of the outsourcing relationship.
10 Top Considerations for Success With Agile OutsourcingShared Processes & SystemsPoor system integration can become a serious barrier to productivity in agile development. When updates are thrown-over-the-wall instead of using shared repositories, when continuous integration are not implemented across teams isolated issues can rise unexpectedly increasing risk greatly. Development of a common set of regular processes and integration must be part of planning from the beginning of the project. Shared Vision & PrioritiesDevelop a shared understanding of the business need and goals behind the project, the priorities that drive the schedule and functionality to ensure the entire project team can embrace them. Team members must be able to relate their daily work to their understanding of the project purpose. Developing a shared vision & priorities helps team members to know what must be done and when the project is slipping off the path to their goal.
10 Top Considerations for Success With Agile OutsourcingCelebrate Success & Give CreditThe best moments of a project for teams and individuals can be when they recognized for their effort and successCelebrations dont need to wait for the end of a project. Celebrate special achievements that get the team out of a situation, remove barriers or provide unusual insights at a critical point. Shared success doesnt have to mean cash bonuses or a certificate. Acknowledgements should come from project sponsors and be supported by the team as a whole.
The Take AwayItems on the list should be familiar to everyone with experience in software development and agile, especially with outsourced teams. Issues in the list can be difficult to place as priorities for technical teams, but they are important to control throughout the project. For individuals in teams, these issues require putting a priority on soft skills rather than technical experience, but they can make the difference between success and failure for everyone. Scio Consulting is a provider of nearshore software development services, offering outsourced teams and resources for our clients in North America.