Our Process

Together, this is how we’ll build your enterprise application or entire work system

Phase #1

Domain Model

In our practice of domain-driven design, before building anything we collaborate on modeling your organization's activities to form a set of project blueprints, including a vocabulary (as the saying goes, one of the two hard things in computer science is naming things). In his 2003 book Domain-Driven Design, Eric Evans explains the nature and goals of such models:

These models are never perfect; they evolve. They must be practical and useful in making sense of the domain. They must be rigorous enough to make the application simple to implement and understand.

Phase #2

Look & Feel

Engaging OS imposes some design constraints in that apart from publicly-accessible screens, there are only two main types of screens: 1) role dashboards, comprising sets of consoles each displaying a table; and 2) ports, being mostly forms. Within these constraints, we express and build on your brand, striving for elegance.

We value consistency. Luckily for our medium, consistency makes a software system not only easier to use but also easier to produce.

Ultimately, we hope to achieve personality, which can emerge with consistent use of a critical mass of design patterns.

Phase #3

Data Migration

Importing existing data into the system will likely be necessary, which we'll perform either directly into the system's PostgreSQL database or via Directus, which has helpful importing functionality.

Depending on the situation, some imports we’ll likely perform as one-offs while for others we’ll build scripts to make them easily repeatable.

Jumping down into the weeds for a moment, one technique we prefer is to migrate table-by-table, starting with the most central tables. We create a new field in the source data that will hold each entry's id generated in the new database, importing that in a batch update. Then subsequent table exports will use these target ids for joins rather than the source ids.

Phase #4

Collaborative Development

Development proceeds according to the order determined during Phase #1, based both on your business requirements and on which aspects of the system are required for others.

We meet regularly with relevant members of your organization for them to evaluate progress, provide course-correcting feedback, and learn about the system. The frequency of these meetings depends on the nature of the current work, varying from weekly or more to bi-weekly or monthly.

Phase #5

Launch Period

During the intense pre- and post-launch periods we observe each and every user session — there's nothing better for revealing and addressing user confusion.

Phase #6

Ongoing Support & Development

Emerging from the post-launch period, we’ve only reached the end of the beginning. As your organic system grows, we are with you for the journey.

Capacity

We can onboard 3 more organizations in December 2024.

One Small Step

Tell us about you and your organization