2. 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
3. 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.
4. 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.
5. 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
6. 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.
7. 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.
8. 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.
9. 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.”
10. 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 strategy
2. 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
11. 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.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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.
17. 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.