By the time we received the request from the client, there already was an existing solution with some functionality. However, it was created using outdated technologies, many of which are no longer supported by the developers. So, our team was tasked with developing a web app solution from scratch. The objectives of the project included:
- Get rid of the old unproductive way of retrieving specifications from spreadsheets;
- Speed up the dimensions and cost calculations;
- Discontinue the use of deprecated technologies;
- Ensure rapid and smooth scalability;
- Correctly visualize different shower solutions and specifications despite not having physical access to them;
- Provide customers with an engaging user experience;
- Integrate the client’s existing CRM into the new solution.
After reviewing what was needed, it was decided to split the project into two products:
- A classic configurator that allows customers to use various filters and suggests several existing solutions to choose from;
- A custom configurator that uses even more filters and either suggests one model that perfectly fits the requirements or calculates the cost of a custom solution.
From the very beginning, our team has been working on two configurator solutions at the same time, seamlessly switching between them to satisfy the needs of our client more efficiently. This is what we did to fulfill our duties:
- Created the flow to outline the customer journey;
- Created the project architecture to support the flow;
- Gradually added new elements to the architecture to make it meet the client’s business goals;
- Collected all the relevant data, including product specifications and prices, in one source;
- Provided the design for every element of the solution;
- Developed the front-end and back-end parts of the project;
- Used a combination of Git, Jenkins, and Laravel for migrations, ensuring the consistency and stability of the code in all three environments (development, staging, and production);
- Providing live support for the released parts of the project, alongside delivery of new work.
The choice of technologies for the back-end and front-end parts of the project was influenced by the end goals of the project, as well as the current state of the popular programming languages. Specifically, we chose Laravel as our PHP framework and Angular for the front end because both of these technologies make the most sense for enterprise software solutions and are also actively supported by their developers.
For this project, our team included:
- 3 QA Engineers
- 1 Project Manager
- 1 Solution Architect
- 2 Front-End Developers
- 1 Back-End Developer
- 2 UI/UX Designers
The classic configurator was completed first, whereas the custom configurator is a more complex solution and therefore required more time. The work on the custom configurator project was divided into three stages:
- Phase A: Preparing the solution to be used by the client’s sales managers.
- Phase B: Upgrading the solution for use by third-party dealers, which involves disabling certain features and introducing new price calculation functionality.
- Phase C: Releasing the version for the end customers with more opportunities to adjust the functionality — e.g. restrict access to certain areas of the app.
Throughout the whole development process, we also performed continuous software testing within the Agile methodology to ensure the consistency and quality of the solution at every step of the way. With the help of several testing types, including UI/UX, functional, performance, and compatibility testing, we verified the flawless state of each build. We also used smoke and regression testing after the development team introduced changes to the code. Moreover, we used data-driven testing to increase the efficiency of our QA efforts. Finally, we performed user acceptance testing to make sure the software successfully fulfilled its business requirements.
Because the client’s enterprise consists of several smaller entities involved in the development process, the project had a large number of stakeholders who often had differing opinions on what the solution should look and feel like. We overcame this challenge thanks to effective communication and being able to offer a solution that met the needs of all the parties involved.