Here is a case where I helped a Spanish consulting firm get a derailed software development project back on track, allowing them to confidently meet their commitments to their client. It’s an example where applying best practices and a pragmatic approach were key to success.
The Need
The client was a software consulting firm that provides services to major accounts. In this case, the project was for an IBEX 35 company, Spain’s main stock market index, which includes the 35 largest companies by market capitalization.
The project involved developing a mobile application with functionality available even offline. As the delivery date approached, it became clear that the technical complexity, coupled with the imminent departure of the app’s development lead, seriously jeopardized both the deadline and the quality of the final product. This implied negative consequences, both financial and reputational.
The consulting firm needed to resolve the technical roadblocks preventing progress, improve software quality, and define a strategy to regain client trust, renegotiate deadlines, and successfully conclude the project.
The Intervention
My role was to evaluate the project’s status, propose an action plan, and execute it to successfully complete the project in the shortest possible time.
The activities performed included:
- Initial Project Evaluation:
- Analysis of the development status and source code.
- Catalog of pending functionalities and existing errors.
- Identification of technical challenges faced by the previous lead.
- Knowledge transfer from the former lead and the rest of the team.
- Definition and consensus on the technical approach to address the main challenges.
- Joint development of an action plan, including a schedule of incremental deliveries and demonstrations.
- Execution of the plan, developing the necessary software.
The Result
The project was successfully completed for all parties involved. The client received a product that met specifications and the required quality. The contract concluded satisfactorily.
Key highlights:
- A business domain layer, which didn’t exist previously, was incorporated into the code. This allowed for decoupling user interaction flows from server communication, which in turn made it possible to:
- Overcome the main technical obstacle of the development.
- Implement a local persistence mechanism that enabled offline functionality, one of the key requirements.
- A surgical approach was adopted, limiting changes to the minimum necessary to avoid affecting existing functionalities not covered by automated tests.
- All new or modified logic was developed with corresponding unit tests, reducing technical debt. Test Driven Development (TDD) was utilized.
- Communication flow among all parties improved, which allowed for validating incremental versions, obtaining client feedback, and strengthening trust through periodic demonstrations of progress.
If you found this project interesting and need help overcoming blockers that slow down development, adopting best practices, or solving advanced technical challenges, contact me and let’s see how I can help you.