Maintaining Velocity for Sustainable Growth

In almost all companies there is a healthy tension between completing work asap irrespective of nebulous future needs versus building so that foundations remain robust and velocity can be maintained. At Flatiron we like to think that we’ve cracked the code for this balance.
Book a Consultation
Step
1
/
5

Prudently Anticipate Needs

We’ve built a lot of businesses, and so have really strong guesses as to upcoming directions a client might go in, even if no one at the client has started discussing them yet.

Flatiron Design Principles

Even with no insight into what the future might look like, there are some core design principles we adhere to. We push our own variations of modularity everywhere, including with the Flatiron system of data model organization, with infrastructure design, and when working SWE teams on backend design. Additionally, we emphasize abstraction to decouple from all vendors, tools, platforms, etc - it’s surprising how often changes in this vein occur.

Compensate with Extra Tests and Alerts

A good and highly common example here is transitioning from mutable raw data to immutable history for sensitive areas. We can compensate for a half-baked solution (b/c of client tech bandwidth) by quickly building out an aggressive enough testing suite that the solution could not possibly fail silently. The keys here are to make space for this work, and to be thorough.

Automate Repetitive and Error-prone Processes

We can typically easily make a case for occasional extra resourcing to save costs and errors over the long run.

Spread out Maintenance

This includes periodic inspections of data models, infrastructure, and system performance, as well as routinely asking a thorough list of standard questions.