Agile projects are 28% more successful than traditional projects. (Source: PwC) And it’s possible to reap the benefits of agile offshore best practices. Martin Fowler, founding father of agile, Moses of software engineering, details how to implement agile in offshore software development in this article.
Here are some of the many benefits to adopting Agile processes in offshore software development teams:
- You won’t incur a productivity tax.
- You will gain greater control over timeline and budget.
- You will have wider access to talent.
We added our own experiences to Fowler’s teachings. Follow the lessons learned in this guide and you’ll quickly see the results of adopting Agile processes in offshore software development.
Here they are, the 15 Commandments to help you follow best practices for offshore agile teams.
1. Thou shall invest in face-to-face communication.
Fowler talks about the importance of communicating in-person. He suggests sending what he calls “ambassadors” or members of the core team to your offshore team, maximizing the time spent on site, and warns against the pitfalls of skipping this type of communication.
Our take? Face-to-face communication is important, healthy, and leads to better results. If you are strapped with a tight budget, we suggest incorporating other low cost, high impact ways to invest in clear communication.
The next 14 commandments spell out practical ways to improve communication between multi-site teams.
2. Thou shall increase time zone overlap.
Having more time zone overlap means you have more time to communicate. This naturally leads to higher productivity. It’s an important factor to take into consideration when adopting Agile processes in offshore software development.
The amount of time teams overlap and the availability of your offshore engineers is a game changer.
Make sure your offshore team overlaps at least half the core team’s day. Make it easy for teams to connect outside of these core hours whether it’s to answer quick questions or participate in important meetings.
3. Thou shall facilitate informal communication.
Informal communication occurs naturally among teams working from the same location. Fostering informal communication between global teams is an often overlooked, but necessary Agile offshore best practice. It helps people build bridges and relationships.
Think of informal communication as the glue that bonds disparate teams.
Today, there are so many options for messaging making it easy to have quick one-to-one conversations. Pick one that meets security protocols. Slack is a popular option. Whatever the medium, encourage your team members to connect directly. In addition to strengthening bonds, informal communication facilitates clarity which leads to greater efficiencies. You will see a boost in morale, productivity, and quality.
4. Thou shall provide culture training.
Another often overlooked investment is sharing and teaching culture. This includes country, corporate, and team culture.
Ask questions and pay attention to the offshore team’s culture. What are their core values? How do they hire? Do they consider culture fit when allocating engineers to your team? What type of culture and soft skills training do they provide?
Culture training reduces misunderstandings, bad feelings, and smooths out any wrinkles in daily communication. While face-to-face communication is one of the best ways to share culture, fostering informal communication also goes a long way in teaching culture.
5. Thou shall use video.
Video makes a huge difference. Studies on nonverbal communication show 7% of any message is conveyed through words, 38% through certain vocal elements, and 55% through nonverbal elements.
For people who speak English as a second language, nonverbal communication is even more important because they may not understand all of the vocabulary or context. When everyone in a meeting has their camera on, team members can easily see who is speaking and the interaction between team members.
Beyond communication, video really connects people and puts a face to a name. Seeing people smile, crack jokes, and share stories helps build team spirit.
6. Thou shall demo regularly.
If possible, conduct a demo at least once every two weeks or each iteration/sprint. It doesn’t have to be a long meeting. If demos are frequent, you can box the time invested to 30 minutes to quickly see progress and give feedback as you go. Feedback keeps teams motivated and reinforces the “why” behind the software, but now we’re jumping ahead to the next commandment.
7. Thou shall teach the “Why” behind the software.
Tell your offshore team the story behind what they’re building, the goals you’re striving for, and why their contribution is so important. This goes a long way.
In addition to sharing business context and domain specific information, spend time rallying the team and making sure they share the same goals as the core team. Explain the challenge, mirror KPIs, give pep talks, and invest in your offshore team the way you would a full-time employee.
More information and getting deeper into the “why” behind the application makes it possible for your offshore team to make daily micro decisions the way you would.
8. Thou shall empower engineers.
Give your engineers autonomy, authority, and accountability.
Fowler talks about a staunchly anti-authority attitude he brought to India. In a hierarchical society, it can be especially challenging to encourage people to speak up.
At the same time, it’s difficult to teach people how to balance being an individual and a team player. Instead of coaching engineers to be anti-authority try:
- Progressively increasing autonomy
- Giving people space to make mistakes in a safe environment
- Training leaders to encourage collaboration
- Holding every engineer accountable
- Making sure engineers know to support a final decision
Not only does this lead to better solutions, it helps the team move forward while increasing job satisfaction for engineers.
9. Thou shall encourage individual contributions.
For many offshore teams, you’ll find the most senior member of the team doing all or most of the talking. This could be related to hierarchy. It could be lack of English skills. It’s more than likely due to lack of soft skills. The problem is, hearing one voice is anti-agile. You’ll get fewer questions, ideas, expert opinions, and solutions.
Make sure your offshore team is getting English tutoring and gaining skills like conflict resolution, managing expectations, and presenting complex concepts in a simple way. The rewards for having every member of the team speak for themselves, share their ideas, ask questions, and build relationships are exponential.
10. Thou shall build a co-located team.
The fewer locations your global team works from, the clearer the communication. Build an environment where people sit together in pods or designated spaces. You can offer limited work-from-home flexibility as long as the team spends most of their time working together in person. The idea is to minimize communication gaps between engineers.
Check out Fowler’s article on Remote vs. Co-located teams. He talks about how, yes, a single-site team is the most productive model, but only if you have consistent, stable access to talent.
11. Thou shall hire experienced engineers, then build a mixed level team.
A common complaint about offshore software development is having to work with junior level developers and testers. Even worse? Getting stuck with a B team when the A team leaves after the initial stages of a project.
Why does this happen? It could be cost. It could also be a retention issue. To keep people motivated it’s important to have a good mix of engineers on a team. This gives people space to grow. Everyone wants to work on increasingly complex tasks, technical design, new technologies, and learn leading skills.
If you don’t have a shadow engineering program in place, you may want to consider one. We have a great program called 4Plus1 – it’s our approach to shadow engineering and we find it to be an effective retention method.
12. Thou shall assign equivalent work to offshore engineers.
Fowler recommends starting your offshore development team with bug fixing. Although we totally understand why he suggests this, we recommend expecting the same level of work from offshore engineers, challenging and treating them as you would full-time staff.
One of the best ways to retain good engineers is to keep them challenged and motivated. When you’re smart, love solving problems, and thrive when held accountable, you need new mountains to climb.
13. Thou shall divide the work by module or role.
Fowler believes dividing the work by module is the best way to make agile work in offshore software development.
While we agree independent modules is the most efficient way to divvy up the scope, in our experience it is possible for multi-site teams to work on the same module.
Here is an example of what that structure would look like for in-house and offshore team:
In this model, all engineers participate in meetings and standups. Start by designating a member of the offshore development team as the lead. As the most senior engineer they will coach and mentor the engineers face-to-face. The lead is still very much hands on and coding, but they may also conduct code reviews, take on the toughest tasks, and help engineers decide how to approach a problem.
If you implement commandments 1-12 you’ll be ready for co-development with an offshore team.
14. Thou shall implement continuous integration.
Flush out problems early and often with continuous integration. There are so many benefits to checking in and integrating code early and often. The process of committing changes and making sure you have a stable build reinforces autonomy and accountability down to the engineer level. We mention frequent demos above, but with CI, savvy Product Owners can review everything in real-time.
15. Thou shall drive results via good data.
This is an area Fowler doesn’t cover. But, data is critical and should be a standard best practice for offshore agile teams.
Data de-politicizes discussions, keeps engineers motivated, and improves team performance.
Establish a reporting platform. Measure team productivity and progress. This is a great way to create more transparency between offshore teams, the core team, and business stakeholders.
It All Comes Down To 3 Things
In order to make Agile work in offshore development and build great software, you have to think about: people, communication, and responding to change.
Find the right people, help them grow, and challenge them.
Make sure everyone communicates, collaborates, and operates as one team.
Then, establish and measure your ability to efficiently respond to change.
These are just some best practices for offshore Agile teams that we found to be successful during our 26+ years of experience in the software development world. If you are looking for a partner who knows how to make outsourcing work with agile development teams, contact us today.