Building on the discussion of distributed agile-scrum teams in software development we started in the first post in this series, in this post we will discuss some of the principle technical best practices our team at Scio has found to be beneficial for distributed agile teams.
Communications for Distributed Agile Teams
One of the most important areas to consider technically is the use of flexible instant messaging platforms. While these platforms cannot fully replace face-to-face interaction in all cases (especially for first-time encounters), they can go a long way toward building the trust and open relationships that are expected in an agile environment. They must be flexible enough to adapt to a wide range of network speeds and requirements while providing text chat, file transfer, desktop/app share, voice, and video interaction. This requires an understanding of the available bandwidth at each location included in the project, technical constraints of the end user environment, and fallbacks that can be used when the normal application doesn’t function correctly for some reason. Messaging tools must be as «transparent» as possible – not creating extra overhead for ad-hoc meetings that are necessary to iron out important details on the fly, while still providing some extra tools that smooth interaction in larger meetings like side-channel text chats. It may seem trivial to simply adopt one of the many tools available for the purpose, but in practice, finding something that can be widely adopted and quickly brought into daily use is more challenging than you might think. Issues to consider include:
Messaging security – Some industries (such as health care) and some projects may require security over and above that provided by the messaging application itself.
Standards – Special situations may require some standards or rules of the road for users and in a lot of cases, enforced rules may be the easiest route to providing compliance for issues like branding, copyright, and industry compliance. This can be especially important when desktop sharing is used – are there areas in users systems that should not be shared for some reason?
Special needs users – Are there users on the team that require or could benefit from voice to text (rather than keyboard) interaction? Is video easier for some users? It is better to find a platform that provides options for special needs rather than trying to build in workarounds after the fact.
Availability – There is nothing worse than a messaging system no one takes seriously. If it needs to be tucked away, if it is only used when «planned for,» if there is no response when it is needed to answer a critical question, it is just another bit of project overhead and not a useful communication tool. If everyone does not adopt the same tool – much the same is true. This is really not a technical issue, it is more organizational in nature, but it is a waste of time to implement a special system no one is using. Make it part of the agreements in the project kickoff – and use it.
And one additional tool that is indispensable for communications – a camera. It can be as simple as using a smartphone, but having a way to capture white boards, project artifacts and even selfies of team members can be invaluable to bring everyone to the «same page» quickly and to act as a project memory in future interactions or to bring missing members up to speed. It seems like a small point, but if you only think of photos after the fact – it will be too late.
Project Management, Testing and Source Control
Deciding on the project management tools to be used (or not used) during the initial planning session is critical to success. The actual tool used may depend on the standards adopted by the client team before the project starts or they may depend on the type of project involved. Regardless, they must be network-based (so everyone sees the same project status without forcing updates), agile-scrum aware (backlog, burndown charts, etc.), and easy to adopt without a great deal of unnecessary overhead. Another point to consider – can individuals take responsibility for stories and status transparently? Can they update their status as a part of their regular work? For this reason, we use the Team Foundation Server as an integrated part of our Visual Studio environment as a standard. It has agile templates built in and allows individuals to manage their work as part of their development environment. No jumping out to another application. Of course, that said, we do adapt Trello for shorter projects and smaller teams. The right tool for the job is always important to consider.
Today, testing automation, continuous integration, and standardized configuration management are not just good ideas, they should be standard for every project. That said, access and availability for members of a distributed agile team is an important technical hurdle to solve immediately at the start of the project. Along with rules (more on that in the next article in this series) to push early and often rather than «once in a while» it is a critical element of any team environment – especially for distributed teams. It is not something you can easily back into «when you decide it is needed.» It requires consideration for implementation, training and the processes that will be used. Again, this is a subject to be fully discussed in the project kickoff, regardless of who is implementing and using the systems. A single code repository with logging enforced will go a long way toward understanding clearly where the team is and what is really complete at any stage. Again, this isn’t just a best practice for distributed agile teams – all development teams should be regularly using these tools so there is little to no time required to reach productivity with them.
One more thing? Clocks on the wall, for each part of the distributed team, with labels. It seems simple – but when you need to reach someone before they leave for the day – it can make all the difference.
Wiki?
It might seem trivial, but a networked team wiki with space for sharing assets, current status (including builds, etc.), coming meetings, etc. can make all the difference to both communication and «personalizing» interactions between team members. A project wiki can include:
Project wiki with procedures, contact lists, learning during development, editable spring plans, project artifacts (photos, documents) both up to date and historical.
Team member profiles with photos, fun facts, recent changes, etc.
Photos and notes from casual and social team meetings (games, lunches, etc.)
Hours, holidays by location, agreed core team core hours and days when all team members will be available.
Each individual project may have additional technical issues that have to be considered, but this is the starting point we use to consider the set up for every project. In the next segment of this series, we will consider the organizational issues involved in adapting the agile-scrum framework to distributed agile teams. Stay tuned!
Did you come to the party late? You can find the first article of this series here
Practices required for distributed teams: Basically Agile (and Scrum!)
The use of the agile methodology in combination with the Scrum framework is a widely accepted industry standard for software development throughout the world. Together the methodologies provide an iterative and collaborative system that has been proven to be adaptable and resilient over a wide range of implementations by teams in the industry.
What makes the combination of these methodologies so attractive and useful in the development of software?
An adaptable framework for iterative software development that provides the customer working software for evaluation in regular, short increments.
The ability to deal with incomplete or fluctuating product development concepts during the process of development in a way that allows discovery and adjustment as needed.
The project team includes formal roles and responsibilities for both the client, development team and each individual in decision making during the development process.
The inclusion of systems for communication, trust, and collaboration across the entire product development team.
Recognition that the availability of team members for consultation during core working hours is critical to the iterative production process to assure alignment and to allow adjustment as needed.
The production process includes regular daily meetings, as well as meetings for production assessment and planning that are focused on understanding the status of committed work, clearing production obstacles, and making adjustments where necessary to achieve goals the team has committed to accomplish.
Outcomes that have proven to be beneficial to both the client and the development team in the development of successful software applications.
Of course, if you dig into the implementation details of agile and scrum for software development, you will find a number of additional benefits. Each team and project can and does adapt the processes within the framework to fit the constraints of their situation. But with the focus on real-time collaboration and face-to-face interaction, what happens when circumstances combine to require the use of agile and scrum across a team that is distributed across geography? Can the agile-scrum framework be adapted to a distributed team? That is the focus of this five-part series – Best Practices for Distributed Agile Teams.
Adapting Agile & Scrum to a Distributed Team
With the availability of broadband network access across the Internet, as well as the benefits and pressures provided by a global marketplace and workforce – it is critical that the benefits of the agile – scrum framework can be both adapted and scaled to provide their benefits to distributed teams. For the purposes of this series, we will consider any team that has members who are not physically in the same location during core working hours, they are distributed. That could mean the team is spread across a metropolitan area where colocation is both time-consuming and expensive or the team is spread across a wider area – across states or national borders.
The business advantages of opening horizons for software development by distributed teams are relatively obvious:
A distributed model brings a wider field of skills and expertise into play, often with lower costs.
Varied experience in both technology and problem-solving can bring more answers to the table with a lower cost of recruitment and faster fulfillment of specialized requirements
Entire teams can be sourced with less time, training and deeper experience in leveraging agile-scrum for software and product development.
The scenarios for distributed development can include:
Development team together in a development center with
Client in a different location, same time zone
Client in different location and time zone
Split development team
The development team is split between locations or combined with a client team in another location or both
Same time zones or different time zones
Various combinations – split client team, outside consultants, single team members remotely located
Continuity is Key
Regardless of where the client is, adaption to a distributed agile – scrum model is critical to ensure the involvement of key stakeholders, development and product teams and to achieve the benefits of the framework in projects. In fact, at Scio, we have found that consideration and inclusion of the practices required for distributed teams are critical to all our software development projects – whether they are considered to be «distributed» or not. We have found:
Using the practices required for distributed teams provides a more scalable base for all software development teams.
If distributed team practices are not in the standard agile repertoire:
New projects that require a distributed team have a longer ramp to productivity because team members have to adapt to new tools and practices.
Projects face a higher risk because situational adaptions selected by teams may not be proven and optimal.
Teams may have to spend many cycles dealing with organizational issues to reach full productivity.
So, from our experience – adaptations of the agile-scrum methodology and framework to allow a distributed team environment is just good practice. They bring many benefits, including better communication, formalized technical environments, and organizational adaptions. They are a critical part of our work environment and our commitment to our clients.
During the following four parts of this series, we will explore some of the best practices Scio has found to be beneficial for distributed teams and some of the myths that we find are common when the idea is considered by organizations. We hope you will stay with us because there is a lot to know about leveraging a distributed team environment successfully for software development.
Discover the 10 most common software outsourcing risks—and how U.S. tech companies can avoid them with the right nearshore partner in Latin America.
What Is Offshore Outsourcing?
Offshore outsourcing—also known as offshoring—is the business practice of hiring a third-party company located in another country to manage specific operations or services. It’s a strategy that allows companies to reduce costs without compromising quality.
Many of the world’s top tech companies—such as Apple, Cisco, and Ford—have adopted offshore outsourcing, especially for customer support and manufacturing. However, in recent years, software outsourcing has also grown as a strategic lever for tech-driven companies.
While this approach has proven effective over the years, it comes with critical risks that can impact your project’s success if not properly managed.
Why Companies Still Choose Offshoring
Offshoring allows businesses to scale globally, reduce labor expenses, and expand development capacity fast. But to make informed decisions, it’s important to understand the risks involved.
Sensitive information can be exposed or misused in countries with weak cybersecurity regulations or unclear IP enforcement.
Solution: Work with partners in countries with strong IP laws (like Mexico) and ask for NDAs and legal guarantees.
2. Hidden Costs
Extra fees, currency fluctuation, and rework can drive up costs unexpectedly.
Avoid it: Clarify service scope upfront, and look for transparent partners offering total cost of engagement visibility.
3. Communication Barriers
Language proficiency and time zone gaps can lead to delays, misunderstandings, and missed deadlines.
Tip: Nearshore teams in Latin America often offer bilingual support and real-time collaboration with U.S. teams.
4. Subpar Employee Management
Distant management can result in poor oversight, unclear responsibilities, and low productivity.
Fix: Choose partners with clear KPIs, Agile frameworks, and strong delivery oversight.
5. Lack of Work Allocation Efficiency
Poor role distribution leads to duplication of tasks or bottlenecks.
What to do: Ensure your partner works with dedicated roles and clear documentation processes.
6. Cultural Misalignment
Diverging work styles, feedback norms, and values can derail projects or create friction.
Why Nearshore helps: Cultural proximity between the U.S. and Mexico eases collaboration and improves team dynamics.
7. Limited Technological Capabilities
Not all regions keep pace with modern tech stacks, cloud platforms, or security protocols.
Checklist: Assess your vendor’s tech maturity and certifications before you commit.
8. Inconsistent Quality
Fast hiring, low standards, or poor onboarding can lead to subpar deliverables.
Pro tip: Prioritize partners with senior engineers, QA automation, and peer reviews as part of the process.
9. High Turnover
Attrition drains institutional knowledge, slows progress, and causes continuity gaps.
Scio’s approach: We maintain >90% retention rates through long-term engagement, career growth, and team integration.
10. Legal & Regulatory Compliance
Every country has its own laws. A poorly written contract can put your IP or budget at risk.
Solution: Work with partners familiar with U.S. standards and local labor law compliance (like Scio in Mexico).
Outsourcing Growth & Strategic Benefits in 2025: Understanding the rise of outsourcing in global tech operations.
Frequently Asked Questions
What is offshore software outsourcing?
Offshore software outsourcing is the practice of hiring a third-party company in a distant country to handle software development tasks. While it can reduce costs, it often introduces risks such as communication barriers, legal exposure, and time zone misalignment.
What are the main disadvantages of offshore outsourcing?
The top challenges include poor IP protection, hidden costs, inconsistent quality, and cultural or language misalignment that can affect delivery and collaboration.
Is nearshore software development better than offshore?
Yes, for U.S.-based companies, nearshore development (like with teams in Mexico) offers real-time collaboration, cultural alignment, stronger legal frameworks, and easier communication—without compromising on quality or cost-efficiency.
Why is Mexico a preferred nearshore destination for U.S. tech companies?
Mexico shares time zones with the U.S., offers a strong pool of bilingual developers, has robust IP protection laws, and provides a culturally aligned work environment—making it an ideal nearshore partner.
First, let me say this is not an article for budding sociologists or business leaders who think that the last 20 years of increased person-to-person connectivity across the world, with the Internet, social media, entertainment and globalization, have broken down the differences in cultures across the world. The world has changed to be sure, but not on the scale you might imagine. People across the world still see things differently and interact based on their point of view, and that is as true in business as it is in international politics.
Culture actually takes a long time to change, whether we are considering an established business or even more so, a country or region. Studies have shown that the recent growth in communications across the world has only added to the social stereotypes we have to cut through to understand individuals from other cultures. And this is not to say that everyone within a culture will have the same values and drivers. While sociological texts provide many comparisons between cultures, they are at best, a general understanding of the expectations of people inside a society and how they interact with each other.
But at a business level, for a company wanting to outsource software development, what does this really mean? Why should you care? Software development is just a form of work and technology is pretty ubiquitous in the modern world. If people have the skills and experience to do the work wherever they are located, do their cultural values matter?
To investigate this question, let’s imagine a scenario that we (as an nearshore outsourcing vendor in Mexico, serving clients in North America) can relate to. You are starting a project with an agile software development team located in the central area of Mexico. Your team is located in the US Plains region. You might assume that because Mexico is just south of the border – they would know a lot about your culture – and you would be right. People in Mexico and the US consume a very similar range of entertainment and consumer goods and they cross borders in both directions for vacations and visiting their families. But does that fill in the gaps in understanding generated by sensational news reports and differing political agendas on each side?
Sadly, no. Although people in the US visit Mexico in increasing numbers every year, their destinations tend to be resort enclaves like Cancun. Unfortunately, those locations have more in common with the US than Mexico – with good reason. They are intended to make a US and international traveling public comfortable during their stay in another country, not confront them with challenges of language or culture.
On the other side of the coin, people in Mexico generally have relatives in the US and many have visited at different times, outside of the vacation areas like Disneyland. They have a good general understanding of US society, but in most cases, from an outsider’s point of view, even if they have been a resident of the US for an extended period of time. So, while people in Mexico have a fairly good understanding of US social interactions, it may not translate to an easy transition to a working team without some additional understanding and work on both sides.
To understand the differences between the two cultures, take a look at a comparison between the US and Mexico as outlined by studies done by the Hofstede Center.
Hofstede measures cultures based on six areas (adapted from the descriptions provided by the center) :
Power Distance – The degree to which the less powerful members of a society accept and expect that power is distributed unequally. The fundamental issue here is how society handles inequalities among people. People in societies exhibiting a large degree of Power Distance accept a hierarchical order in which everybody has a place and which needs no further justification. In societies with low Power Distance, people strive to equalize the distribution of power and demand justification for inequalities of power.
Individualism – The high side can be defined as a preference for a loosely-knit social framework in which individuals are expected to take care of only themselves and their immediate families. Its opposite, collectivism, represents a preference for a tightly-knit framework in society in which individuals can expect their relatives or members of a particular in-group to look after them in exchange for unquestioning loyalty. A society’s position on this dimension is reflected in whether people’s self-image is defined in terms of “I” or “we.”
Masculinity – The high side represents a preference in society for achievement, heroism, assertiveness and material rewards for success. Society at large is more competitive. Its opposite, femininity, stands for a preference for cooperation, modesty, caring for the weak and quality of life. Society at large is more consensus-oriented. In the business context, Masculinity versus Femininity is sometimes also related to as «tough versus tender» cultures.
Uncertainty Avoidance – Expresses the degree to which the members of a society feel uncomfortable with uncertainty and ambiguity. The fundamental issue here is how a society deals with the fact that the future can never be known: should we try to control the future or just let it happen? Countries exhibiting strong UAI maintain rigid codes of belief and behaviour and are intolerant of unorthodox behaviour and ideas. Weak UAI societies maintain a more relaxed attitude in which practice counts more than principles.
Long Term Orientation – Every society has to maintain some links with its own past while dealing with the challenges of the present and the future. Societies prioritize these two existential goals differently. Societies who score low on this dimension, for example, prefer to maintain time-honoured traditions and norms while viewing societal change with suspicion. Those with a culture which scores high, on the other hand, take a more pragmatic approach: they encourage thrift and efforts in modern education as a way to prepare for the future.
Indulgence – On the high side, societies allow relatively free gratification of basic and natural human drives related to enjoying life and having fun. Restraint stands for a society that suppresses gratification of needs and regulates it by means of strict social norms.
From the comparisons generated by the surveys behind the studies, You can begin to see some basic differences between the expectations of people in the US versus Mexico:
People in the US are generally less accepting of inequality in their interactions than people in Mexico. Business and organizations in Mexico tend to be more hierarchical and less accepting of «flat» organizational structures.
In line with their lower acceptance of inequality, people in the US have a higher level of individuality. In Mexico, although this dimension is changing rapidly and different among segments of the population, individuality is less evident.
In areas of masculinity versus femininity, the two countries are very similar, but Mexico is slightly higher. This shows in a what to outsiders may find to be a surprising amount of competitiveness between individuals and in business within Mexico.
Mexicans have a high propensity for avoiding uncertainty in comparison to people in the US. This plays out in less propensity for risk and higher reliance on pragmatic solutions.
People in the US and Mexico have very little difference in their orientation to long-term versus short-term goals. Both societies generally favor conservative goals.
In contrast to the difference between the two societies’ individualism, Mexico is much higher on the scale of indulgence than the US.
Understanding these basic differences however, doesn’t tell you a lot about how a team of individuals might deal with a business situation. If you imagine a situation when the Mexican team is faced with working over the Christmas holidays to meet a deadline – you might expect some strong push-back because of long-term family traditions and expectations. But you could also expect that in the end, the team would go along with the need because of the value of having work and stability over the long term. But, if you didn’t understand underlying cultural expectations, could you also provide enough incentive to ensure production would not suffer during the period? You could generally expect that some special indulgences for the team would help, but what would really drive them?
Dealing with a specific problem requires more than a general understanding of a team’s cultural distance from your society. There are many layers of the cultural onion, including at a minimum societal, business, and individual levels, that impact the way a team interacts. Almost no one in business today has the time or resources to do the work required to really do a «deep dive» into comparative cultures to find a perfect match for their project. It is important to know we have cultural differences between us when we start a project, but from a pragmatic point of view, it is more important to know how to bridge them than to find «someone just right.»
Bridging the cultural divides goes back to best practices in starting all outsourced projects with remote teams – the initial period of team formation and alignment. Getting teams together, face-to-face, is critical to breaking down barriers and creating an atmosphere where cultural understanding can grow. You can’t expect either side of a team to change their own cultural profile, but you can put them in situations where their awareness of cultural norms within the team is improved and their ability to work together improves. Direct communication and interaction, in both work and casual situations, opens up opportunities to remove stereotypes and replace them with real, dimensional understandings of individuals.
In the end, the simple fact is that there are cultural differences between teams, even in the same company and in the same region. The cultural studies available should simply reinforce that understanding and the importance of dealing with them, not drive you away from using outside teams. You cannot use studies that give you only a general understanding of society to understand a specific team, although they may help you understand where to start.
From that point of view, if you are interested in finding an outsourced team, vendors that understand cultural dimensions and have ways to deal with them from the outset are going to be your best bet. Particularly in agile or DevOps implementations, trust and understanding are among the most important parts of team formation. Scio provides outsourced development teams to our nearshore clients in North America, with the elements necessary to ensure success, including team building approaches to fit your specific situation and assignment. Our teams have less geographical distance and more working-hour overlap than offshore providers which lowers the issues that new teams have to deal with at the outset. We would be glad to discuss your next project and how we can help.
Now we would be happy if you could help us share this page on your social networks so that we can reach more people who need help in these areas or are looking for a software development partner. All you need to do is click on one of the buttons below. Thank you very much!
Every business, big or small, has a great number of activity going on at all times and has a lot of things that they need to keep track of. This is why businesses ranging anywhere from a large chain to a singular freelancer can benefit greatly from a business management software. A business management software is a software or set of programs that has the ability to perform certain business operations as well as the ability to measure and increase productivity. When you are first starting out you may be trying to keep it all in a spreadsheet or, if you’re a freelancer, you may just try to keep it all in your head. As good an idea as this may sound at first, it will likely end up in chaos and your business will suffer for it.
Why Business Management Software is so important!
One of the biggest reasons that you will need a business management software in place is the previously mentioned measurement of productivity. When you are beginning a new business endeavor it is crucial that every employee or component of the business be working at optimal productivity. If your employees or you yourself are taking the time to do the tedious tasks that the software can do, you will be wasting precious time that could be applied to more important tasks. By using the software in place of manual labor, you will free up a lot of time to spend on customers and building your business!
This software will also help employers and business owners to see what their employees are doing with the ease of just a few clicks. This is through the calendar that makes it possible for employees to check in. You can also assign a project to any given employee and track it through this same software. This means that you won’t have to chase down the project leaders to find out the status of a project!
You can also save important documents through this software. Because it can bog up computers when you have all of the documents saved on your hard drive you have limited options. One option is to have external hard drives. However, it can take a while to go through multiple external hard drives when you are looking for a specific document. This is where a business management software comes in handy. Once documents are created they can be automatically saved into the software and they will be in arm’s reach whenever you need them!
How to choose a Software Solution?
Overall, there are multiple ways that a business management software can help your business to grow and succeed. They can be a pricey software but they are definitely worth it if you find the right one. A good idea would be to choose one that has a free trial and allows you to take any data with you when you leave if you decide not to proceed with them. This will allow you to make an educated decision on what you want in your management software. Having this software in place is definitely something that you should do as early as possible to get optimal use out of it.
An even better choice is to invest in a custom business management software because that means that it will be tailor made for your specific needs and wants. This will make it even more helpful for you and your business. When you’re thinking about your business, you will want to get the best software possible and that is custom software in most cases!
Outsourcing is a standard practice in the software development industry and it continues to experience steady growth, year after year. Among the common drivers cited are lowering costs of outsourcing, rapid acquisition of skilled resources, and avoiding staff overhead for one-time projects that would result in layoffs after completion.
In other words – it is all about costs in one way or another, whether they are real expenses or lost opportunities because you could not bring together a new team for a project in time to achieve your market. But, when you have paid the invoices and implemented your new application, what is on your balance sheet? Did you really save the money you thought you would? Are there hidden costs that have drained all the benefits out of the engagement?
10 hidden costs of outsourcing you may not be considering (in no particular order):
#1 – Deciding that driving cost to the lowest level possible is your primary goal
Are you confused? If outsourcing is all about costs, how can it be that using lower costs as your primary reason for outsourcing would actually end up costing you more?
The lowest cost vendor cannot also be the best equipped with the best resources, deep expertise, strong cultural fit, high reliability and excellent real-time communications in your language. Solving each of the issues mentioned has a cost to the vendor, during the contract period or before to find, train, and maintain the necessary resources. Pushing to the lowest possible costs will require trade-offs that you and your team will bear. You may be able to anticipate the cost of working with less experienced and less independent resources at a production level, but can you also judge the costs that could come when unexpected issues arise? Have you ever experienced a project without unexpected issues? Really?
Often, when price is the primary driver, the service buyer decides to manage costs by requiring a fixed-price bid. The upside is the risk is placed on the outsourcing vendor. To mitigate their risks, the vendor will then require extensive documentation, a detailed waterfall-type project plan that leaves acceptance testing to the end of the project, and penalties or prolonged negotiation if changes are needed. Plus, to pad for risk, the vendor will actually increase their bid because they know that fixed-price engagements rarely finish on time and within budget. In addition, they may decide to use less experienced resources (lower cost) overseen by senior resources (high cost, but with little time to look deeply into design and coding issues), So, in the end, instead of gaining assurance the project will end on time with an expected cost, the buyer has more cost for upfront specifications, more risk the final application will meet specifications as written but fail to achieve its goals, and much less oversight and flexibility once the project begins. The vendor will manage to the contract requirements and not the business goals their client decided were important internally. The vendor takes the entire responsibility for cost control, quality assurance, and management. In most cases, this means if their timeline or costs get out of line, quality control and communication between the development team and the client team will suffer.
If your primary driver is cost, you will probably be pushed to offshore resources that are very low cost but have difficulty making their teams available in real time to collaborate with your team, lack good communication skills in your language and little in common with your culture. In these cases, you will have to do what you can to mitigate the fact that 28% of projects fail because of communication issues and 16% fail because of poor cultural matches.
#2 – The cost of selecting a vendor
Few buyers have a budget for selecting an outsourcing vendor and if they do, they rarely allow for the work that would really contribute to successful projects and relationships.
Up-front requirements and bidding document preparation. In order to assure all vendors provide comparable bids, considerable time needs to be spent, by your in-house team specifying both the project and the vendor requirements. If a number of non-compliant or non-comparable bids are returned, what is the cost of going back to the vendor with more details and allowing other vendors to update their bids with what is perhaps new information or different assumptions for them? The hourly cost of internal staff, consultants or both add up but are often not counted in the final project analysis.
Time and opportunity costs. Depending on the value of the project, the vendor selection process can take 4 months to a year. This includes selecting the vendor pool, preparing documents, sending, receiving and reviewing documents, negotiating and preparing contracts, demonstrations, travel to selected vendors, and more.
Travel costs. To properly evaluate final round vendors for a strategic project, it is imperative that is spent at the data center or workplace of the vendor team to assure that practices and conditions match expectations. The greater the distance, the greater the actual costs and the time required for travel. Typical round-trip times to India and Asian locations are two to three weeks depending on the goals and number of vendors to be visited.
#3 Project initiation
The costs of project initiation have an inverse relationship with project risk. The less you spend on project initiation, bringing the teams together, assessing process and methodology, assuring communication, respect, and team collaboration is strong, and that there is a shared understanding of project goals, the greater the risk that the project will fail. But even knowing this simple fact, most vendors and buyers will decide to cut the project initiation phase in favor of «getting to productive coding» quickly. The downside of this choice is a longer time to reach full productivity, more risk of rework to meet expectations, and increased costs for project oversight and team management.
#4 Staff transition
When a new outsourcing team is started on a project, internal staff is often given new roles as part of the initiative. They could be tasked as product owners, to oversee user story development, to run internal quality and acceptance testing, or to assure that questions that cannot be handled directly by the internal product team are handled quickly by the right subject matter experts. If the outsourced team cannot work during the standard workday of the client team, the daily schedules of the internal team may have to be shifted drastically. Their existing roles and responsibilities will need to be handed off or reprioritized to allow them the time to handle their new work and the task switching that invariably occurs. The costs of transition (and retraining in the case of those that may be new to methodologies like agile) are rarely considered in project costs but in reality, if they are not allowed for, the resulting issues can be very costly.
#5 Infrastructure & operations realignment
Inevitably, a new outsourcing project will incur changes in local infrastructure and software development operations. The changes may include new virtual environments, changes to internal processes for continuous integration, automated testing, security and authentication, incremental releases to production or many other issues. Again, part of this falls to poorly planned project initiation, but even with upfront time focused on team cohesion and user stories, the requirements for infrastructure and operations are often overlooked. When they are, count on additional costs because of lowered productivity as issues are ironed out and everyone gets on the same page.
#6 Contract & relationship management
Throughout the project, the buyer/client-side project manager needs to assure that incremental payments match the effort spent and the deliverables received as well as the necessary progress toward completion. Not spending enough time on this aspect of the project can result in very tough negotiations if the project goes off track or unexpected issues arise. In addition, selecting the right project model, whether it is fixed price, time and materials, dedicated team or another variation, has a big impact on this area. A lack of trust and understanding or lack of partner-level communication during the project can make a project very hard to manage to a successful conclusion and very costly when issues must be resolved.
#7 Cultural & organizational alignment
It may seem like a «soft» issue, but if the outsourced team and vendor cannot navigate your cultural norms and organizational environment it is likely to make project management very difficult. Bringing a team from a hierarchical culture into an organization with a flat structure can be very disorienting to team members with different expectations for interaction and responsibility. Merging a small team into an enterprise system with many silos and layers of control can be very difficult. The new team in either case will require additional time to reach full productivity and oversight to ensure they can fully participate as expected – and has a real cost.
#8 Intermediaries
To mitigate many of the issues in this list, outsourcing vendors and buyers often impose intermediaries on projects as an extra layer of «assurance.» This imposes two extra layers of cost on a project: The direct cost of the extra labor required and the indirect cost from the risk incurred when developers, product owners and subject matter experts do not regularly engage in project discussions directly. Every time an intermediary becomes involved, there is a loss of fidelity and clarity. In the end, instead of assuring better communication, the sides are pulled into a «blame-game» when issues are not fully explored or questions are «translated, collated and summarized.»
#9 Technologies
The selection of technologies for a new project can have significant impact on project and application success. If the internal team restricts choices because of a lack of understanding and confidence in the options offered by the outsourcing team, if a lack of communication results in a poor understanding of risk and downsides of technologies selected, or if choices are avoided to keep from exposing a lack of awareness – the downsides can be very hard to overcome. They can raise «technical debt» to a degree that limits options «down the road» in the project or the application lifecycle and lower team cohesion to the point that trust and communication are lost completely.
#10 Location, location, location
To a degree, we’ve covered this already in the sense that work time overlaps, cultural fit, and communication issues can cause project costs to rise significantly. But on its own, the location of the outsourcing team in relation to the client team should be a part of vendor selection, a factor in project initiation, and a major concern from the beginning of any outsourcing relationship. The greater the geographic distance between the teams, the greater the issues will be. Mitigation costs, in general, will increase including travel, working hour adjustment, intermediaries, communication, contract management, etc. While considering nearshore vendors will not eliminate all outsourcing risks and issues, they can make other choices much easier to deal with and diminish risks significantly if they have the right resources and ability to work at a partner level with your team.
Outsourcing can save you time and money, but only if it’s done correctly. With so many factors to consider, it’s important that you do your research before making any decisions. The 10 points above are a great starting point – but there are still more software development costs to think about, such as marketing development costs and advertising expenses. By taking the time to understand all of the possible hidden costs associated with outsourcing, you can be sure that you’re not overspending on your project.
Scio is a nearshore vendor of software development services for our clients in North America. We tune our project model to the project at hand and operate with our clients at a partner level to lower risk on both sides. If you would like to discuss your next project and the options we can offer, please contact us. We would be happy to work with you.