tips to build a productive, reliable, high-quality global team · tips to build a productive,...

15
WHITEPAPER Tips to Build a Productive, Reliable, High-Quality Global Team

Upload: others

Post on 23-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Tips to Build a Productive, Reliable, High-Quality Global Team | 1

WHITEPAPER

Tips to Build a Productive, Reli-able,

High-Quality Global Team

Tips to Build a Productive, Reliable, High-Quality Global Team

Tips to Build a Productive, Reliable, High-Quality Global Team | 2

WHITEPAPER

Table of ContentsIntroduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Benefits to Building a Global Application Development Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Models of Global Engagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Risks Associated With Building a Global Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Build Productivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Build Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Build Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

A Global Team Can Be a Game Changer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

Tips to Build a Productive, Reliable, High-Quality Global Team | 3

WHITEPAPER

Part of a company’s competitive advantage can come from successfully building and leveraging a

global development team — learning how to coordinate critical resources and information spread

across numerous geographical locations. This global team is a group of individuals, usually from

different nationalities, that work together taking full advantage of global scale. The success of running

a global development team starts with finding the best team members and creating a management

program that allows the team to achieve maximum results.

Just as with any team, there are advantages and risks to managing a global team. Key advantages to

investing in or working with a global team are scalability, reduced costs, and having access to skill

sets that may not be available locally.

A few concerns that companies have when working with or building an offshore team are productivity,

reliability and product quality. By having a thorough understanding of what it takes to successfully

build a global team, you will be better prepared to make the best decision for your company.

Introduction

Tips to Build a Productive, Reliable, High-Quality Global Team | 4

WHITEPAPER

Benefits of Building a Global Application Development Team

CostThe most well-known benefit to building a global team is the cost savings that it provides. Hiring a global team to develop and support your application can reduce costs by leveraging lower labor rates around the world.

Around-the-Clock Team A global application development team allows you to leverage multiple time zones to get tasks and projects completed. When certain functions of an organization become operationally uncon-trollable due to hours of operation constraints, a 24-hour global team can overcome such difficulties. Organizations are able to be productive “after hours” knowing that resources are still working in other locations, in other time zones.

Diversity of SkillsHiring a global team may lead to a diversity of skills that may not be available within your local area. Gener-ally, developers build skill sets based on local need and demand. If you have a demand for a specific skill set that is not a “norm” for your area, a geographically diverse team may be able to provide it, along with a variety of other necessary skills.

ScalabilityThe scalability among a global team is crucial. All businesses have high and low times throughout the year; this especially applies to the application development team where priorities and release cycles can vary widely from quarter to quarter. Having a team available that can scale up or down in size depending upon demand is an invaluable business asset. This allows your business to make sound financial deci-sions and receive maximum value from your global team.

Models of Global Engagement

In-HouseIn-house organizations can hire employees at other office locations, where departments or resources do not currently exist. Spread out your technical resources by having IT offices in several locations.

Open a New Office Organizations can open a new office in a new country. However, there is a lot of cost associated with this

Tips to Build a Productive, Reliable, High-Quality Global Team | 5

WHITEPAPER

as well as the risk associated with different locations having widely varying labor laws. This decision is not recommended unless there is sizeable need for many years. Developing a captive center or a BOT (see below) may help reduce the risks involved in opening a new office and hiring a team alone.

Joint Venture Organizations can find a partner to share the profits and costs associated with creating a global team. Each partner can provide parts of the team and support some of the needs of the team. For example, one partner has a strong market presence and another partner has a group of strong technical resources — each partner invests something and gains something.

Strategic Partnership Organizations can formulate a strategic partnership with a remote development company. By committing to a long-term engagement at a strategic level, both partners know that the other will be there for years to come, which allows them to make good decisions and investments for better long-term performance.

BOT (Build Operate Transfer)Organizations can work with a strategic partner to build a team, operate for a specified period, and then

transfer ownership in the future.

Captive CenterOrganizations can commit to working with a strategic partner to build a dedicated development center

on a cost-plus basis. Normally, the captive center is physically located in the building of the global partner

and shares services with the partner’s other clients, but has its own dedicated space, management,

infrastructure, etc. This type of relationship can require more time and investment up front, but long-

term costs may be reduced.

