Originally written by Piotr Nadarkiewicz
You’ve got an idea for a product and you’ve decided to hire a software house to help with the development process.
You’re most likely aware that working with an outsourced development team can come with plenty of advantages, including access to expertise, lower costs, and more time to focus on the day-to-day running of your business.
To make the most of the collaboration, however, you should be mindful of the potential challenges that can come up even in the most successful partnerships and be prepared to counteract them. And while you might be able to pinpoint the issues you are experiencing, the challenges that developers are struggling with are not always very obvious.
If you look closely enough, you will discover that all these issues are interdependent. To tackle your problems effectively, you need to target their root causes.
What might seem like a complex and insurmountable challenge can be easily remedied with the help of a Scrum Master and a Product Owner.
In this article, we will guide you through the process of identifying some of the problems you might be dealing with as a software outsourcing client and how these two roles can help you find relevant solutions.
What are some of the obstacles you might encounter as a client?
- Features are too expensive
- Delivery takes too long
- Features don’t satisfy the users’ expectations
- User experience is too weak
- Business objectives are not met
- The overall quality is not satisfactory
- Your time investment into the project is too high
As you can see from the chart above, the obstacles you might come across are interconnected. Although this might not be obvious from the start, you will notice certain dependencies if you look closely.
For instance, if features don’t meet the users’ expectations, it often means that user experience is not adequate or that the solutions don’t meet a business need. And if features end up costing you more than expected, it might be because delivery is taking too long.
So far, we’ve looked at the potential obstacles from your perspective as a client. Another point of view to consider when trying to identify and overcome any challenges is the one of the development team.
Programmers are often an easy prey in blame games that happen when things don’t go as expected. However, they may also struggle with an array of problems that might not be immediately clear. Yet, these are often the root cause of your problems, and taking a closer look at them will provide you with the necessary information to start tackling them.
Here are some examples:
- Priorities are not well defined
- The environment and the provided tools don’t meet quality standards
- The team lacks skills or its capacity is insufficient
- The team is demotivated
- There are no clear acceptance criteria or business objectives
- The scope changes unexpectedly
For instance, tools that are not up to the expected standards might hinder the team’s capacity.
Moreover, if the only people you hired are developers but at some point it turns out that automated tests are necessary, the team might have a hard time reaching their peak performance.
Frequent context switching due to a shortfall of tooling or time (caused, for example, by the team being involved in multiple projects at once, or even overallocation), can lead to demotivation. And when this sentiment sets in, it not only triggers other problems, but can also put a dent in team morale.
As you zero in on the problems faced by the development team, you might gradually see the dependencies between them and the challenges you encounter.
For example, the team needs clear objectives with regard to deadlines, quality, scope, benefits, and risk appetite so that it’s able to plan its workload in accordance with software development state-of-the-art frameworks.
Any sudden change of direction typically leads to more tasks being added to the sprint backlog, and can prove demotivating for the developers.
Altering the scope mid-sprint also usually means that stories are not appropriately defined. As a result, the business objectives the team is working to achieve are not fully met. Tasks can’t be completed within the preset timelines, and they’re either delivered half-done (often when it comes to code quality or user experience) or cause a delay.
When the team is not familiar with the provided tools, delivery might take too long. The cost will then increase, too. Usually, developers are experts in certain development kits, so when they don’t have access to them, they end up having to retool, which can be time-consuming.
Importantly, striving to prevent developers from experiencing problems will help ensure that the cooperation runs smoothly on both sides. However, if difficulties come up while the development process is already in full swing, despair not. There are fixes you can implement to stop them from escalating into a full-blown crisis. By doing this, you will also be tackling the root cause of the issues occuring on your side.
To help you find solutions, it will be crucial to have someone on board who understands the context and who can step in immediately when difficulties occur.
When it comes to remedying demotivation, problems with tools, deficient skillsets, or limited capacities, someone focused on the development process will be able to help. They should be willing to spend some time organizing specific tools and meetings, and be in contact with the development team to spot any obstacles early on. This person is a Scrum Master.
Some problems, however, are related to the product itself, not the development process. They could include priorities not being set or poorly defined criteria. To handle them, a Product Owner can liaise with someone in charge of the product on the client’s side. This can help both teams develop all the required artifacts, and stay up to date to monitor and coordinate the project.
Based on the examples in the chart above, here’s how a Scrum Master can help you find solutions:
- If your development team finds the environment or the tools provided unsuitable, a Scrum Master can facilitate workshops focusing on the architecture and hazards.
- Once demotivation has crept in, an effective remedy can be found in team coaching.
- And if the team lacks the necessary skills or capacity, a Scrum Master will run a retrospective to discuss what works well and what needs a bit more improvement.
This is how a Product Owner can address the following challenges:
- If the development team struggles with priorities not being adequately defined, a Product Owner can run product strategy workshops to discuss the direction and the fundamental aspects of the product.
- A futurespective can be held by a Product Owner if the scope has changed unexpectedly. It consists of stating the objectives and finding ways to achieve them. The meeting can be helpful not only for the development team but also for the client as it can provide them with the opportunity to restate business objectives.
- In case the acceptance criteria or the business objectives are unclear, a Product Owner can help by holding product discovery and process setting workshops. They will usually also have some domain knowledge or business acumen that can help inform the discussion during these workshops.
If the roles of Product Owner and Scrum Master are filled at the beginning of the cooperation, they will help both sides prevent the problems mentioned above from happening in the first place. However, adding them to your team can be beneficial at any stage of the product development.
Permanently placing product and process facilitators in the team can help you find a long-term solution to the challenges you might be facing. It’s reasonable to assume that if you’re having problems solely with the product side, you might consider hiring just a Product Owner.
Likewise, you might also want to hire only a Scrum Master if you face issues related to the process. However, incorporating both roles at once might allow you to create synergy and help them optimize each other.
The Scrum Master is more concerned with optimizing the team’s sustainable pace of delivery by managing process risks and facilitating team activities and meetings.
The Product Owner, on the other hand, works to maximize delivered value within specific timeframes by managing product risks, refining backlog, and prioritizing deliverables.
As a result, there is a certain kind of competition between the two approaches, and it’s not advisable to have one person carry out both roles. By engaging two people, you will ensure that the cooperation between them produces optimal results. If your project doesn’t have a far-reaching scope, having two part-time roles can be an option, too.
Oftentimes, software houses are able to provide you with both a Product Owner and a Scrum Master. However, you don’t necessarily need to hire additional people from outside your organization to perform these roles.
If you have adequately trained professionals within your business who can take charge of the tasks traditionally carried out by a Product Owner or a Scrum Master, feel free to assign them to the project.
You can even decide to assume either role yourself. Be warned, however, that while this idea may seem tempting, you might find it difficult to find time for the additional workload.
Whichever option you eventually go for is up to you, but make sure you do have access to two professionals who can act as a Scrum Master and a Product Owner. Otherwise, you might simply be putting your project at risk.
When it comes to software development outsourcing, obstacles can come up in even the most successful partnerships.
While the root cause of the problems you might experience is not always obvious, it’s crucial that you get to the bottom of the issues before they escalate.
What comes in handy when you find yourself faced with a challenge is having people such as a Scrum Master and a Product Owner to help you work them out.
If you’d like to find out more about the benefits of having these roles in your team, as well as the Scrum process in general, you might find these articles useful: