If you are a fan of Designveloper‘s blog, you may read 5 Tips for Successful Software Outsourcing and know of the massive failed software outsourcing deal between IBM and Queensland. But let’s be more specific about what killed those potential businesses.
In this article, we will give you a closer look at how things went wrong and also our solutions for each issue.
1. Lack of flexibility
It is a fact that things change and issues happen all the time, especially when your business is involved in such an ever-changing industry like software development. As a result, embracing flexibility plays a crucial role to perform a good procedure.
Image: Office Vibe.
To be more specific, flexibility is the skill to quickly response to new, different or changing issues or requirements. Meanwhile, you and your team should get to know new technologies and languages at a fast pace. As suggested in a study of Science Direct, there are many dimensions to measure such as range, diversity, mobility, autonomy, or extent of organizational responses to environmental changes.
The reason for being flexible may be varied but one of the main causes is that unexpected outcomes and issues are likely to raise during the development process. Furthermore, hundreds of variables could affect your code, and unpleasant results may happen.
For instance, when your customer is facing trouble with the payment gateway, it’s essential to find solutions and get rid of the bugs immediately. Because no one wants to lose money, or worse, lose their customers, due to such an issue.
As for the business, they should be flexible to respond and support the software outsourcing company so that they can come up with a quick fix without wasting too much time and effort.
To be more flexible, we recommend businesses and outsourcing companies to implement Agile into their process. With this brilliant framework, your issues will be solved faster and the quality of your product is optimized as it’s developed. If you are wondering how a company uses this framework in their system, read more here.
We at Designveloper are applying Scrum – a subset framework of Agile – to make the development process goes flexibly and smoothly. Thanks to this tool, products are delivered nicely and issues are solved at once.
2. No metric to measure the progress of software outsourcing
“Out of sight is out of mind”, this quote is right most of the time. However, you should learn this by heart when collaborating with an overseas company.
A software outsourcing deal may reduce the burden of management, in return, you will not have full control of the development process. That’s why doing follow-ups is an important task. But this activity cannot be effective without a good metric to evaluate the quality of management, debugging, cost, performance, and productivity.
Image: Segue Technologies
Some popular software metric sets you might already know are:
- Agile process metrics, this includes lead time, cycle time, team velocity, open/close rates, etc.
- Production analytics: Mean time between failures (MTBF), Application crash rate, Mean time to recover/repair (MTTR), etc.
- Security metrics: Endpoint incidents, MTTR (mean time to repair), etc.
Outsourcing team’s project leader/project manager can take advantage of these metrics to identify, prioritize, track and raise issues to leverage team productivity. At the same time, a business’s product owners can base on the report to measure the success or figure out why issues happen and how to fix them.
Measuring the progress with software metrics is not easy. Most of the time it will lack clarity since there are various definitions and ways to count or evaluate characteristics.
For instance, when one uses lines of code to measure the progress and its quality, it turns out we have 2 ways to count the amount of line of code:
The first one is to count each physical line that ends with a return. However, there might be dead code within.
The second way is to get around the shortfalls and each logical statement could be a line of code.
Therefore, for the sake of a great follow-up activity, here are 4 guidelines for appropriate use of software metrics:
- Link software metrics to goals
- Track trends over absolute numbers
- Use shorter tracking periods
- Change metrics when they stop driving change
3. Bad requirements
First thing first, bad requirements will cost you time and effort.
We all know that there’s no such thing as an ideal world and so are the requirements. But sometimes stakeholders from a business won’t understand the need for precise requirements and deliver low-quality ones. The issue will not be a storm to destroy it all at once, yet, it wastes many resources such as talents, time and money. Nevertheless, as we know how to raise their quality, requirements won’t lead to terrible outcomes that are:
- Missing requirements, this happens when functionality that is missing from the documentation.
- Conflicting requirements, when requirements expect the development team to do different tasks that can’t be done all at once.
- Incomplete requirements, these are requirements that lack all the necessary information.
- Ambiguous requirements: a statement that can be interpreted in various ways by different people is an example of this.
To deal with these bad practices, these are our solutions for both the business and the outsourcing company:
- Engaging developers and testers in the requirements definition process: since developers and testers are the ones who know their product the best, they can understand and analyze ambiguous requirements.
- Practice dual-track agile process to keep the requirements in check: This process helps check ambiguous requirements with respect to certain project assumptions before any requirements are made.
4. Unrealistic expectations
Every business’s biggest goal is to have the highest quality product and generate revenue from it. So obviously, they will surprise the software outsourcing company with wild expectations from time to time.
However, high expectations are not all that bad since once reasonable and practical expectations are formed, they will be a great push for the development team in terms of the code’s quality and team’s productivity.
But we need to set a bar between reasonable and effective expectations with those unrealistic ones. Instead of being good causes, toxic expectations can lead to burnout and generally unhappiness amongst developers. And do you know that unrealistic expectations come in various forms: crazy deadlines, unreasonable functions, impractical features, etc.
To solve the issue, let’s figure out how it happens first. There are 2 main reasons for shaping bad expectations which are:
- From the client side. To be honest, clients/businesses sometimes do not understand the situation or even their own product. As a result, they ask the development team to hand over weird and illogical functions or features. They ignore what’s possible with current technology, or they somehow assume that your software developers have suddenly morphed into a team of magicians.
- From project manager/project leaders. So you must read the joke that “a project manager is a person who thinks nine women can deliver a baby in one month”. If you are working under the management of a guy like him, welcome to hell. In this case, your PM or project leader cannot estimate the expectation well and always end up with overpromising. Most of the time, this type of project manager or project leader will be a person that has little to none knowledge of technology.
After analyzing the causes, here are 4 solutions suggested by Designveloper:
- All stakeholders, including developers, BAs, testers and other involving parties should get together to seek good agreements and commitments.
- The outsourcing company should educate their clients on the product and technologies.
- It’s essential to clear all assumptions and if you want to make this work, let’s focus on the communication first.
- Last but not least, hiring project managers or team leaders that have a technical background is important too.
Above are 4 common issues businesses and software outsourcing companies. We wish our analysis and recommendation will help you overcome any obstacles. And if you are looking for a software outsourcing company, let’s look at Designveloper’s portfolio, maybe we can help!
For more articles like this, make sure to visit our fan page, Twitter, and LinkedIn.