How to lay the foundation of a large system in three months
Customer
Hightech was a subcontractor. The contractor is a major integrator.
Task
To develop a large automated system.
Result
In a short time the main part of the project architecture has been created.
Task
Under the terms of the contract, we can not disclose all information about the project (NDA). The contractor involved us so that we could expand the development team of the automated system. We were given three months. Our team participated from the beginning of the development to the introduction of the project into trial operation.
Why Hightech?
The customer required to develop for Linux-servers and use free software. The contractor chose the .NET Core platform, but he lacked the expertise to develop for Linux. We previously carried out internal automation on Core, and our .NET Core library accelerates the development of software for business.
Problems
- 300,000 lines of code for 16,000 man-hours* The project consisted of several independent modules, we completely closed the two which were associated with the processing of 3 billion positions. Initially, the deadlines were estimated at nine months. The customer required to submit the project to trial operation for three. At the same time, development required a deep understanding of the customer's business processes.
Analysts from the contractor faced a lot of problems and waited for clarification. The development took place almost in the mode of prototyping.
Interaction
Full-time meetings with the contractor twice a week. Preparation of demo versions of the modules for the customer 2-3 times a week. From our side from three to seven people were involved in different stages of the project, from the contractor - up to 12 people. The working day of developers reached 12-16 hours.
There are guys in the HighTech team who are really responsive to all requirements. If the task was given to a specific developer, one could be sure that it would be completed on time with maximum effort.
Customer representativeBecause of these maximum efforts and creative approach to development, we sometimes forgot about the contractor's interaction protocols and did not fit into his established business processes. For example, we did not always update tasks in Jira, which was important for reporting. Nevertheless, every week we prepared demo versions of the modules, and we discussed difficult moments every day in person.
Solutions
Server part — ASP.NET Core MVC*
Front End and Layout — React JS*
Classifier Search — ElasticSearch*
Queue Server — RabbitMQ*
The entire server part is written in ASP.NET Core MVC, the frontend and layout are written in React. During the project, we trained the contractor’s staff to work with React so that developers could get to work faster. To speed up the development of typical components in the user interface, we used our own generator.
At the start of the project and the shortage of UI-development at React, this was a significant factor. In total, the generator allowed to reduce costs by 2-3 times and save 100-200 man-hours.
Customer representativePaging, filtering, sorting, changing the state of the object, creating projections in the database - all these operations take too much time.
Therefore, the project used open source HighTech, which automates the writing of a large number of forms.
Maxim ArshinovCo-founder of the High-Tech Group, CTO. Project team leaderDue to the fact that the developer does not write the standard functionality, but simply declares the intentions, we managed to save about 80-100 man-hours.
We changed the structure of data storage, warned of possible problems after the expansion of the database and reduced the possible costs of changing the interface thanks to its own generator.
There may be periodic load peaks in the system. For the sequence of operations RabbitMQ was applied. After waiting and processing the application, the user receives a notification that the data has been successfully downloaded.
The desire to idealize development and lay architectural moments at the prototyping stage is more an advantage than a disadvantage, not always profitable though. In this regard, it was possible to build work more flexibly. Another point is that complex code and solutions require a certain threshold for entering a project. However, with the help of our own solutions we managed to speed up the development.
Result
The contractor, with the help of Hightech, laid the primary architecture of the project. We drew up technical documentation, trained the developers of the contractor, created the initial set of components. Over time, employees were gradually taken away from the project and transferred to support the contractor. The project was put into trial operation three months after the start of development, and into industrial operation six months later.
The project has become a positive experience for both teams. The result speaks for itself. The project was commissioned on the deadlines that initially seemed unreal to us
Other cases

