Systems Engineering logo

Systems Engineering

Performant app for designing engineering systems, built with Vue.js, RoR, and Neo4J

Systems Engineering cover

The company and product

Systems Engineering delivers a framework for successfully designing and delivering complex systems — both in the technical and managerial sense.

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

Systems Engineering logo

Harald Hersted

Systems Engineering Concept Specialist at Systems Engineering

Harald Hersted

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

Systems Engineering Application

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

1.
Handling billions of elements inside an app to create complex engineering systems.
2.
Translating engineering business requirements into app features.
3.
Ensuring the application’s scalability and efficiency.
1.
Handling billions of elements inside an app to create complex engineering systems.
2.
Translating engineering business requirements into app features.
3.
Ensuring the application’s scalability and efficiency.

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.

Systems Engineering web application

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

Monterail logo

Wojciech Maciejak

Tech Lead, Monterail

Wojciech Maciejak

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.

Systems Engineering application

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

Jan Solecki | Inbound Team Lead

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

Get in touch