17
10 Top Considerations for Success with Agile Successful Software Development Outsourcing

10 Top Considerations for Successful Outsourcing with Agile

Embed Size (px)

Citation preview

Page 1: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success with Agile

Successful Software Development Outsourcing

Page 2: 10 Top Considerations for Successful Outsourcing with Agile

The Agile Revolution• Agile has provided a

methodology that has revolutionized the software development industry– Teams concentrate on user

stores that give context to functionality instead of dry, detailed requirements

– Team 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

Page 3: 10 Top Considerations for Successful Outsourcing with Agile

Success with Agile

• At the core of the methodology there is focus on:– Achieving better, more direct communication

between members of the entire project team– Enabling all members to interact face-to-face, in real

time within a framework of regular events at regular intervals

– A 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.

Page 4: 10 Top Considerations for Successful Outsourcing with Agile

Dealing with Problems• Part 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 projects– Agile 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. But…– Successful implementaton depends on planning & experience– Focus on desired outcomes of the final approach, rather than strict

aderence to a formal set of processes and procedures.

Page 5: 10 Top Considerations for Successful Outsourcing with Agile

The Simplest Form of Agile with Outsourced Teams

• Imagine 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 consider…– Does 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 arm’s length

Page 6: 10 Top Considerations for Successful Outsourcing with Agile

Common “Bumps in the Road”• Agile 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 implementation– When teams with different methodologies and implementations of agile are

blended, it can create serious issues with productivity and interaction– Creates silos that are hard to change and monitor by other teams, product

owners and project leaders– During project startup, do some iterations to check team interactions and

insure everyone is on the same page. Don’t allow inter-team barriers to interaction to form. Don’t be afraid to adjust implementations to reach common understandings.

Page 7: 10 Top Considerations for Successful Outsourcing with Agile

Common “Bumps in the Road”• Recognize & Remove Barriers

– Communication: 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 consider…

– Can 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.

Page 8: 10 Top Considerations for Successful Outsourcing with Agile

Common “Bumps in the Road”

• Recognize & Remove Barriers– Processes: 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.

Page 9: 10 Top Considerations for Successful Outsourcing with Agile

Team Integration & Acceptance

• Review the impact of outsourcing on your internal team– Whether your outsourced team is collocated or remote

consider the “rules of engagement” carefully• Does 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.”

Page 10: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

1. Strong Executive Sponsorship– There is no substitute. Sets the agenda as an organizational priority that

has visibility and goals that are part of the business strategy2. Solve Real Problems

– Recognize outsourcing as a decision to solve specific business issues and list them specifically in the statement of executive sponsorship.

3. Flexible Contract– Don’t 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

Page 11: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

4. Planned Face-to-Face Meetings– Best case – client or outsourced team offices but always in a central

location where everyone can participate– Provide space for both large team meetings and smaller focus groups to

address specific issues– Include team games, cross team interaction to build trust and

understanding– Provide 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 review– In 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.

Page 12: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

5. Open Communications– Open, 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.

Page 13: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

6. Equal Partner Status– Establish 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.

Page 14: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

7. Team Continuity– Assuring 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.

Page 15: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

8. Shared Processes & Systems– Poor 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.

9. Shared Vision & Priorities– Develop 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.

Page 16: 10 Top Considerations for Successful Outsourcing with Agile

10 Top Considerations for Success With Agile Outsourcing

10.Celebrate Success & Give Credit– The best moments of a project for teams and

individuals can be when they recognized for their effort and success

– Celebrations don’t 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 doesn’t have to mean cash bonuses or a certificate. Acknowledgements should come from project sponsors and be supported by the team as a whole.

Page 17: 10 Top Considerations for Successful Outsourcing with Agile

The Take Away• Items 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.