Systems Engineering
Performant app for designing engineering systems, built with Vue.js, RoR, and Neo4J
:quality(95))
The company and product
Designing engineering systems is a demanding task in itself. Orchestrating a multitude of parts to create synergy is never easy, and there are many standards and guidelines (ISO and IEC) to be followed if a system is to be effective. Systems Engineering helps companies to achieve both goals.
Additionally, the process of system engineering entails communication challenges. Such complex systems require harmonious cooperation of disciplines and siloes, as well as engineers reporting results to various stakeholders.
Systems Engineering’s solution is twofold. Firstly, they pool together all the necessary tools that are needed to successfully design a complex system, and they improve them in terms of their cooperability and connectedness. That’s the offline part of their work. There’s also an online part: a web service that supports the use of these tools.
Client’s feedback
:quality(90))
Monterail understands business needs
This long-term relationship simply works because we can count on the developers to understand the business needs and translate them into technical requirements. We’ve achieved even more than expected — we moved from being a startup-like company to someone that provides mature software.
Scope and Highlights
ITERATIVE SOLUTION REFINEMENT
WEB DEVELOPMENT
VUE.JS, RUBY ON RAILS AND NEO4J
:quality(95))
The Challenge
When Systems Engineering was just starting, they used paper, then Excel, to help other companies design engineering systems.
Both tools had similar drawbacks: they were too time-consuming and not scalable enough.
So the client decided to create an application Proof of Concept (PoC) by outsourcing the process to a Danish software agency. They collected business requirements, translated them into technical ones, and sent them over to a subcontractor in Thailand.
The resulting application prototype, with Ruby on the backend, fulfilled the business requirements but turned out to be not scalable enough. It was possible to design an engineering system with it but it couldn’t handle the magnitude required by the clients (tens of thousands of elements possible while billions were needed).
Key challenges
To create an improved version of the application, Systems Engineering chose to partner with us.
The goal we started with was: to rewrite the existing prototype for efficiency and scalability. To handle such immense numbers of elements, the new app was supposed to use a more efficient Neo4J graph database, and Vue.js on the frontend.
:quality(95))
The Process
Our cooperation can be divided into two phases: recreating the PoC to scale, and extending the final application with features.
To recreate the PoC, we started from scratch by creating an architecture for the Neo4J backend database, and building the frontend part. There were a couple of things we focused on to ensure successfully operating on billions of elements.
For the Neo4J backend database, we built highly-scalable, standardized elements. For the frontend, we had two views: a list view, and a 2D grid view.
For the first, we rendered only the elements that were needed on the screen at any moment. For the latter, we chose to render the elements imperatively: the Vue component rendered only an empty element of appropriate size, and we filled the details in.
The PoC recreation lasted 2 months. Then we proceeded with building features.
The application is used to model businesses' reference model (the equivalent of a digital twin), with various aspects through two application modules: one that deals with designing systems, and another that allows mapping interconnection between systems. We also created a feature that enables the ability to build and compare different versions of interconnecting mappings. This engine effectively branches and matches discrepancies depending on the user's wish to reject or match specific mappings, translating a complex software issue into an easy and intuitive user experience.
Translating such a complex business context into technical requirements and app features requires a lot of understanding and discipline.
This is how we made it work:
Regular discussion about the priorities and plan between Systems Engineering stakeholders and developers
Translated the requirements into technical solutions and implemented an iterative approach to drafting solutions
Set up a self-organizing team of developers who proactively seek to understand the business context
Worked on modeling the Systems Engineering business to build software that answers the needs
Recreated the Proof of Concept version to a highly scalable solution
Team’s voice
:quality(90))
The best project I worked on
Systems Engineering is one of the best projects in my entire career. I like the technical challenges that we tackle each day but this project also stretched us from the perspective of understanding the business side. When I first joined workshops with the Product Owner, I learned how the ISO 81346 standard is designed and instead of being scared, I was impressed and so started reading a book about this methodology. I’ve never worked on such an interesting project and I believe that in the nearest future the whole world will hear about it.
:quality(95))
The Outcome
Systems Engineering now has a standalone and mature software.
For the target end-users, it’s intuitive enough that they don’t need support, so Systems Engineering A/S can focus on business development.
We were able to deliver software that handles billions of elements in engineering systems while staying scalable and performant. One of the updates we run improved the speed of the app by 10-20 times.
We've also created a mobile companion app for the main software.
The success of this project hinged on the following factors:
Finding creative technical solutions for efficiently displaying large numbers of elements
Actively looking to understand the business context and proposing solutions that may satisfy the needs
Iteratively working with Systems Engineering to find the best solutions possible
Read more case studies
:quality(90))
Personal Wealth Management Solution
The result of the development process is a completely secure, fully encrypted financial platform. Here's how we achieved it.
:quality(90))
Industry-Focused Data Analysis Solution
Designing an intuitive interface for creating spatial analyses.
:quality(90))
I'm here to gather your requirements, answer all your questions, and push your idea into development as fast as possible.
Jan Solecki Inbound Team Lead