Time & Material model as a guarantee of flexibility
The Agile approach and Time & Material cooperation model were chosen for the EHR development and migration project. This approach allowed us to meet the client's key requests:
- immediate start due to a quick understanding of the project requirements, allowing seamless integration with the in-house development team. Our .NET team was fully engaged by the second day;
- employment of experts in both .NET Framework and .NET Core ensuring a quick and efficient understanding of the project and deliverables;
- frequent iterative delivery, with the flexibility to change or add new client requirements during the process;
- rapid scalability of the team to address both planned and unplanned needs throughout the project.
Daily update calls were arranged between Belitsoft's developers and the in-house team, led by a Project Manager. This transparent communication and teamwork allowed the teams to work seamlessly together.
The teams used Azure DevOps and Git as tools for project management and coordinated development efforts.
The cooperation process timeline
Step 1. Assembling a NET development team
Upon signing an NDA and a Service Agreement, we proposed two highly experienced .NET developers to the client.
On the second day of communication, after validating the requirements, we introduced three potential candidates to the business stakeholders.
The client evaluated the developers through personal interviews, promptly selecting two to form the core of their future expanding team. This process was highly efficient and swift for the client.
Step 2. Migrating backend to .NET Core
2.1. Preparation for migration
The migration process began with a compatibility check of significant dependencies in .NET Framework against .NET Core requirements.
This step prevented post-migration issues such as inability to access certain files and libraries, and incompatibility with third-party apps, libraries, and tools.
Consequently, Belitsoft's team compiled a list of technologies, libraries, and files that were unsupported by .NET Core and needed an upgrade.
2.2. The migration process
Once incompatible dependencies were identified, the first task was to align them with .NET Core requirements.
Next, migration of platform-specific (native) and third-party libraries took place. Additionally, the team maintained consistent API support to prevent errors or missing APIs post-migration.
As a result, the .NET development team successfully migrated the EHR software's backend to .NET Core.
2.3. Post-migration improvements
To fully leverage .NET Core's performance capabilities, the decision was made to refactor the existing code. This involved Belitsoft’s team performing:
- query profiling and database optimization
- streamlining and reducing the usage of stored procedures in DB
- utilizing more efficient APIs for .NET Core to enhance performance
Step 3. Continued development, including migration to Angular and software customization
During the .NET migration process, the company assessed the risks of maintaining the software front-end on the soon-to-be obsolete AngularJS framework, whose support ended in December 2021.
Leveraging Belitsoft's expertise, the stakeholders opted to migrate AngularJS to Angular. This transition was executed seamlessly via incremental updates. Here is the AngularJS to Angular migration pipeline that our team applied:
- We started by seamlessly integrating both AngularJS and Angular into the project, ensuring they could coexist without any hitches.
- Next, we set up a hybrid framework. This allowed components from both versions to work side by side, making the transition smoother.
- We then methodically moved each AngularJS component over to Angular, taking care to ensure everything remained functional and intact.
- Our team upgraded shared services, moving them from AngularJS to Angular, again prioritizing accuracy and smooth functionality.
- We transitioned to Angular's advanced router, enhancing the navigation capabilities of the software.
- Before finalizing, we thoroughly tested every aspect to guarantee that everything was working as it should.
- To wrap it all up, we removed the old AngularJS dependencies, leaving the software fully integrated with the modern Angular framework.
Throughout each step, our goal was to ensure minimal disruptions and optimal performance.
In addition to these tasks, our developers assisted the Client in customizing their core software for a significant contractor, incorporating new features and APIs.
Development team
We initiated the project with two skilled developers who delivered high-quality work, living up to the standards of the healthcare software development company.
As the client's needs evolved, we dynamically expanded the team, which eventually grew to include:
4 x back-end developers
4 x front-end developers, and
3 x database developers, who were swiftly brought on board for a short-term engagement.
The client maintains full project management control, working directly with our developers. With proficiency in spoken and written English, our team ensures clear and effective communication, consistently delivering within time and budget constraints.
Tech stack
- Language: C#, TypeScript
- Frameworks: .NET Core, Angular
- Technology: ASP.NET, EntityFramework
- Database: MS SQL
- Development tools: Visual Studio, Visual Studio Code, SSMS
Belitsoft has been the driving force behind several of our software development projects within the last few years. This company demonstrates high professionalism in their work approach. They have continuously proved to be ready to go the extra mile. We are very happy with Belitsoft, and in a position to strongly recommend them for software development and support as a most reliable and fully transparent partner focused on long term business relationships.
Global Head of Commercial Development L&D at Technicolor