The Experience of Development - Part 4: The Timeless Way of Building

March 25, 2021

But there is one more aspect I want to bring to the table. The experience of the wholly-internal castle construction. …..

The detail, granularity, and explicit-ness [SURELY THERE IS A BETTER WORD?] of our mental models is also highly significant. We are alo limited by how much we can “hold in our heads” [ALTHOUGH THE AMOUNTS VARY GREATLY FROM PERSON TO PERSON]. Admittedly, we do not need to hold all details as we have committed it to the screen [SCREEN? THERE IS AN ALMOST-IMMEDIATE RE-READING ASPECT HERE] but that does not mean we don’t need to be able to add to it, change it, improve it, and build on top of it.

Now we move to pleasure and confidence. [I’m NOT SURE WE DO.]

To joy.

To satisfaction.

[IF I WAS TO DESCRIBE MY EXPERIENCE OF DEVELOPMENT IN THREE WORDS I WOULD CHOOSE “CREATIVE”, “SATISFYING” AND “FRUSTRATING”].

In coding [“DEVELOPMENT”, OR “MAKING CODE-THINGS”?] we are engaged heavily in tool-use. Tools which are complex, multi-faceted, nuanced, and which must gel [“GEL” DOESN’T FEEL LIKE IT LINKS STRONGLY ENOUGH BACK TO WHAT WENT IN THE FIRST SECTION] with our wider expectations [BUT “EXPECTATIONS” DOES, SO PERHAPS…🤔] of what they are, how they are structured, and how they work.

As we become more familiar with a language, it’s associated mental model/philosophy, and it’s associated [REPEATS “ASSOCIATED”] libraries, frameworks and tooling we see not only how it succeeds, but how it fails; we see it’s limitations and shortcomings.

[WOULD THE VIRGINIA WOOLF QUOTES FIT IN HERE?]

DON”T FORGET ABOUT BIT DEPTH OF MENTAL MODELS (AFTER KATHY SIERRA)

[IT FEELS WE LEAP FROM WRITING TO READING HERE. AND FROM … ]

The perception of these things is different for different people. Their mental models of the language may vary greatly in their “bit depth”. [REFER OUT TO CATHY SIERRA.] So too may be someone’s comfort with the issues [AND SHORTCOMINGS?] which a language or associated ecosystem might throw up [NOT SURE I LIKE THIS IMAGE - 🤢 “PRESENT”?].

There is also the fact of someone’s comfort with a language’s syntax (or even style) [N.B. IN DEVS THIS IS ALSO VERY PECULIARLY FLOWS OUT TO THE PHYSICAL ENV - CODE-COLOUR, KEYBOARD, LIGHTING, ETC ALL CAN PLAY A ROLE HERE] and the ease with which they can consume this and conjoure up [I LIKE THIS PHRASE. BUILD IN MORE SKY-CASTLES LIKE THIS?] the associated mental model from it.

In this there is a strong association with how much detail can be represented as a “short-hand” and therefore manipulated effectively and effortlessly with confidence and skill. [THERE IS A MENTAL-EFFORT SIDE-BAR / DIGRESSION IN HERE TO PULL OUT.]

But we have not spoken of joy. The joy must come in great part from mastery, [WHAT ABOUT AUTONOMY AND PURPOSE? DO I EVEN WANT TO USE THIS WORD WITH ALL THE DISTRACTING CONNOTATIONS IT WILL BRING?] and the development of the same. But it can also come from both a lack of friction [MENTAL EFFORT AGAIN] and deployment [“MANIPULATION” / “DEFEAT” / “SUBDUGATION”?] of vast [VAST? REALLY?] complexity with little [“LITTLE”? HOW ABOUT “APPROPRIATE”? OR SOMETHING ELSE. THIS NEEDS TO BE UNPACKED TOO] mental effort.

There is also the potential joy in experiencing the pleasant surprise when something built from simple elements combines as hoped [“EXPECTED”? “HOPED” IS NICE HERE AS IT HAS THE ELEMENT OF FAITH IN IT…] (i.e. without a great deal of solid confidence) and works as planned, revealing a greater power [“POWER”? AGAIN THIS IS QUITE OVER-BLOWN] than had been imagined. [“THOUGHT POSSIBLE”?]

[**CHECK THE JOYS BELOW AREN’T ACTUALLY COVERED LATER ON**]

[THERE IS ALSO THE JOY OF HAVING USED ONE’S TOOLS EFFECTIVELY. MENTAL AND PHYSICAL. TO HAVE HAD THE RIGHT THINGS TO HAND TO HAVE APPROACHED IT ALL IN THE BEST WAY. TO HAVE FELT THE EXCITEMENT OF ALL THE PIECES OF THE MENTAL AND PHYSICAL PROCESSES WORKING TOGETHER AS ONE. ««< TDD COMES INTO THIS.]

