For the last decade, our client has worked in the digitisation space to help organisations transition from manual, paper-based forms and processes to automated, smart online systems. This automation results in long-term cost savings for their end client.
They’ve been successful with their offerings and have contracts with several key government departments. When they contacted us to help scale their production team, we were happy to do so.
Scaling the Production Team
Although he had a lead in-house engineer, he was already completely busy dealing with day-to-day jobs, and the product enhancement was being neglected.
The client had a team in Ukraine and was working with a developer there at the time. When he was ready to scale, he started looking for additional developers.
They needed an PHP development company to provide enough flexibility to add or remove members from the remote team.
The client now needed a core team of engineers to supplement the lead in-house engineer, while ensuring that the entire organization was using the same processes, coding structure and engineering practices.
The client digitised offline forms, processes, and workflow into efficient and user-friendly online systems. These new systems include automatic notifications, predetermined automated workflow, and real time reporting. All of this can be customised to meet specific business requirements.
- forms (the data collection component)
- custom workflow
- notifications (through email and SMS)
Each business would come to the client with their own customized needs and processes. What that meant for us is that we had to quickly learn adapt to the needs of the clients and development modules. We also had to allocate suitable developers for this job on a very short notice.
The client had a very high-end implementation of Laravel and was using several Laravel packages, including services like REDIS, Pusher, and Elasticsearch, so we had to acquire knowledge of these products along with the coding style of the existing product. It was difficult to assign an engineer who was versatile in everything, so we learned on the job, and quickly.
We had no live data access and live site access. Because we had no live data, it was a challenge to us to understand the project flow.
This was an existing product and the client has already spent several years in development. Getting up to the speed for this product was most challenging as we had to understand what functionality each module offers and how the underlying code is working.
Some government forms had between 200- 500 fields, and some of these fields were connected or tied as a multi-step form. It was up to us to understand the flow and design the database to accommodate this. We worked in close communication with the client on this part to make sure everything was done precisely.
Allocation of Projects
When a new system goes live for a client, they see a huge surge in support requests and usually need lots of changes. When pitching for a lot of additional work, they can’t forecast the manpower requirements very accurately. It’s sometimes necessary for them to scale instantly, so we have to train and onboard people on their development process on a very short notice.
After working on a module, we’d push all code to GIT. The client’s lead engineer would then review the code and either merge it with the master branch or reject it and ask the developer to fix any issues. The code is run on a pre-production system where they test the functionality. It’s pushed to live only after the system is working as expected. Over time, our engineers learned more about the client’s expectations and rejections became far and fewer.
- As always, we provided a comfortable setup for the client and all its members to work with our developers. The project manager developers are fluent comfortable in English and can communicate through SLACK conference, phone calls and emails. There were zero miscommunications on this project.
- We were mostly working with the client’s project managers and allocating projects on a first-in, first-out basis, but also keeping our daily task allocation process very flexible. This flexibility allowed us to accommodate urgent requests.
- We maintain detailed monthly records of each project, so we can look up any old projects for reference whenever needed.
Training and Onboarding
- We also took on the responsibility of training new members, saving the client time and money. Whenever we add new members to the team, we take the responsibility to train them internally and make them ready to work successfully on the client’s projects within few working days.