Simple Vendor RelationshipBy creating a simple vendor relationship, organizations are able to significantly cut costs. But it is difficult to create long-term efficiencies and benefits. This type of engagement is best for only one-off,

short projects.

Risks Associated With Building a Global TeamThe biggest risks associated with building and managing a global team are productivity, reliability and

quality of work. Can a team in different locations be as productive, as reliable or produce the same

quality of work as a local team can? And can a global team work towards the same goal without being in

the same office? These are common fears among business executives.

Tips to Build a Productive, Reliable, High-Quality Global Team | 6

WHITEPAPER

Take into consideration that even a group of individuals working on the same team in the same loca-

tion don’t always give 100 percent of their time and attention to tasks. This may result in delays and

inaccuracies in the work produced. If an organization struggles with missing delivery dates with an

internal team, how would a global team be any better? These are key considerations when thinking

through your options.

While these fears are legitimate and something to be considered and discussed, keep in mind that

the risks can be mitigated by taking the time to build and manage a team using best practices. Global

teams may not always be successful, but being armed with the right management tools and processes

can help create a long-lasting, prosperous team.

Build Productivity

Adopt a Common Project Management MethodologyThe most common project management methodologies are agile and waterfall. Both project manage-ment styles can work well depending upon the type of project a team is working on. In order for waterfall to be successful, the design and planning phases have to be highly effective in order for the team to deliver well in the long term.

Some believe that to practice scrum methodology everyone must physically sit in the office, but many companies work with scrum and distributed team members. Follow the principle of everyone providing their own personal update and next steps on a daily basis to ensure the team stays on track.

Whether it’s waterfall or agile, adopting a common methodology is a key to success.

In fact, building a global team is a great time to update your in-house processes. When both internal and remote teams are

learning at the same time, it becomes easier to ensure that all processes are in sync. This gives your remote team a shared experience to help build strong bonds. When both teams are following the meth-odologies mandated by executives, everyone speaks the same language.

Practically speaking, organizations need to be realistic and consider all global stakeholders when deciding which methodology to implement. The latest trends and articles on project management look tempting, but the best path forward is to use what your team can deliver well.

Tips to Build a Productive, Reliable, High-Quality Global Team | 7

WHITEPAPER

One final note about methodologies — high quality systems like Test Driven Design (TDD) or Behavior Driven Design (BDD) can work extremely well in distributed teams. To get good results, it is imperative that everyone follows all of the ground rules.

Require Daily CommunicationAnother way to build productivity to is adopt a common methodology that requires daily communi-cation and collaboration amongst local and remote teams. There are multiple ways you can go about achieving this goal.

Find a cohesive time for both internal and remote teams to communicate. Early in the day for U.S. teams is mid-day for European teams and late afternoon for Asian teams. Pick a time when everyone on the team can communicate and collaborate on the project in real time. Team members also need to keep in mind that flexibility with scheduling is crucial – so coming in a little early or staying a little late is a part of doing good business, rather than being seen as an inconvenience.

Utilize a tool such as HipChat or Slack in order to keep momentum going on projects. This allows for open communication and/or collaboration. Organizations can go the extra step and provide video conferencing solutions, which will allow teams to collaborate and share whiteboards.

Encouraging team members to use positive language, such as “issue” rather than “failure,” can have a powerful effect on communication

and collaboration. Management needs to train, encourage and enforce utilizing communication best practices. Recognize team members who do it well.

Understand that not everyone on the globe is a native English speaker and even those who are may demonstrate unique phrasing and pronunciation based on where they are located. Actively encourage team members to speak clearly and allow them to give examples in order to make themselves clear. By doing this, members of all teams will have a better understanding of each other regardless of native language or location.

Unfortunately, not everyone enters the global marketplace with the best intentions. It’s important to encourage employees to work closely with human resources teams globally to actively counsel or even remove team members who exhibit racism or racist tendencies. There is absolutely no place for this in the modern workplace.

Determine ShiftsIt’s crucial to determine whether or not team members need to all work at the same time and collabo-rate intensely or if teams can “follow the sun” and work during the daytime in different time zones.

Tips to Build a Productive, Reliable, High-Quality Global Team | 8

WHITEPAPER

