The Hard-Coded Hustle: Unmasking Outsourced and Offshored IT Shenanigans
In our recent client engagements, we have seen a notable trend: companies
are reversing their earlier decisions to outsource or offshore software
development, bringing it back in-house to boost productivity. This
transition highlights an unfortunate critical issue in ensuring leaders in
such decision-making positions have the associated experience and
situational awareness to be cognizant of these blatant misjudgments that put
cost over value. The question then arises: how can organizations avoid such
wasteful spending from the start? The answer lies in the ability to capture
and present hard facts and key metrics that sound business leaders can
understand and course correct before talent retention and acquisition is
severely impacted.
Executives who initially advocated for the outsourcing model often defend
their decisions with great fervor. This is where objective, emotion-free
data becomes essential. One of the most effective ways to present such data
is through metrics like Mean Time to Resolution (MTTR) and Failure Analysis
(FA). These metrics are well-known in the realm of asset maintenance but can
be equally powerful in evaluating the efficiency of problem resolution in
software development particularly identifying the what, who, why, and where
did such problems originate.
MTTR measures the average time taken to resolve issues, while FA focuses on
identifying root causes of failures to prevent recurrence. In our findings,
using these metrics have consistently identified the superior performance of
experienced full-time employees (FTEs) compared to outsourced or offshore
teams. FTEs, being fully engaged and integrated within the company, not only
resolve issues faster but also continue appreciate in value as knowledge is
retained offering faster and faster resolutions for future issues. This
stands in stark contrast to third-party teams, who often have a vested
interest in maintaining recurring billable hours rather than solving
problems efficiently as they struggle with internal conflict and volatile
turnover.
Our data shows that FTEs offer quicker resolution times across all types of
problems. They bring deep organizational knowledge and a strong commitment
to the company's goals, which translates into faster and more effective
problem-solving. Moreover, projects handled by in-house teams tend to have
greater visibility and predictability. Fewer people are involved in the
resolution process, which reduces the complexity and communication barriers
often seen with third-party resources.
The recurring theme in our engagements is clear: organizations that rely on
their internal teams achieve better outcomes in both day-to-day operations
and long-term projects. This is not just about faster problem resolution;
it's also about building a more resilient and adaptable development
environment. By investing in their own people, companies ensure that their
teams have a vested interest in the success of the projects, leading to more
innovative solutions and sustainable growth.
Preventing wasteful spending on outsourced or offshore development begins
with a commitment to capturing and analyzing key metrics. Objective data,
free from emotions and political agendas, is crucial in making informed
decisions. Metrics like MTTR and FA highlight the tangible benefits of
in-house development teams: quicker problem resolution, deeper failure
analysis, and overall greater productivity and predictability. As companies
continue to realize these benefits, the trend of bringing development back
in-house is likely to grow, driven by the undeniable advantages of having a
dedicated, fully engaged team working towards the company's success.
Software Sabotage: The Dirty Tricks of Outsourced IT
Our recent investigations into the work planning of outsourced and offshore
partner resources have uncovered a concerning pattern of behavior in both
design and support phases. These partners often employ tactics that
prioritize their own financial gain over the long-term success and
scalability of the solutions they develop. A particularly insidious practice
is the intentional hard coding of key data points. This approach ensures
that any future modifications, enhancements, or scaling efforts will require
additional, billable work. Rather than designing dynamic, data-driven
solutions that anticipate and accommodate future needs, these partners
create rigid systems that demand ongoing adjustments.
This behavior isn't isolated to a few bad actors; it has been observed
across multiple clients and involving various partners. In the design phase,
instead of embedding robust design patterns and algorithmic thinking into
the architecture, these partners opt for quick fixes that lock in certain
functionalities. This method guarantees that as business requirements
evolve, the clients will need to return for costly updates. The short-term
simplicity of hard coding might seem beneficial initially for quick
political wins, but it ultimately leads to increased maintenance costs and
project delays, which typically go unnoticed and/or unaccounted for.
Furthermore, in the support phase, these partners often implement
superficial fixes that address symptoms rather than root causes. This
ensures that problems will recur, leading to continuous support requests and
more billable hours. By avoiding thorough failure analysis and comprehensive
solutions, they create a dependency on their services. This cycle of planned
obsolescence not only strains the client’s budget but also hinders their
ability to innovate and adapt to new challenges.
The repetition of these tactics across different clients and partners
highlights a systemic issue within the outsourced and offshore development
model. It underscores the need for businesses to scrutinize their
partnerships closely and demand higher standards of accountability and
transparency. A more dynamic approach, driven by embedded design patterns
and proactive problem-solving, would serve clients better in the long run.
Such an approach requires a commitment to algorithmic thinking and a focus
on building solutions that are flexible, scalable, and capable of evolving
with the business.
In contrast, our findings consistently show that internal teams, fully
invested in the company’s success, prioritize the creation of adaptable and
sustainable solutions. They are more likely to use design patterns and
algorithms that promote long-term efficiency and scalability. This
commitment to quality and foresight eliminates the need for frequent, costly
modifications and builds a more resilient and responsive IT
infrastructure.
The manipulative practices of some outsourced and offshore partners reveal
a critical flaw in the way these partnerships are often managed. By
intentionally designing systems that require frequent updates, they
prioritize short-term profit over long-term client success. This not only
increases costs but also stifles innovation and growth. Businesses must
demand greater accountability and focus on building internal teams or
selecting partners who prioritize sustainable, dynamic solutions. Through
such strategic changes, organizations can ensure that their IT
infrastructure supports continuous growth and adaptation, free from the
constraints of planned obsolescence.
Truth Serum Exposé: The Actual Failures of Inorganic Development
Beneath the surface of these external partnerships lies a series of
challenges that undermine the marketed benefits. While no outsourced or
offshore resource will openly acknowledge these issues until truth serum
were applied, certain recurring failures would undoubtedly come to light.
These failures not only erode the quality of the work produced but also
significantly impact the timeliness and efficiency of project delivery.
Given that in any project "time" equates to money, these shortcomings
ultimately do nothing to promote the promised gains in productivity.
At the core of these issues are failures that arise from miscommunication,
skill misrepresentation, conflicting project priorities, and non-compliance
with established design patterns. When these elements are not addressed,
they collectively contribute to a breakdown in the software development life
cycle, leading to increased costs and delayed timelines. This breakdown is
often subtle, with the symptoms masked by short-term fixes and superficial
solutions that obscure the deeper, systemic problems.
In the following sections, we will delve into specific failure codes, their
underlying causes, and the resolution codes that can address these problems.
By understanding these dynamics, organizations can better navigate the
complexities of outsourced and offshore development, ultimately leading to
more efficient, timely, and cost-effective project outcomes.
Once the truth serum is applied we can realize the following:
Failure Code: |
Failure to Understand and Comprehend Client Language and Culture |
Cause Code: |
Language and Communication Barriers |
Resolution Code(s): |
|
Investigative Findings: |
When outsourcing development work, language and communication barriers can significantly impede progress. Teams might struggle to grasp the nuances of the client’s requirements, leading to misunderstandings and misaligned deliverables. Implementing mandatory language proficiency tests and training ensures that team members can effectively communicate. Additionally, employing local liaisons who understand both the client's and the team's language can bridge gaps, and regular alignment meetings help maintain clear and consistent communication. |
Failure Code: |
Failure to Demonstrate Skills Presented during Pre-Sale |
Cause Code: |
Misrepresentation of Abilities |
Resolution Code(s): |
|
Investigative Findings: |
Outsourced and offshore teams often times fail to demonstrate the skills
promised by the account manager. This misrepresentation leads to subpar work
and missed deadlines. To counter this, companies should conduct thorough
technical assessments during the hiring process and establish a probation
period to validate the actual skills of the team members. Regular reviews
and competency verifications ensure that the team maintains the required
skill level throughout the project. At no point should the client be expected to provide on-the-job training for such resources, unfortunately such providers are banking on it being more difficult to remove a resource from a project so weak organizations turn a blind eye. |
Failure Code: |
Failure to Prioritize Time Amongst Other Non-Client Demands |
Cause Code: |
Conflicting Project Commitments - Overcommitted / Overpromised |
Resolution Code(s): |
|
Investigative Findings: |
Outsourced teams often juggle multiple clients and projects, which can result in a failure to prioritize time effectively, all this while proclaiming they are 100% committed to your organization. This leads to delays and a lack of focus on the client’s project. Using project management tools to track time allocation helps ensure that the team is dedicating the appropriate amount of effort to each project. Clear priorities and timelines, along with assigning dedicated resources to critical projects, help maintain focus and productivity. It should be noted that there is a reason why such development work is being offered at a significant discount which is directly associated with external third-party effectively time slicing their resources time and billing multiple organizations while working in parallel, thus reduced quality and delayed delivery. |
Failure Code: |
Failure to Develop Using Client Preferred Design Patterns |
Cause Code: |
Lack of Adherence to Client Standards in favor of Personalized Known Patterns |
Resolution Code(s): |
|
Investigative Findings: |
When outsourced teams fail to use provided design patterns, it results in code that is difficult to maintain and scale. This often happens due to a lack of adherence to client standards. Providing comprehensive training on client-specific design patterns ensures that the team is well-versed in the required methodologies. Regular code reviews help maintain compliance, and establishing a feedback loop allows for prompt corrections of any deviations from the standards. |
Failure Code: |
Failure to Develop Using Client Preferred Design Patterns |
Cause Code: |
Lack of Adherence to Client Standards in favor of Personalized Known Patterns |
Resolution Code(s): |
|
Investigative Findings: |
When outsourced teams fail to use provided design patterns, it results in code that is difficult to maintain and scale. This often happens due to a lack of adherence to client standards. Providing comprehensive training on client-specific design patterns ensures that the team is well-versed in the required methodologies. Regular code reviews help maintain compliance, and establishing a feedback loop allows for prompt corrections of any deviations from the standards. |
The aforementioned failure, cause, and resolution outcomes are just a few of the patterns of behavior that we have observed. They should serve as supporting information for anyone engaged in discussions with peers about the realities of choosing to go down a path of outsourcing and offshore resource utilization. Understanding these dynamics can help stakeholders make more informed decisions, considering not only the immediate cost benefits but also the long-term impacts on development productivity, operational efficiency, and overall organizational effectiveness.
Proceed With Caution: Due Diligence Maximized
The software development life cycle becomes unproductive when these common
failures occur as part of cost over value mindset. For instance, a failure to understand and comprehend the
client’s language can cause significant misinterpretations of project
requirements, leading to flawed deliverables. When skills presented by the
account manager are not demonstrated, it results in inadequate solutions
that do not meet the client’s expectations.
Similarly, when outsourced teams fail to prioritize time amongst various
demands, projects often experience delays, affecting the overall timeline
and client satisfaction. The failure to develop using provided design
patterns results in inconsistent and unsustainable codebases, requiring
frequent interventions and modifications.
The True Cost of Cheap Labor: A Penny Saved, a Reputation Lost
The perils of outsourcing and offshoring software development and other IT functions are multifaceted, particularly for organizations that pride themselves on being progressive, responsible, and community-oriented. While the short-term financial benefits of outsourcing might seem appealing, the long-term consequences often reveal significant drawbacks. Outsourcing can lead to a loss of valuable institutional knowledge, diminished quality of work, and decreased employee morale. Experienced developers, who are often more productive and effective, are frequently replaced by less experienced offshore resources, leading to longer project timelines and increased risk of errors. This cycle of replacing seasoned professionals with cheaper labor not only hampers productivity but also undermines the organization's commitment to quality and excellence.
Moreover, organizations that engage in extensive offshoring and outsourcing risk alienating their local workforce and community. By shifting jobs overseas, companies may inadvertently contribute to local unemployment and economic instability. This contradicts the values of organizations that strive to be responsible corporate citizens and active contributors to their communities. Investing in local talent, on the other hand, fosters loyalty, enhances company culture, and drives innovation. It also demonstrates a commitment to societal well-being, aligning business success with the prosperity of the community. Thus, while the allure of cost savings through outsourcing and offshoring can be strong, organizations must weigh these against the long-term benefits of maintaining a skilled, engaged, and locally-based workforce. This approach not only supports sustainable growth but also reinforces the organization's standing as a leader in corporate responsibility and community engagement.
Comments
Post a Comment