You deserve explainable systems. Read the whitepaper.

We untangle your legacy software crises.

You have a legacy system. And a crisis unfolds. Perhaps, you have just failed a migration. Or, the system's failures appear in the news. Or, you cannot adjust your system fast enough to keep up with the market. Or maybe, you simply do not know where to start that modernization project.

Most of these crises stem from a lack of accurate insight into the system. You do not lack the ability to solve the problem. You lack the ability to see the problem.

We show the fires in your system and we guide you to extinguish them. We guide it all through custom tools that generate accurate views.

We cover the whole legacy lifecycle.

From figuring the path forward, to steering migrations and to guiding rewrites.

Strategic assessment

We start by diving into your system. This is an intense, typically 4-8 weeks, period to learn your context and distill a path forward. We work closely with you and guide the whole process through custom tools through which the problem gets explained. The result is a concrete description of options and recommendations.

Steering agile architecture

Whether you migrate to a new technology, split the system into smaller pieces, or moving it to the cloud, it is the existing architecture that poses the greatest technical challenge. We accompany the team through this process, and we coach the team how to guide it by means of automatic views and constraints.

Executable domain specifications

Sometimes, building anew is the only reasonable choice. A new system requires discovery guided by a ubiquitous language that bridges the technical and business worlds. But, that language should not remain on a whiteboard. We make the system show the pictures and through this we enable faster feedback and iterations.

The unifying factor for all these is that we treat the inside of your system as data, and we make it explainable through custom tools that capture what is important in your context. These custom tools free the energy otherwise spent on manual investigations and enable significant process optimizations.

For example:

Say the business requires to migrate a core system or a database that is being used by many others systems. To put it in practice, you need to understand the current landscape. Only then can you make decisions knowingly.

Once you decide on a technical path, you want to ensure the system evolves the way you want. It starts from establishing conventions and detecting deviations. These enable higher-level patterns to be visualized and reasoned about.

A rewrite requires the recovery of the business knowledge burried in the old system. You want to capture it in an executable shape so that it can serve as a central source of truth for both business people and technologists.

How explainable is your system?

You likely have pictures about the technical insides of your system. You likely have documentation, too. Now, how were these pictures created? And, how often is the documentation updated?

If the pictures are created manually, they represent someone's interpretation of the system. However, decisions should be based on reality. And, if the information takes a long time to be gathered, your decisions will never be timely.

Optimizing how you extract information about your system is not merely a technical issue. It is the difference between knowing what you do and not knowing what you do.

Why is explainability important for your business?

Your business is likely a software business. You might think of software as a technical cost, but your ability to make your software be what you need it to be is essential for the business.

The value of your software system today is given by its external functionality. Tomorrow, its value is given by how well you can to adapt it. This depends on your ability to understand the system’s internals enough to guide its evolution.

The explainability of your systems must become an explicit focus because your business depends on it.

Legacy is hard enough.
Eliminate the unnecessary risks.

The core proposition revolves around replacing manual views created through manual inspection by views generated automatically, yet are specific to the problem. It's much like data science, only applied to software.

This is important because we replace the single largest cost and the most important source for unnecessary risk. Your system is too large to be understood manually. As a consequence, pictures produced manually do not reflect the reality of the system. They constitute beliefs rather than accurate engineering tools. And beliefs are not appropriate for any decision making.

Automating how information is gathered from the system reduces risks and frees energy that can be used for experimenting and acting.

Tools are critical.
But, you still have to drive because only you know where the value is.

Steering a legacy system is a multi-dimensional problem. Due to the size of systems, tools are essential, but regardless how smart tools are, you cannot delegate the decision to them. You have to drive.

Legacy means value, but value is always specific. Every system is special in its own way. There are no recipes to deal with it. It relates to your technology, to your domain, to your business. However, there are patterns you can learn and skills you can build.

We show you how these work in practice. It's not easy, but it's lasting. And then we teach you how to do it yourself, too.

Act tactically.
Invest strategically.

Yes, we know that your crisis needs addressing now. But, you can address it as an investment that will pay off continuously in the future.

Crises present many risks often due to opacity. Through our systematic approach, we decrease those risks by creating transparency through automation.

We act as your first tactical team. In a crisis, everything looks like a problem, but not all are valuable. We work with you identify what matters and you get a concrete path forward. And, you get the tools tailored specifically for documenting and ensuring that path.

Even more important is that you get a concrete case from which your team can learn. Solving the crisis becomes an investment into your long term skills.

Why work with us?

We bring a unique experience. We cover the whole spectrum, from a single line of code to decisions made at the company executive level.

We base our work on state-of-the-art scientific work, much of which we personally authored. We actively create new tools and techniques for thinking with and about software systems.

Our work was validated for more than a decade of working with highly difficult problems in legacy systems in multiple domains.

Frequently asked questions

This sounds technical. Are you also working with business people?

It is technical, because that is what software is. But, our goal is to translate the technical details into what generates business value.

Do you work with a specific industry?

Our work is industry agnostic. We worked with various domains including transportation, hospitality, semiconductors, data privacy, retail, automotive, and acustics.

What programming languages can you work with?

We work with systems written in any languages. We know that sounds a little far fetched, but we did work with systems involving multiple programming languages such as: Java, C#, JS/Angular/React, PHP, Smalltalk, C++, Qt, Delphi, COBOL, SQL or even proprietary languages.

Do you offer some sort of analysis tool?

We solve concrete problems. We do rely on a number of automatic analyses, and we do build a unique technology in this space through which we can work with sources, configurations, logs. However, technology alone is only as good as the driver. We solve actual problems.