Software architecture and its business implications.

Basically, value of a software = UI experience x the value created by the backend x the value of the data stored.

Of course, if any of them goes to zero, then your whole software value is zero. But one component can be the hero contributor. You can have really good UI, but your backend can be not very valuable or the data you store is not that valuable. Or you can be something like Google Photos where UI or backend is not that special, but it’s all about the database. Another example of just having a valuable database is Bloomberg where the UI is literally ugly.

Basically, there are three levers to pull when it comes to creating value with software. And as a software startup, you should stick to one and yank it with everything you got. Of course, as a solo person, beautification of your UI is not something you can do too much about. Of course you have to try to reduce time to value and effort to value as much as possible, but that does not necessarily mean beautification. So that means your value has to come from either backend or storage. As a small guy, what are you even going to have access to in your storage? You don’t have any proprietary knowledge or huge knowledge bank. Basically, the value you create comes from your backend, your access to external APIs and data providers, and what you do with them and what processes or enrichments you do.

Competing on the basis of UI inherently means you will have to try out a lot of designs before you nail down what your consumers really like. That means creating multiple designs and also A/B testing them. Unless you have been archiving some data or creating your own synthetic data in some really valuable industry, database is also not a labor you can play around with right when you are starting out.

When it comes to back-end, you can address problems of someone’s workflow or help with translations between two applications or two file types or two different protocols done. Essentially, all the problems that can be solved with logic and sequencing can be addressed using backend.

So when you’re starting out with low capital, the way you create value is:

Value = (Minimal UI that allows low time-to-value and effort to Value) × (Problem-specific backend logic) × (Borrowed data from third-party providers. + What our user provides)

To do this, you would be better off if you knew what APIs and libraries exist, were exposed to valuable workflows and what kind of processing and enrichment will help out the most in certain situations.


Text from the image


User interacts with this machinery For the Experience of Frontend , The value which back-end provides or the storage that database provides. State is the home of truth away from its home that is database. Database is holding the single source of truth, and code shall be maintaining the single source of truth. If either fails, now both code and database are useless. As you can see, UI can interact with state only via controllers or action/protocols. And only state can interact with the database by API responses and API calls. UI cannot bypass directly to database or back-end or any external service; it has to go through state. Of course, we don’t store every truth into the database. Some things that we can just let go of can be stored in state or cache And then erased. Reason with it for a while, and it will make sense.