December 2nd, 2023 The Great Product Engineering Cycle By Jeffrey M. Barber

A core part of how I’m operating right now is acting as a fractional-CTO-as-a-service. If I’m being honest, then I’m not super great at it while I’m innovating. It’s exceptionally hard to do both at the same time, so I took off the innovator hat to focus on some roadmap planning and thinking about hiring. Hiring ultimately is a game of figuring out the various roles and that resources play.

At this point, some people will check out because I call people resources. This is an intentional aspect of management because management requires people to do predictable things within a reason, and the slack is then picked up by the leadership and management. If you want to be more than a resource, then you need to become a leader and embrace the hero mentality of doing what is needed to achieve success. There is no shame in being a cog in a machine because cogs can seek work-life balance while leadership is about driving the bus towards success.

So, part of my role is that various companies are in various stages of their understanding on how to build software products. Ultimately, making software within some domains is a highly predictable process. In this regard, I’m focusing right now on the business of shipping simple software-as-a-service where the core deep engineering challenge is data modelling within the Adama platform.

Adama Platform then provides the multi-tenant infrastructure to power an enormous number of start-ups that keep their product design within certain dimensions (max memory per tenant ~ 1GB, 1 cpu core is way more than sufficient per tenant, etc..). Fitting this thesis has the aim of enabling product developers to move ridiculously fast.

However, this changes the game that these businesses need to play, and the focus is around product engineering with a predictable backend. Thus, I’m now in the business of shipping organizational playbooks for how to build products.

This is chapter 1 of that playbook, so we introduce the Great Product Cycle.

This cycle is important as people have ideas, but the hard and valuable part is execution.

Genius is one percent inspiration and ninety-nine percent perspiration Edison

Execution is exceptionally hard because it requires finishing which I’ll touch on. Before that, I’ll dive into the various aspects of the great cycle with respect to web products developed using the Adama Platform.

Idea

This is the fun part of being creative which is having ideas that manifest in your head. It’s great! It’s the best part because having ideas is free! It’s awesome to see your work manifest in new ways to do things!

In this phase, the most important aspect of evaluating an idea is answer why the idea should be invested in and turning that into a story.

Product Design

In the product design phase, the idea starts to transform into an actual embodiment. The web app will take form in the mind in a way that can be communicated, and the essence of this phase is communicating what the product is.

A good tool to explore this is Balsamiq as this is a high communication phase. Sometimes, you’re not designing but taking ideas from an existing product because there is a competitor, and that’s OK. However, do be careful not to use a competitor’s product as that can make things murky from a legal perspective.

In this phase, the most important aspect of is communicating what the idea is and the medium of creation.

UX Design

Since there is a competitive bar for how products should look and feel in the market, it is often times exceptionally useful to have a design scheme in play. Maybe you hire a designer that slings some Figma around.

My recommendation at first is to leverage good templates to bootstrap everything. For this, I recommend Tailwind Components, Cruip, and now CodeSnaps.io. From there, hiring a designer can make a ton of sense.

In this phase, the most important aspect is getting the user experience sorted out at a level appropriate to the design.

HTML & CSS

Now, the designs are being turned into engineering artifacts. The process of turning images into just HTML and CSS is a fixed function pipeline for the most part.

Here, the freedom of creativity starts to focus on the engineering medium. The cost goes up dramatically.

Frontend Behavior

Now, things get a little bit harder. The UX manifests behaviors with modals, popups, dropdowns, etc. Links must work. Deep linking must be available for usability. The thing starts to behave and almost work with fake data.

The freedom is now constrained by usability and having good expectations for behavior. Costs go up.

Backend Read & Write

Now, connecting the frontend to backend requires the frontend to send messages (via channels) in the backend, and the backend provides data to connect to the frontend.

The physics of computing, doing the math, writing algorithms, summarizing data, and the actual software engineering begins. Some things will not be possible, the designs get reality tested, and back-pressure will emerge.

This back-pressure causes the flow to stop and forces management to back-step. There isn’t sufficient data coming from the front-end. There is missing data, unmet expectations, or really hard compute tasks.

Adama biases all computation currently in the back-end, so there is ultimately one source of truth for how things work. The details matter here the most.

The costs now can be astronomical depending on the product domain.

User Testing

Finally, the thing starts to work and the form is an app. There is nothing better than having made a working thing, but now the question is whether or not people will buy it. So, you test it with potential customers.

Everyone Has a Plan Until They Get Punched in the Mouth Mike Tyson

Feedback

Your best customers will talk to you and give you feedback which will help you shape your idea further. Feedback turns into ideas, and the process starts over and continues to refine.

Feedback is a gift Warren Buffet

Pulling back

Now, having a fully formed organization for entrepreneurs can be exceptional expensive. Worse yet, communication is exceptionally expensive and error-prone, and the only way to cut down communication is with less people. Running a successful start-up requires heroes rather than resources and resource management.

However, the roles don’t change all that much, and you want people with experience to bridge gaps fighting in your camp. From my perspective, I have a heroic understanding of the entire pipeline, but I’m weaker on the product side. As such, I’m writing a playbook for companies that are weak in engineering such that they can work well with new engineers that need experience. My core calling in life is to mentor and grow engineers.

I believe I’m changing the physics of how to build these applications, but there is an essential minimum loop for new companies where they need fast iteration to run experiments to validate their demand and drive feedback. Feedback is the fundamental game, and there is no better feedback than a happy customer.

Finishing things

Now, the hardest traversal in the loop is the first time because there will be tremendous back-pressure preventing getting to any kind of 1.0. You have to make cuts, and you will have set backs. However, the most important aspect is finishing something.

The story I like to tell is of a table I once made. Many years ago, I started to make a small standing table. This was my first table, and I made all sorts of mistakes. However, once it was standing, it wobbled way more than I would like.

It was depressing to see all that effort go into garbage.

However, instead of scraping it, I just polished the turd. Added braces and supports until it worked well enough. Then I started sanding and finishing it, and low and behold, I sucked at finishing too. I’m pretty sure I didn’t know I needed to wipe the finish off, so it just tried and then I had a very thick surface.

At the end, I had a finished table, but I learned more because I identified where I was lacking in the fullness of the task. This is true for business too, and you need to learn where you are lacking. The sooner you learn, the faster you will go and you can then run experiments better.

It’s important that the first run through the loop is exceptionally expensive and painful, but once you have revenue you can grow it.

Revenue fixes all problems a friend of mine

This concludes the first chapter in the engineering playbook for Adama.

Happy Building!