At Qualabs we do software development projects. Many of our clients are consolidated companies, which have had products in operation for many years, sometimes more than 15. It is not that we do not work with startups or in new product development. We actually have an innovation lab for that. But those are not the kind of projects I’ll be talking about in this post.
SIMPLIFIED PROJECT WORKFLOW
In a simplified way, when a new project comes, we follow these steps:
- A client asks us to add certain functionalities to their product
- We put together a project management plan
- The client validates the plan and the budget
- We start working on the project
When we start working on the project, an ad-hoc team is formed to carry out the project. That team should have experience in the software technologies involved (stack) and also knowledge about the video technologies involved.
What happens to us when the client is a consolidated company and asks us to work on projects of this nature? What happens when the project we are working on is for a mature, large, complex product?
- The technological stack is usually wide and specific for that product. There are many technologies that impact backend, frontend and infrastructure.
- As usually happens with large and complex projects, it takes time for the team to get to know it in depth.
- That time usually is more than 3 months. In some cases, more than 6.
- We take care of the complete development cycle: design, development, testing and deploy.
- As they are closed projects, it is necessary to carry out a thorough discussion during the planning process. Any mistake will have a huge impact later.
BUT, DOES THAT WORK?
With this type of project we started to find some recurring problems:
- It is very expensive and time consuming to start the project. It takes time to become an expert and understand the details.
- Planning so much at the beginning means no “agile” and requires making a lot of decisions in that phase. This generates rigidity in the process, not allowing to iterate or transform each iteration into a scope discussion.
This put us in a place that we did not like: we were not delivering the highest value to the customer we could!
So for long-term product development projects we decided to switch to dedicated teams. How do they work?
- Developers and engineers work exclusively for that team. They complement each other in knowledge and experience.
- We have a team with fixed resources, which absorb the working pipeline.
- The client has a product manager and product owner, who are in charge of prioritizing work according to the needs of the business.
- We assign a team leader. This way, the client does not have to worry about people management. Motivation, training and administration is our responsibility. Client only focuses on the deliverables.
- We have videoconference daily meetings, which give transparency to the process. Progress and blockers are discussed and covered before they impact on deadlines.
- By having a dedicated team for the client, we can adapt to use all of its systems: repositories, communication, development, documentation and project management tools.
The results have been fantastic. Learning curve and less rework have reduced development hours, and therefore costs, by more than 20%. Delivery time of a functionality, measured as the time between a client requests it and we deliver, has been improved up to 40%.
As an engineer, I know this might be difficult to believe without a demonstration. We are already planning a future post with Nicolas to comment on how we changed our agile process and show some examples as proof.
All said, the best result has been customer satisfaction, since we are finally delivering more value in less time.