The advantage of sharing one shift is that everyone can collaborate in real time. This can be powerful in a very cooperative environment, or when interdependent teams are in different locations. For example, a product marketing team in Newcastle may need to work in real time with their designers in New York and developers in New Delhi to get an evolving product to market quickly. If developers are already talking about work over cubicle walls or sharing a whiteboard now, this is probably a good decision for your organization.

It’s also wise in this case to look at the downside. A drawback to sharing one shift is that it is harder to find top talent when you require them to work a specific set of hours. It is difficult to find great technical people to work the graveyard shift anywhere in the world.

On the other hand, you may choose to leverage some of the advantages of multiple time zones. The biggest advantage of “following the sun” is that organizations are able to stretch their work day.

Developers can work one shift, package the code and hand it off to a QA team to test on the next shift. Likewise, a web service team can write code at night that the UI team designs the screens for the next morning. Continuous integration can work very well in this environment and peer code review is very natural when the peers work off-shift from each other.

When team members “follow the sun,” communications amongst them needs to be intentionally increased. Saying “I’ll tell him about what I did when I see him tomorrow morning” does not apply when the other employee has already worked a majority of their day before you “see” him. Again, implementing a communication/collaboration tool can help with this.

Leverage the CloudWhen building reliability in a global application development team, cloud-based development/test environments should be the norm. Developing on local machines is fraught with risk, and the scripted “build and destroy” procedure of cloud-based development and test environments ensures a clean environment that helps productivity in the long run. The productivity gains more than pay for the cost of the cloud-based development and testing environment.

Tips to Build a Productive, Reliable, High-Quality Global Team | 9

WHITEPAPER

In addition, implementing cloud-based tools is key to increasing productivity in a global environment. HipChat or Slack assists with collaboration, and JIRA is a useful project management tool. Leveraging cloud-based code repositories, such as BitBucket, CloudForge and Assembla, can help ensure that all team members have access to the code at all times, and many offer integrations or additional tools that pay even bigger dividends.

Measure, Measure, Measure The importance of measuring anything and everything related to a development project cannot be over-stated. First, measure on-time delivery and defect levels, then build reward structures around delivering great quality on time.

Automate code quality review as a mandatory first pass. There are many existing tools to assist with this. It makes all code look uniform, which helps across all parts of the team. However, automated review is not a substitute for peer code review. Make sure to track code quality metrics by developer over time.

Remember, agile velocity measurements are only relative to themselves. The fact that a U.S. team may score a 13 and a South American team delivers a 24 does not mean that one is more productive than the other. Compare velocity measurements only within a team.

Measure all parts of the team, not just the easy ones. Measuring business analysts, architects and designers is difficult, but it pays dividends when done successfully.

Finally, you get exactly what you measure, so make sure you do not measure things that don’t align with your overall goals. Set up metrics purposefully and they will help drive you towards your objectives.

Build Reliability

Actively Encourage CommunicationIndividuals among different cultures often have differing approaches on reporting readiness, roadblocks, or even asking questions. Encourage the reporting of errors, access issues, team member absences, and confusion. Wherever possible, have the contract terms focus on honest and straightforward team communication.

You get exactly what you measure, so make sure you do not measure things that don’t align with your overall goals. Set up metrics purposefully and they will help drive you towards your objectives.

Tips to Build a Productive, Reliable, High-Quality Global Team | 10

WHITEPAPER

One of the best ways to foster open communications is visiting face-to-face. A compounding positive effect occurs when organizations send team members on-site. By spending time together outside of the office, the on-site visitor can help all team members understand the intangibles while they discuss technical issues. Both parties, the on-site visitor and the on-site employees, take away the fact that “they are just like us,” which often breaks down barriers and builds a stronger team.

Remember that travel for team members can go both ways. Try not to only send people to the corporate headquarters for on-site visits. While that is very valuable, organizations can get equal or greater value sending team members away from headquarters and allowing employees to travel between global sites.If the global team is widely distributed, or even just working from home, it is important to have quarterly/semi-annual/annual “summits” to help build cohesion and keep the team focused on the common goal. Plus, the team members reap the same benefits of an on-site visit.

Remember to always encourage every team member — from the lowest level developer to the stron-gest manager - to speak for themselves; allow them to ask questions, make comments, share new ideas and discuss doubts. Authentic communication takes time; sometimes it’s just a few weeks, sometimes it’s two months or more. Keep at it and be intentional.

