Sibedge Project Management Corporate System
For two years Sibedge engineers have been working on the internal product "Project Management Corporate System" (PMCS). It was initially intended as a way to improve project management efficiency, as well as simplify work of project managers, project portfolio managers and team leads.
The company's staff was growing rapidly, so it became obvious that we needed to change our approach to the platform. In 2020, a new list of requirements for the future system came from the business, which included:
One of the development priorities was to reduce the delivery time of the product's new versions. We have built release processes on the Azure DevOps platform. The flexibility, scalability and fault tolerance of the system were provided with the Kubernetes orchestrator. The team consisted of .NET, front-end and Python developers, DevOps engineers, QA engineers and a PM.
The monolithic PMCS was divided into the following microservices:
API Gateway – an engine through which basic data is exchanged between modules and services are authenticated.
Project Service — a service that provides project mapping, the work of Azure DevOps and customized elements that work on this platform.
ADO Connect – intended to connect services with Azure DevOps
ADO Configurator – designed to configure the work of Azure DevOps.
TFS Extension – responsible for interacting with TFS services.
Import Time – a tool for importing labor costs from external time tracking systems.
Import Repo – a module for importing repositories with project artifacts.
Email Notification – a service that notifies project managers that they need to coordinate labor costs, and engineers that they need to write off labor costs.
Employee labor data is stored in a PostgreSQL database with support for the V8 procedural language. Each service is isolated from the others, so in case one fails, the others will continue to work. This is how we achieved fault tolerance within the new architecture. This approach also allows seamless integration of new modules into the system without interrupting its operation.
In the future, we plan to involve the entire development team in the DevOps culture, so that each participant is involved in the process and moves towards release with the rest of the team. Sibedge will offer its accumulated internal experience in the form of services to its partners.
These are just some of the features and advantages of the system in terms of product, marketing and business metrics.
We also continue to invest resources in Research and Development in terms of new technologies, approaches to the design of complex systems, the use of frameworks, programming languages and the spread of DevOps culture within the company. It is possible that over time our internal product may develop into a commercial one, and then we will offer it to our partners and customers.
PMCS Creation Prerequisites
Development began in 2015, when the number of Sibedge employees did not exceed 50 people. Initially, we chose a monolithic architecture that lacked flexibility in terms of development, fault tolerance, scalability and support.The company's staff was growing rapidly, so it became obvious that we needed to change our approach to the platform. In 2020, a new list of requirements for the future system came from the business, which included:
- High availability and fault tolerance of the system.
- Tools to import repositories and synchronize technical artifacts.
- System flexible scaling possibility.
- Automatic synchronization with external customers trackers, even those that are in a closed corporate circuit.
- Integration with Power BI, Zoho and other systems.
- High-quality documentation and expertise sharing within the development team.
PMCS Development
Once the final vision of the future product was outlined, taking into account the needs of the business and the mistakes of the past, we started developing PMCS 2.0. The main change was that we rejected monolithic architecture. We decomposed the tasks and distributed them across several microservices isolated from each other. Python (FastAPI framework) and .NET were chosen as the core technologies.One of the development priorities was to reduce the delivery time of the product's new versions. We have built release processes on the Azure DevOps platform. The flexibility, scalability and fault tolerance of the system were provided with the Kubernetes orchestrator. The team consisted of .NET, front-end and Python developers, DevOps engineers, QA engineers and a PM.
The monolithic PMCS was divided into the following microservices:
API Gateway – an engine through which basic data is exchanged between modules and services are authenticated.
Project Service — a service that provides project mapping, the work of Azure DevOps and customized elements that work on this platform.
ADO Connect – intended to connect services with Azure DevOps
ADO Configurator – designed to configure the work of Azure DevOps.
TFS Extension – responsible for interacting with TFS services.
Import Time – a tool for importing labor costs from external time tracking systems.
Import Repo – a module for importing repositories with project artifacts.
Email Notification – a service that notifies project managers that they need to coordinate labor costs, and engineers that they need to write off labor costs.
Employee labor data is stored in a PostgreSQL database with support for the V8 procedural language. Each service is isolated from the others, so in case one fails, the others will continue to work. This is how we achieved fault tolerance within the new architecture. This approach also allows seamless integration of new modules into the system without interrupting its operation.
Changes in Release Management
The business needed a well-established and controlled process of new features and capabilities delivery. In order to reduce the Time to Market indicator, speed up hypothesis testing and increase supply stability, we have revised the approach to release management. Here are just some of the innovations that we have implemented during the development of PMCS:- Rethinking the management of tasks in the tracker and in the code base (GitFlow).
- Definition of Ready and Definition of Done for the supplied functions.
- Calendar of release ceremonies.
- Versioning of releases.
- A formalized release plan for each service within the platform.
- Transfer of CI/CD to new rails (IaC, MaC, GitOps).
In the future, we plan to involve the entire development team in the DevOps culture, so that each participant is involved in the process and moves towards release with the rest of the team. Sibedge will offer its accumulated internal experience in the form of services to its partners.
PMCS Release
The first operating version of the PMCS was put into operation in September 2022. It allows one to store project artifacts, integrate with external and internal services, and includes tools with which project managers can achieve their goals.These are just some of the features and advantages of the system in terms of product, marketing and business metrics.
Business metrics
- The possibility of making and coordinating labor costs.
- Project management (creation, modification of projects). When creating a new project card, the manager is automatically linked to it and gets the necessary access rights.
- Employees receive notifications about the need to write off and coordinate labor costs.
- Integration with Power BI and reporting on data from Azure DevOps.
- Import and storage of development artifacts from external projects within the company, which ensures the protection of intellectual property.
Product metrics
- Reporting on actual labor costs.
- Estimation of approximate deadlines that developers need to solve problems.
- Introduction of labor costs by developers into an external system without the need for additional write-off of hours in an internal corporate time tracker.
- Seamless Authorization — Logging into Azure DevOps gives one full access to the platform's capabilities.
- Ensuring SLA and availability of system services, thanks to the fault tolerance of the solution architecture.
Marketing metrics
- Integration with Zoho. We build a funnel of transactions and send them to PMCS.
- Each employee sees what projects they participate in and what tasks they take.
The future of PMCS
We continue working on PMCS. We collect feedback from developers and project managers to make the system even more convenient and efficient. In the near future, we plan to create a unified monitoring and alerting system for the platform's operability. Work is also underway on a tool for analyzing microservices logs.We also continue to invest resources in Research and Development in terms of new technologies, approaches to the design of complex systems, the use of frameworks, programming languages and the spread of DevOps culture within the company. It is possible that over time our internal product may develop into a commercial one, and then we will offer it to our partners and customers.