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.
Article originally published on CIO on April 4, 2018.
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 3 dimensions:
Each of these 3 dimensions has 5 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, then a second article on “Business” risks. In this article we’ll go deeper into the 5 risks most commonly seen inside the “Management” dimension of 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.
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:
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.
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.”
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.
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.
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 5 risk areas and take steps to mitigate, or avoid them completely.
Check out the rest of our four part series featuring software outsourcing risk indicators: Part 1: 15 Risk Areas for Software Development Outsourcing, Part 2: Business Risks, and Part 4: Technology Risks.