Create Clear GoalsOrganizations can create reliability by setting clear goals and rewarding people for achieving them. Make sure that project tasks are assigned to individual employees, not “the dev team.” Assigning tasks to a team invites headaches and does not hold individuals accountable. However, allow flexibility so team members can share tasks, ask for help from one another, or even swap tasks if it is appropriate. Plan according to the individual team member, but allow for flexibility. Local management or team leads can help with this.

Tips to Build a Productive, Reliable, High-Quality Global Team | 11

WHITEPAPER

• Expect every team member to be personally committed and aware of their (and the whole team’s) goals for the sprint or milestone. You do not want individuals booking 100 percent of their time since Murphy’s Law tends to have a field day in those situations.

• Expect that teams are going to go slower when working on new stuff and pick up speed over time.

• Expect that teams are going to go slower when important team members are on vacation or out sick.

• Expect that something is going to happen that was unexpected and allow a little slack time in the schedule. Plan accordingly for all of these situations.

Make sure that your global team is set up to recognize working overtime to hit a goal, but be sure to understand the reasons it was necessary. Working late hours is inevitable in application development, but if teams are working long shifts every single sprint or milestone, that should raise a red flag that there is a problem among the team. Reward team members for going above and beyond to pick up an unassigned task and deliver it early; however, be wary of sand-bagging if it happens too often.

Focus on Code ReliabilityMake sure that your project focus goes beyond short term deliverables. Clean code with good docu-mentation that is well version controlled will help the team accomplish goals more consistently in the long term. This can take a little longer to build and will require management to continuously ask the tough questions and focus on the long term payoffs. Actively call out team members when they are cutting corners to hit deadlines and deal with it immediately.

Have quality control plans and tools in place and assign enough qualified people to make them work smoothly. Unit tests, automated tests, and exploratory testing are keys to long-term reliability of the system and the team. Think carefully about how the quality control team and the development team interact. It is here that an experienced partner can share what works and what doesn’t in various contexts.

Don’t be afraid to adjust course. Sometimes a team needs to refactor code based on new information or changing requirements. Plan your timelines to allow the team enough time to do the work as well as they can. When market or business demands force you to compromise, document the known issues well enough so all stakeholders know the limitations and weaknesses of the system. This also helps the team refactor efficiently when time allows in the future.

Think carefully about how the quality control team and the development team interact. It is here that an experienced partner can share what works and what doesn’t in various contexts.

Tips to Build a Productive, Reliable, High-Quality Global Team | 12

WHITEPAPER

Get UI/UX Input Early and Often One area that causes a breakdown in reliability and many preventable delays is UI/UX redesigns — espe-cially if there are material changes to workflow or other UX functionality. Encourage external feedback on UI/UX early in the product lifecycle. Consider adopting RAD methodology or including sprints to build a throw-away, clickable UI that will aid in rapid feedback.

Enforce UI and UX best practices. Consider and clearly communicate any regulatory UI issues (cookies, handicapped accessibility, etc.) that may not be understood by people in different geographies. Imple-menting MVC architecture is a good idea as well.

Leverage the CloudA cloud infrastructure can allow organizations to reduce or eliminate issues that plague data centers, such as incorrectly configured servers and slow response to fix issues when they are discovered. Adding cloud-native services can save development time, reduce costs, increase reliability, and improve overall team and application performance. To successfully leverage the cloud, organizations must staff some cloud experts on their team.

Build Quality

Mandate an Effective Branching and Versioning StrategyStrong source control is a big step toward overall quality. Organizations should mandate an effective branching and versioning strategy and make sure all team members understand and follow it. Branching can be misunderstood, and therefore improperly implemented. But, branching lies at the very heart of source control, and thus software development.

One way to overcome the fear or hesitation, while keeping branching under control, is to enact a branching pattern. Teams can branch per release, per promotion, per task, per technology and so on. By following patterns, the branches have a clearly defined lifecycle and are built with the intent of merging.

Staff Quality Roles AppropriatelyMany large companies publicly talk about how they have two, three or more quality engineers for every software engineer. Staff the quality efforts of your team appropriately for your target market. Working with a global partner who

Tips to Build a Productive, Reliable, High-Quality Global Team | 13

WHITEPAPER

can scale teams up and down quickly can lend value, since QA engineers can be added and removed as needed around launches or major deliverables.

