Sorry Frank Lloyd Wright fanboys and fangirls, but this post isn’t about Prairie style architecture. It’s actually about opinionated versus unopinionated software systems. The mercurial Frank Lloyd Wright serves as a convenient metaphor to illustrate the opinionated side.
Not only did he design and build houses, but Frank Lloyd Wright also designed the furniture, light fixtures, built-ins, fabrics, and colors within the house – the whole enchilada. For the most part, buyers happily acceded to the architect’s design sense, regarding their homes as architectural gems.
Over time, families change and grow. Even the most ardent Wright adherents might occasionally chafe at some of their restrictions. Built-in sofas might be too small to accommodate modern-day bottoms, built-in desks might be too small to accommodate modern-day monitors, enclosed kitchens might seem dated when people now want great rooms. In architecturally significant homes like a Wright, one cannot simply rip out the built in furniture or kitchen because it devalues the overall aesthetic. Although some Wright homeowners may feel like they’re living in a gilded cage, the vast majority hold onto their homes because it’s a privilege to experience such grace and beauty every day.
Buying a house with an à la carte menu of options is the antithesis of a Frank Lloyd Wright level of control. If the buyer wants orange shag carpets and green walls, the builder will just do it because the customer’s always right. For those who aren’t sure what the future holds, a house constructed with movable walls and modular furniture provides the ultimate in flexibility; this reflects the other end of the spectrum – nonjudgmental house construction. If the owner’s choices violate the principles of feng shui, it’s on them if they want to live in disharmony.
It’s common for startups to pivot to help their product find traction in the marketplace. What may have initially seemed like a groundbreaking idea may ultimately serve a completely different purpose and set of customers than was first envisioned. In cases where the founders aren’t sure what the future holds or who their customers are, i.e., just about every startup, it’s wise to build an unopinionated product. This way, users aren’t hemmed into a workflow that serves a very specific purpose. Allowing flexibility enables the founders to learn what’s important, what’s unimportant, and understand the real market for their product. If the team is nimble and the planets are aligned, the company may emerge from its startup phase with a product that has legs.
A growing company with an unopinionated product faces a number of challenges:
- Maintainability – Products without a well-defined workflow often have many ways to accomplish a goal. Consequently, there’s more for the team to support.
- Clarity – A wide open product generally contains a rich enough feature set to satisfy many different scenarios. Unfortunately, an unopinionated product confuses users and leads to bug reports, support calls, and demands for product simplification.
- Data – Without placing requirements on users, they are free to pick and choose the data they supply to the system. Loose data rules result in spotty reporting and a lack of uniformity across the customer base and sometimes even within a single enterprise.
- Responsibility by Proxy – If the product is an unopinionated API, the customer’s programming team that consumes the API must take responsibility for filtering data in the front end; this is slow and makes partners less enthusiastic about consuming an API. Having a more tightly constrained API, i.e., an opinionated API, provides more governance and control over the data that’s returned at the server level, giving consumers of the API a much smoother ride.
A growth company with an unopinionated product is like being stuck in the Pupa stage without a path to becoming a Butterfly. It’s always best to provide a product with some configurability and flexibility. However, when a customer base is well-defined and use case is understood, it’s time for less orange shag carpeting, green walls, and more Frank Lloyd Wright.