This website uses cookies for analytics and to improve provided services. By choosing I Accept, you consent to our use of them and other tracking technologies according to our Privacy Policy.
I Accept
A service for system engineers

Systems Engineering - Case Study

systems-engineering-logo

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

Jan Solecki
Jan Solecki ACCOUNT EXECUTIVE

Like what we do? Let’s talk about your project and build something your users will love.

The Story

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

 

Designing engineering systems is a demanding task 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 A/S 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.

Systems Engineering
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. Harald Hersted Systems Engineering Concept Specialist at Systems Engineering A/S

Scope and Highlights

The Challenge

When Systems Engineering A/S 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 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).

To create an improved version of the application, Systems Engineering A/S chose to partner with us. They needed someone who consistently delivers quality, is flexible, and able to translate complex business context into technical requirements.

The goal we started with was: rewrite 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.

Key challenges of the project included:

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 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: 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 (equivalent of a digital twin), with various aspects through two application modules: one that deals with designing systems, and another that allows to map 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, and this is how we made it work:

  • Regular discussion about the priorities and plan between Systems Engineering A/S 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 A/S business to build software that answers the needs

  • Recreated the Proof of Concept version to a highly scalable solution

wojciech-maciejak
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. Wojciech Maciejak TECH LEAD, MONTERAIL

The Outcome

Systems Engineering A/S 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:

Systems Engineering