[THERE IS ALSO HERE THE JOY OF A PROBLEM UNDERSTOOD AND BESTED, ]

[AND BEYOND THIS, THERE IS THE JOY FELT IN PRIDE OF CRAFTSMANSHIP - FIND ANOTHER WORD GIVEN THE CONNOTATIONS OF THIS ONE; OF A TIDY, JUST-ENOUGH SOLUTION.]

[AND THERE IS ALSO THE JOY IN AND OF A JOB COMPLETED. OF NEVER HAVING TO GO BACK SOMEWHERE. OF HAVING CONQUERED FRUSTRATION.]

[AND THE JOY OF HAVING LEARNED. OF HAVING UPDATED A MENTAL MODEL.]

How much of this is consious? It is not wholly correleated with mastery. [THERE’S THAT WORD AGAIN] You can consciously be struggling with something and be aware at [“OF”?] the lack of strength of depth of mismatch in mental models. [KEEP BRINGING IT BACK TO THE MENTAL MODELS.]

And this brings in [“BRINGS IN” SUCKS AS ENGLISH] another joy, in the construction of a new set of mental models and experiences in using them. In the experiencing of what is easier and harder, possible and impossible, in this new mindset. In the surprise at failing, and the surprise at learning. In the surprise in contrast between a solid, comfortable, established model and a new, unfamiliar, effervescent one. [AND THE JOY OF HAVING CAUGHT AND PINNED-DOWN/EXPRESSED THE LATTER.]

What about different modes of thinking? Both the “Happy Path” [CALL OUT TO BRUCE AND JAMES HERE] and the other paths? What about mode-swapping, both within a stack (e.g. from core language, to libraries, to framework, to tooling, etc.) and outwith (e.g. databases, etc.) Is there joy in these changes, in deploying multiple tools [AND ASSOCIATED MENTAL MODELS] to solve an overall problem? [DON’T LOSE THE THING-PROBLEM HERE. I’M LEAKING MY ANTI-DB BIAS HERE] Is there joy in staying in one place? [ONE HEAD-SPACE?] Is there joy in being challenged and overcoming complexity, and is there joy in understanding how it worked, and then finally distilling it down to the simplest, most elegant, most intentional and explicit solution? [LINK IN THE THREE DIFFERENT PERSPECTIVES OF TDD HERE TO.]

[IT FEELS LIKE THIS COULD GO RIGHT UP AT THE TOP - OR PERHAPS WHEN WE START GETTING TO TOIL/FRICTION/EFFORT.] (Programming) Languages are built to provide abstractions. Sometimes they are more explicit than others. Sometimes they are more consistent than others. Sometimes they are more complete than others. Sometimes they are high level, other times they are low level. [SOMETIMES THEY ARE BOTH, EITHER CONSISTENTLY OR INCONSISTENTLY.] Sometimes they [AND THEIR ECOSYSTEMS] are fitted to [THE ENTIRETY OF] our task perfectly. Other times they are not - being incomplete, or having [“CAUSING”?] friction with our mental-solution model [IS THIS MY NAME FOR THE OTHER MODEL?] (Is it easier when we think in their model? “Thinking in Java” for example…)

[LANGUAGES WHICH FIT:] “To begin with, there is the technical difficulty […] that the very form of the sentence does not fit her. It is a sentence made by men; it is too loose, to heavy, too pompous for a woman’s use.” from the essay “Women and Fiction” by Virginia Woolf

“And this a woman must make for herself, altering and adapting the current sentence until she writes one that takes the natural shape of her thought without crushing or distorting it.” from the essay “Women and Fiction” by Virginia Woolf (bold mine)

How much do we think of the mental models in the minds of others? How much do we care to express what is in our heads clearly, consistently and explicitly? How much do we think about reading again the code we have just output [THIS IS A HEAVY WORD, BUT I LIKE IT HERE] just now in order to get something to work?

[CONSIDER WHY I WANT TO QUOTE FROM WRITERS (AND OTHER ARTISTS?)]

[ANOTHER THOUGHT FOR EARLIER ON?] How too does this play into Bruce’s ongoing question about control? Do we prefer to be falsely unsurprised or truthfully [?] (and frequently) surprised (and disappointed). IS THIS WHY SO MANY HATE TO EXPERIENCE THEIR CODE RUNNING AS IT WILL SHATTER THEIR ILLUSIONS?

[ALSO: WHAT ABOUT SYSTEM METAPHOR?]

N.b. “The Programmers Brain” from Manning https://livebook.manning.com/book/the-programmers-brain/welcome/v-2/

N.b. TED: How Your Language Shapes the Way You Think https://www.instagram.com/tv/CKXQYJwHckL/?igshid=1vigwv11mgh2s

The Experience of Development - Part 4: The Timeless Way of Building - March 25, 2021 - {"name"=>"Andrew Harmel-Law", "github"=>"andrewharmellaw", "twitter"=>"al94781"}