5 Ways to Increase Cost-efficiency for Big Clients in IT
Today we invite Roman Mytsa, who is Project Manager at one of our largest partner organisations Intellias. Roman has provided us with a case study to highlight 6 ways to increase the cost-efficiency of delivery as the development team scales.
Overview of the Client and Project
All big projects start with first taking small steps. This was definitely the case for one of our biggest accounts (from the automotive industry) which grew from a small engineering team working on a navigation and mapping project, all the way to a team of 300 specialists.
The client of this project is a leading Location Based services company from Germany that has the ambitious goal of shaping the future of autonomous driving internationally. Our cooperation started in 2015 and has evolved a lot since then.
Cost Optimisation on the Software Development Project
Optimisation initiatives we introduced onto the project resulted in a cost saving of nearly 40% to the client. It is important to note that most of these IT cost savings came from freeing up the client’s in-house capacity and optimising engineering processes, however, the lower cost of the software engineers in Ukraine was definitely still a contributing factor.
1. Introduction of Requirements Manager to assist with a technical delivery and alignment of Stakeholders
In the beginning, the client kept release management on their side which resulted in undefined responsibility for some of the projects features and a growing number of stakeholders to deal with. As an alternative, we proposed for the client to add a Requirements Manager to our team to help manage this challenge from both side.
As soon as we introduced the Requirements Management, the client was able to focus only on business requirements, while we started delivering of all essential features and technology needed to meet these requirements.
Outcome: When we took over responsibility of the technical requirements it significantly cut down the time to deliver new features from months to weeks or even days. The client entrusted us to develop all HD maps features and deploy them ourselves.
YouTeam Expert Tip: It is often the case that Non-Technical Clients/Product Owners forget about the underlying Tech related activities, needed to be taken in parallel to the activities that directly relate to the Business Objectives of the Product Owner.
It is often a useful exercise to analyse which skill sets are required on the project and who is the best to deliver them (client-side or vendor-side).
A lesson for software vendors is to understand what is deficient on the client side and offer solutions to drive overall efficiency.
A lesson for software vendors is to understand what is deficient on the client side and offer solutions to drive overall efficiency.Click to tweet
2. Allow the team to see the whole picture of what the client wants to achieve
Another benefit to having a Requirements Manager in place is that our teams started to spend more time on Product Development, which in turn allowed them to see the entire picture completed with all processes. In fact, we brought product development onto our side and took responsibility for all related decisions.
The teams became mature, which increased motivation and productivity. Teams observed the work of other teams and understood where they needed to move faster, which parts they could automate and optimise. It was very motivating for the teams because their input could immediately be visible in the results being achieved and software development cost spent on the project.
YouTeam Tip: Product Ownership can become a shared responsibility, particularly if the client doesn’t have a strong enough Product Development (Product Management) background. Having Domain Expertise is important but few projects can be run without Product Management competency.
3. Diagnose chronic problems and surface them with the client as soon as they are identified
We took the initiative to introduce “Spike test” sessions which devoted 16 hours of research to find solutions to problematic areas identified during the course of development.
Irrespective of whether we either found an immediate fix or actually there was no immediate fix to a given problem, we sent the research results to the client to close a particular inquiry or decide upon a necessary course of action.
As a result, we were able to kill the chronic issues and prolonged tasks, which were slowing down the process and blocking the project’s progress.
Still hesitant what software engineer to hire for your project?
Get a free consultation with a SEnior Team Advisor.
4. If tasks can be split into independent sub-tasks, this can be a way of reducing the complexity of problem resolution
When the amount of data became too large to fit into one map, we split it into smaller pieces to work on features for one part without requiring others. This allowed us to significantly decrease the time required for data processing and deployment of new features.
5. Pre-test code in a secure environment as soon as possible, even if it is only partially completed
Another initiative we introduced was to create a testing environment for uploading partial new builds, to test for problems well before the release was due. When all the issues were successfully solved within the testing environment, we uploaded a final “clean” build straight to the client.
6. Systematise your development operations so the client can focus on building their business and marketing
The result of establishing a well-organised system of optimisation practices, was not only to save client’s cost of outsourcing software development and actual time, it was that their internal teams were finally able to focus on the crucial business and marketing tasks.
YouTeam Tip: Executing the right marketing strategy is often the most critical component of taking new products to market. In many ways, Marketing and market perception of the product is more important than the product itself.
Outcomes for our automotive clients
At the end of the day, these optimisations of software development process brought the client closer to their initial goal of shaping the future of autonomous driving by pioneering their location data platform. This case study is also a clear example of how Client Success equates to success of their Software Development partners.
Tristan: Roman, we thank you for contributing this knowledge and experience to the YouTeam community. We hope this would be helpful for distributed development teams who struggle with project estimation and/or want to optimise cost of outsourced software development for their clients.
About Roman Mytsa
Project Manager, Intellias. Roman has been working in IT industry for over ten years: 7 years in Project Management and three years as a software developer (C++/.Net). He has a combination of management and software development processes expertise that includes a background as a Developer, BA, Project Manager and Team Lead.
Managing 25+ team members, Roman always prefers result over the process and is ready to change team structure and project processes in a timely manner, based on project metrics insight. On the other hand, Roman has a good understanding of processes importance, so he tries to establish them and provide their improvements on the periodical basis.