On The Meaning Of Production

Produce, produce! Were it but the pitifulest, infinitesimal fraction of a product, produce it in God’s name. ‘Tis the utmost thou hast in thee? Out with it then! Up, up! Whatsoever thy hand findeth to do, do it with thy whole might.

Thomas Carlyle

We were guns for hire, building a web app called IcarusX™* for a client.

The goal was to replace SUPER-SYSTEM™*, an application critical to their business. Rumor had it the monthly fees they paid for SUPER-SYSTEM™ were in the ballpark of $10,000 a month.

The solution was obvious: they could pay us for six months of development work to build IcarusX™ and never again pay a single red cent again for SUPER-SYSTEM™.

Soon after the project kick-off, our client’s attention waned. They had day-to-day issues in their own business to worry about. This suited us just fine. By avoiding stressful, time-consuming conversations with them learning about how they were using each new iteration of IcarusX™, our process became straightforward. Week-by-week, we duplicated and improved upon features from SUPER-SYSTEM™.

The app was a technical tour-de-force. Users could create a form with as many rows and columns as they chose and then drag-and-drop different custom-defined form fields anywhere. They could create custom rules that revealed different parts of the form depending on input from previous fields. I was motivated to do my best work and would occasionally stay up past midnight to get a feature out before a product demo.

The product demo was every two weeks, and they were generally happy to see the new features being added. The client diligently paid us every month and we continued to build. Being DevOps-minded, we had a CI/CD pipeline. A decent chunk of our code was unit tested, we came up with some clever solutions to challenging technical problems, and we had a lot of fun building it as a team.

Everything we built made it into production.

At about the six-month mark, the client started to use IcarusX™ and was surprised to see it wasn’t quite as easy to use for them as SUPER-SYSTEM™. In fact, it was missing many key features of SUPER-SYSTEM™ they used daily. Because they had paid us so much, we discounted further development costs as we worked to add those missing features. Two more stressful months went by, and by sheer willpower and many late nights, we technically delivered what we were contractually obligated to.

As far as I know, IcarusX™ was never truly adopted by the client. My understanding is they continued using SUPER-SYSTEM™ and paying the fees.

Eight months of my work life was wasted.

Some of my best work never truly saw the light of day because I hadn’t yet learned to insist that the development cycle must include people using what is being built and learning deeply what problems it is solving for them and how it could solve them better.

*Names changed to protect the innocent

Jared Porcenaluk Handshake Protocol Cover

Leverage my ten years of software engineering experience to find a tech job that matters, get hired, and get paid what you deserve.

It’s all in my book, Handshake Protocol – the step-by-step guide to getting hired as a software engineer.

↓ I'll get a dopamine hit if you share this post