The development of software or software-based products is challenging, and the management in organisations has to optimise their operations from many different perspectives so that development goes forward efficiently without friction. It is said that “all companies are software companies”, so these problems are encountered by a surprisingly large number of companies in different industries.
Our core competence covers customer-driven solutions and product development. Over the years, we have carried out hundreds of development projects, and we are continuously involved in product development projects for dozens of organisations, leveraging our solid experience in efficient development work.
In the context of these projects, we have found that almost all problems in product development are due to inadequate or incorrect management. The organisation of product development is not based on correct values and its management does not prioritise the most important aspects. Often, commercial and strategic aspects are also buried under technical challenges or under a huge jungle of features.
How should product development be managed?
The key themes worth paying attention to in software development management are the productivity of product development, technical debt and quality – but above all, the value that the product and new features bring to customers. In addition, constant changes in the operating environment pose challenges and delays to self-directed development.
In many sectors, legislation also sets ever higher demands for development. Furthermore, it is rare these days to be developing your own service in a vacuum. Instead, effective integrations with other products and systems are necessary.
In this blog, we will highlight two key principles to help you take software development to the next level. And that is not all, as we will soon be publishing three more useful tips.
Managing product development through customer value
As we all know, there are three important elements in product development: the customer, the solution and the joint project to implement the solution. Whether we are talking about a new solution or about improving an existing solution, it is essential to genuinely understand how the solution creates value for the customer.
This is all the more important in a situation where the solution is still at a hypothetical level. In such a case, the customer value can be found by means of service design, using user-centred methods. This helps to make it crystal clear what the expected benefits of the solution being developed are, and the end product is more likely to meet genuine customer needs.
Traditionally, people think that value is created when you find a way to save costs or to increase a company's turnover, but value can actually be something else entirely. In the public sector, for example, customer value can mean making it easier for citizens to take care of their business by means of e-services. Here, value is created by making life easier for the end user.
Creating an MVP (minimum viable product) enables the customer to test the benefits of the product at an early stage and to ensure that the value is realized. This way, time and money will not be wasted on something that in the end doesn’t work quite as intended and is considered useless by the end-users.
When product development is managed through customer value, it is also more likely to succeed. For example, Amazon's mission is to be the most customer-centric company in the world, and the company's results argue that investing in customers has really paid off.
Optimize product development flow
However, identifying customer value and figuring out the solution are not enough; the recipe for a successful development project also needs a mechanism to build the solution. Well-managed product development flows from identifying customer needs to bringing the product into production without much friction.
What does the work actually flow through? At its simplest, the stages of the development work are the well-known to-do, in progress and done stages, but as the solutions expand, the development stages multiply like mosquitoes in the Finnish summer. In such a situation, it is important to identify the bottlenecks that slow down the flow. Usually they are related to, for example:
- Unfinished work: teams are often working on too many things at the same time
- Waiting: waiting for permission, decision, specifications, etc.
- Quality deviations in outputs after different steps of the work
- Unclear responsibilities and practices
Agile methods and lean thinking optimize the flow, reduce the amount of unfinished work and eliminate waiting. It is also essential to identify dependencies between different operators and teams, so that work does not halt due to overlapping projects or because your partner is suddenly on a holiday that you didn’t know about. The optimization of the flow requires both management of people and technological know-how.
Optimizing the progress of the work greatly improves the product development department’s ability to create releases. Batch sizes decrease and the production environment can be updated even several times a day without major drama.
When the features can be released with a fast cycle, it is possible to immediately collect valuable feedback from customers or to measure how the product is used. This will allow changes to be made quickly if critical needs are identified.
These were our first two tips on how to make software development more efficient and productive. You can find the rest here on our next blog.