We build systems that other people will maintain. That changes how they get written.
Most of a system's cost is not in building it: it is in changing it over the following years. So we optimise for the next team understanding what is there, not for shipping fast and leaving the problem to someone else.
We built and operate ADN Vortex, a multi-tenant platform with thousands of devices reporting continuously. What we learned sustaining it is what we apply in our clients' projects.
We assign a team and do not rotate it. The cost of someone new understanding a complex system is high and the client pays it in time, so we avoid it.
Every two weeks something is running in an environment you can use. There are no surprises at the end because there is no distant end.
Repository in your name from the first commit, architecture documentation and recorded decisions. If you change supplier tomorrow, you can.
Most projects that fail do not fail because of the code: they fail because nobody agreed which problem was being solved.
View →Most data initiatives die in the pilot. Usually not because of the model, but because nobody settled where the data comes from or who maintains the result.
View →An interface is judged by a tired user, in a hurry, with the sun in their eyes. Not on a presentation screen.
View →Initial assessment at no cost. We answer with a concrete scope, with cost and date.