Complex ideas are easier to grok when they can be envisioned. I've always found Physics easier than Math because it's usually possible to cultivate an intuition for the answer to a Physics problem by translating it into the real world. For example, what happens when an object is dropped? It starts slow and accelerates, just as we have witnessed since we were babies dropping our food.
Is it possible to hone an intuition for how a software project will evolve by making it more like Physics than Math? Is there a physical manifestation of a software business that would feel familiar from what we can see in the real world?
The best intuition-honing approximation I've found for "developing a software business" is "building a castle." A castle ought to at least be functional as a baseline, but the best builders can weave baseline functionality together with aesthetic extravagance to inspiring effect. When building castles was in vogue, there were surely legions of builders who excelled in planning the details to make a castle functional. These were akin to the DevOps engineers of a software business. These practical, engineering-minded builders were surely rankled by the whimsy of what was proposed by their artistic-minded teammates. The tension between "backend" and "frontend" interests would be just as applicable to medieval castle-building teams as they are to software-building teams.
On many points, the challenges of "building a castle" and "building a software business" seem to overlap. Both rely on navigating tensions between teams of specialists with competing interests. In both, the observed form that "success" takes is predicted by 𝑓(budget, schedule). A successful castle can be built by a generously-funded team on a tight schedule, a shoestring-funded team with decades of time, or by any number of gray area configurations between.
So let's go tour some specific castles and consider how the forces of 𝑓(budget, schedule) influenced their end form. Not only will it serve as a great excuse to look at castle pics, it might even let us extrapolate a physical intuition for how the (budget, schedule) inputs lead to differences in the end product of software businesses.
A quintessential VC-funded startup is one that gets built by conscripting the best open-market talent and giving them a 3-5 year timeline to get from inception to "MVP complete." With funding equivalent to a 2023 Series B round, a large team of the best free-market castle builders could build an impressive-looking castle. Here is an example castle that reddit claims was built in 5 years:
Château du Plessis-Bourré was built in 5 years from 1468 to 1472 according to reddit. As of 2023, it earns 4.5 stars on 1,000+ Google reviews
A fine looking result considering the technology available in 1468! Some properties of a castle built under these constraints:
Bona fide moat and three drawbridges proves the benefit of having enough cash to pick the best possible real estate (software equivalent: a premium domain name)
Built using the finest contemporary materials & technologies. According to its home page, "comfortable, bright and airy, the dwelling has remarkable decorations that herald the First Renaissance, including paintings on the ceiling with esoteric symbolism."
Functionality (plumbing, airflow, etc) are secondary to aesthetics. "Success" is marked by its ability to capture visitors imagination moreso than being pleasant to inhabit.
Time constraints offer negligible time for experimentation during construction. The construction planners would need to obsess over any possible hangups or delays before starting construction. It would make most sense to follow a methodology akin to the Waterfall model.
Not extensible. Since the castle occupies all of its island footprint, there are no practical means to extend it to accommodate future needs.
Architects can plan certain rooms to be incredibly novel or interesting, because they have effectively infinite resources to bring forth their dreams
Given the tight five-year timeline, this castle must prioritize risk minimization. Once construction is underway, there would be little-or-no time for experimentation. Even if there were 50% more time, the challenge of coordinating a large (probably hastily assembled), team of open market builders would make it prohibitively difficult to try something that hadn't already been proven viable by past projects.
An Enterprise castle is a grandiose statement of its time. It showcases the best materials & techniques of the era in which it was built. The facade of an enterprise castle is stately. The interior is ornate, while complying with every government regulation imposed on its builders. In contrast to the New VC-funded Project, Enterprise Projects are created under the belief that the product should be equipped to span generations.
This scale of this castle and its surrounding grounds ooze panache. Its creators spared no expense to ensure visitors would leave feeling dazzled. This castle is a testament to the potential of the human ambition...and, I suppose, the exploitation of the people who paid for it with their tax money & labor. Some fundamental traits of an Enterprise project like Versailles (or Adobe Photoshop) include:
Unlikely to take shortcuts in creating infrastructure. Important that everything be "up to code" to whatever extent that has been defined for the era
Much easier to "add more" than to "improve/retrofit existing" concepts (ex 1, ex 2), particularly because the individual(s) that built the original are likely to be absent when the v2 work gets underway. Intrinsically, humans find it more satisfying to create new and shiny things of our own tastes than to do the harder work of understanding the previous work well enough to apply
Premium location, chosen both for proximity to an existing population source and for its potential to be expanded as generations passed
Built by generations of evolving owners & stakeholders means low consistency between successively built sections
Infrastructure upgrades treated pragmatically; there's usually something more spectacular to work (like those fountains!) on than improving the sewer or airflow
Upgrading infrastructure is resource-intensive, requiring immense coordination between teams
To the extent myself or anyone else finds this essay interesting over time, I will gradually add examples to substantiate each point above.
A bootstrapped, or "lifestyle business" castle is one that is constructed by a small handful of people. Since they are operating on limited resources, the time to complete the work often happens over a very long time period. They creators tend to have a deep personal need for the project, as evidenced by their tendency to work on a lifestyle project for a substantial fraction of their lifespan. A castle like Neuschwanstein is an analog for companies like Honeybadger or GitClear: the founders created it to serve their own needs, and the project tends to occupy their imagination whether they're on the clock or not.
Neuschwanstein Castle was principally driven by a single architect from 1859 through 1886. It was first sketched in a diary, and its construction didn't end until its creator's life did.
A castle like this will never be mistaken for Versailles. There is nary a golden toilet to be found across its broad expanse. In lieu of a gold-plated loo, it differentiates instead on efficiency & novelty:
Aesthetically a grab bag based on the tastes of founders. Bends toward "antiquated but functional" on long-term horizon
Limited in scale vs. enterprise castle: often planned by a single individual, and implemented by <= 3, which restricts maximum scale
Concern: long-term stability; this creates incentive for to plan for maintainability
Concern: usability for the Founders
Plumbing, airflow and electricity are incorporated to the extent they serve the often-narrow use cases handled.
The greatest advantage conferred by the lifestyle castle is that the planner and builder are either the same person, or part of a very small team.