Decide if QA/QC happens after unit testing and code review or between unit testing and code review, and make sure that stakeholders are aware of the pros and cons of the options you choose.

Decide who owns the quality team and their performance globally, and make sure they have able depu-ties in each global location where there are QA/QC engineers. Software quality control is one place where you can use the global nature of your team to your advantage. Use geographical distance to help create a separation between developers and quality engineers. In some cases, implementing an “independent-third-party” approach can pay off in holding developers accountable. Security is crucial as well. Staff well trained security professionals as part of the quality team in addition to making security checks part of every test. Make sure the QA team does not sign off on code without appropriate security reviews.

Invest in Cloud-Based Quality Tools and Test Automation Every dollar spent on tools and test automation pays off twice, as it helps build quality as well as produc-tivity. There are a number of good test case management and defect tracking tools. Take the time to explore your options and find the tools that work for your organization early in the process, then use them to their fullest. Integrate the tools into your organization’s project management and collaboration systems.

Leverage global talent pools to find test automation developers. If partnership options are being explored, this is a good place where a strong global partner with deep QA expertise can be of assistance.

Make sure everyone in the organization understands the pros and cons of the tools and your specific test automation choices. Many developers test by hand when an automated test exists. Eliminate wasted time by communicating the availability of tools and scripts. Test automation tools can be helpful, but don’t use test automation in place of testing by hand. Use automated testing and exploratory testing together to efficiently achieve maximum quality.

Automate Builds With all of the available technology, the times when an individual should manually put code into produc-tion are fewer and farther between. Research and select automated build tools and mandate that the push to staging and the push to production be as automated as possible. Make the build part of the QA team’s responsibilities and measure efforts and results. If the individual who owns the build automation can leverage time zones, he or she should be able to have builds pushed live at a time that works for your target market and for your build automation engineer.

Tips to Build a Productive, Reliable, High-Quality Global Team | 14

WHITEPAPER

Tools are great, but you sometimes need a human touch to smooth over the rough spots. Using auto-mated build tools helps boost productivity and reliability.

Measure Quality and Publish the Results Track defect rates found within the team and defect leakage rates (defects found by people outside the team, such as your customers). Look at them by developer, by tester, by location and across defined time periods. Look for and address red flags, and be sure to reward positive progress.

The cost of quality is a great metric to use. It’s the cost of all quality work as a percent of total work — from writing test cases and testing to rework by developers. Expect it to be 40 - 80 percent. Many large companies set targets for 60 - 80 percent, while aggressive teams set the target to 30 - 40 percent.

A Global Team Can Be a Game Changer Managing a global team effectively and steering them toward their goals is not always easy. Commu-nication barriers and issues related to cultivating trust routinely sabotage the most well-intentioned team. The diversity among the team almost always brings with it some degree of incompatibility and communication difficulties. The process mechanisms that have been advised will help recognize and anticipate future pitfalls. By making the right choices with the team’s productivity, reliability and quality in mind, global teams can overcome issues and achieve their end goals.

A solid foundation for assembling and managing a high-performing global team is essential. A team consisting of members with unique knowledge and skills will become a source of real competitive strength over time and allow you to achieve more than you could have otherwise. The many reasons to build an offshore team — scalability, cost, skill diversity — can outweigh the difficulties in setting up the team. Finding a global partner will help you find the best team model, adopt the best practices and methods, staff and retain the right engineers and manager and achieve success.

Tips to Build a Productive, Reliable, High-Quality Global Team | 15

WHITEPAPER

+1 502 410 1732 | glowtouch.com | [email protected]

Need to build a world-class outsourced team for your software development or customer support?

We can help — with speed, scalability and proven processes tailored to mid-size businesses.

At GlowTouch Technologies we’re 100 percent dedicated to you. We immerse ourselves in your needs

to become your trusted IT services partner. We quickly build you a dedicated team, scaling up or

down as you need. And we’re highly responsive and accessible to you. With a skilled, 1,200-person

team in India and offices in the U.S. and Australia, we manage IT offshoring from start to finish.

Contracts, IP, time zones, cultural complexities — we make it all easy.

To learn more about building your global team and solving your greatest challenges, give us a call at

+1 502 410 1732 or email us at [email protected].

About GlowTouch