Software development outsourcing is a strategy known to all IT departments – and embraced by many. In our discussions with business and IT leaders, we find that some companies have attempted to use outsourced software development, but the results were dissatisfying and sometimes disastrous. Digging deeper, we found the root cause of the issues were not systemic to the decision to outsource nor caused by the outsourcing partner, but rather caused by internal company factors that ultimately prevented success.
We believe there are common “warning flags” that, if properly heeded, can help a company proactively remove barriers to successful software outsourcing. These 15 risk areas can be categorized along three dimensions:
- Business: Not all risks to a software development project lie within the domain of the IT department. Rather, they’re within those areas of the company where business stakeholders reside. These stakeholders see the business opportunity that can be achieved through software solutions.
- Management: Risk is introduced when management fails to ensure that software development goals are pursued with intentionality, clarity, and healthy team dynamics.
- Technology: Finally, we see that regardless of the choice of an outsourcing partner, risks are introduced by flawed elements of the technology architecture, tools and framework.
Each of these three dimensions has five key risks – for a total of 15 key areas of risk.
In a previous article, we introduced readers to this concept of 15 areas of risk, followed by a second article on “business” risks. In this article we’ll go deeper into the five risks most commonly seen inside the “management” dimension of risk.
What is a management risk?
At a meta-level, management risk is risk that’s introduced because the person(s) ultimately responsible for stewarding the software development project fails to ensure that good structure and team dynamics exist. Without good management practices, an otherwise viable software development project using an outsourcing partner (good concept, clear business benefit, capable partners, solid technology) becomes like a rudderless ship at sea: the likelihood of achieving the project goals are left to the currents of chance and dumb luck.
A current-day situation which exacerbates this type of risk is the growing adoption of highly iterative development methodologies such as Agile. After decades of embracing classic waterfall-style methodologies, many project teams have abandoned this approach to software development projects. Generally, the rationale is that a rigid, top-down, unidirectional progression of software design and develop is inefficient. “Big bang” deployments are replaced with weekly “sprints.” The transition away from waterfall is rational and appropriate, but what’s sometimes left behind is a commitment to clear milestones, progress tracking, etc. Good project management rigor has, occasionally, been wrongly abandoned for the cause of “speed and nimbleness.” Ironically, speed and flexibility versus good process and structure are not mutually exclusive – you can have it all.
Management risk no. 1: Unrealistic expectations
Any leader with experience in contractual relationships knows that disagreements can arise over contractual obligations. Invariably, there’s an expectation of one party which doesn’t match the actions of the other party. “Well, what was intended by that part of the agreement is…” has been said time and time again.
The “grey area” of expectations and assumptions are typically where risk occurs. Reasonable parties working together can usually find a palatable compromise – but unrealistic expectations can derail the relationship. How do unrealistic expectations surface? Here are two of the most common circumstances we see:
- Cause and effect of delayed decisions: We see customers take a very hard line on due dates or cost without regard to the delays they caused because of low involvement in the creative process. Don’t presume your outsourcing provider can “make up for lost time.”
- Industry expertise versus company intimacy: Perhaps in your due diligence you were careful to select a software outsourcing company with experience in your industry vertical. Vertical expertise is important – but it’s not the same as having intimacy with your company’s situation. Be very self-aware of nuances of your company: culture, organization, business model and even product distinctiveness – which could impact a third party’s effectiveness if not properly understood.
Management risk no. 2: Unfocused leadership
Leaders oversee projects, manage crucial work segments, and make sure business rules are infused into program code. Ideally, all leaders are willing – and able – to focus on the software development project as a top priority. But that’s not always the case.
Sometimes the “right” stakeholders – based on knowledge or skill – are assigned to a project, but the assignment doesn’t take into account the need for focused attention on the project. Will the leader need some backfill or bandwidth to ensure other business needs are addressed? Have other business priorities been properly factored into what may land on this person’s plate?
Occasionally, we do see distracted project managers. For a variety of reasons, including competing priorities, a project manager may be “mailing it in” – not enforcing work progress against a plan, not keeping a rhythm of status reporting, not tracking project metrics, or not managing good change control.
Management risk no. 3: Unclear milestones
In the glory days of pure waterfall methodology projects, “Go Live” was single “Big Bang” event.
In these days of iterative, continuous deployment, using methodologies like Agile, milestones need to be extremely clear.
Without clear and clearly communicated milestones, stakeholders can create unneeded confusion if they voice that a software release is “missing something” that was never intended for the current iteration release. Conversely, unclear milestones also leave open an opportunity to miss a feature in the sequence of production releases. We regularly hear stories of “Oh, I just assumed that was part of the next release.”
Management risk no. 4: Lack of team interaction
Good communication has always been important in software development projects. Iterative development and deployment, multi-geographical teams, multiple time zones, and a pace that can border on frenetic means good communication is an essential core competency of the project team. Processes and collaborative technologies must come together in elegant ways to ensure that the constant back-and-forth handoff between participants is seamless and low risk.
Software outsourcing is proven as an effective strategy, but for many companies, it introduces a new dynamic for effective collaboration. When “walking down the hall” simply is not an option, it’s critical that the project leaders create clear constructs for effective communication. Regular, effective status meetings are crucial. Consider the use of tools that enhance collaboration – and allow all team members to see “at a glance” what the progress of all work tasks are.
Management risk no. 5: Weak processes
Technology can never overcome bad process in a software development project. In fact, the speed that technology brings will simply choke down a project steeped in bad execution methods – or cause the project to accelerate “into the ditch” at a high rate of speed. The roadmap and methods to be used by the project must be fully understood by the company and the outsourcing vendor – and each side must be fluent and diligent in the use of the methods over the life of the project.
Conclusion: Manage your management risks
Developing and deploying application software is complicated and working with a software outsourcing partner has numerous benefits, but also adds complexity. Don’t allow the potential of failure, or suboptimal completion to creep in by ignoring signs of management risk in your project. Be risk averse. Be critically self-aware of these five risk areas and take steps to mitigate or avoid them completely.