h.jk

Intention-Implementation Impedance

Intention

The creation of something - new feature, bug fix.

This is akin to - I'll like to imagine - the theory-building school-of-thought when it comes to programming/software development. In programmers/software developers, even before touching the IDE or a coding agent these days, there has to be the need and understanding of why to build the (thing), and how to build it.

A stronger team - especially coupled with dependable onboarding - tends to give rise to well-founded intentions. It could range from a better issue-identification workflow (till definitions of done) to a common domain language. A weaker team might just c'est la vie their way through - sometimes haphazardly completion but at times yielding an undiscovered breakthrough from simple trial-and-error.

Implementation

What was built - the new product page in its standalone repo, the six-line bug fix.

This is the impact - the result. It manifests in different ways - UIs could be completely upended; the six-line bug fix might just be that in a code repository with weaker standards, or balloons to include updates to seven regressed test cases at a different standard.

Implementations are done vigorously (I hope) through IDEs and coding agents, and this is where I like to think of them as a translation layer of sorts. In marketing-speak, coding agents (the current tool) translates ideas into implementations...!

Impedance

The third 'I'... describes the hypothesized friction and losses when that translation happens, and I hope to reason how they happen through these layers:

  1. The leap from our mental construct into the written medium.

    • The literal saying 'putting ideas into words'... more can be written about this (ha) but that's really not the focus here.

    • Just... think (ha-ha) of it as an extension of the writer's experience and vocabulary. Also, it can be the absence of words that are the most profound - implying invariants that must be encoded, or otherwise the presence of an offline resolution workflow that demands careful documentation elsewhere.

  2. The written medium against the standardized domain language.

    • Imagine you're new to a domain, say making fries. You tell someone to get potatoes without specifying the desired variant. You say 'fry on high' without outlining the type of cooking oil preferred, and how to regulate the temperatures during the frying process.

    • If the choice of words on the work-issue is incomplete against the domain language, the ability for the reader to infer is suddenly paramount. This subverts what would have been objective understanding into a relative benchmark.

  3. The domain language to the toolset.

    • Before WebAssembly, it might be hard to define what does 'executing binary code in the web browser' mean.

    • Or, you are involved in a hedge fund doing algorithmic trading, but the toolset is running on the recently-upgraded Java 17 stack. Not impossible - but recognize that your team is likely writing low-latency Java code while relying less on the arguably nicer OOP aspects of said language.

  4. The toolset to the implementation.

    • The actual translation layer. Using the earlier example, it'll be the Java code repository that has an entire handcrafted (or AI-engineered) library for doing object-pooling that has a certain mechanical sympathy with the physical hardware the software stack runs on.

    • Whether this is achieved through handcrafting or AI-engineered matters, and perhaps greatly so moving forward. Having handcraft implies a senior guiding hand who hopefully has long-term interest alignment with the organization. Using an AI-engineered solution implies a certain reliance on models present-and-future to read, re-read, and eventually iterate on, hopefully for the betterment.

In whole, there are varying boundaries in which an intended feature received an implementation which may perform below-part in hindsight, just because a certain vocabulary wasn't picked, or a certain toolset was not mature enough yet.

In-turn

The next part will attempt to go further into the actual practice of discovering and handling this prescribed impedance with AI coding agents, scaling across team composition and sizes.

#cognition #intention-implementation #theory-building