Live data from Hacker News

The difference between "today's task" and "accretive work"

pluralistic.net

61–70 of 82 posts

Re: The difference between "today's task" and "accretive work"

#61
There's a third case between "today's task" and "accretive work" that I lived through on The Sims, and it's the one that scares managers the most: a system that IS accretive work, but looks exactly like a pile of disposable hacks for most of its life.

Chris Trottier, one of the designers of The Sims and The Sims Online, called the method "Design by Accretion" and "Tuned Emergence" in an interview with the Armchair Empire that I republished on my old blog.

Her description: The Sims and SimCity were incrementally assembled out of "a mass of separate components", like a planet forming out of a cloud of dust -- they had to reach critical mass before tuning could even begin.

Before it was tuned, The Sims was known inside the company, not very affectionately, as "the toilet game", because there wasn't much else to do. SimCity 2000 wasn't fun until six weeks before it shipped.

The Sims didn't come together until a couple of months before ship. In her words: "Being involved in that tuning process, and seeing the game take shape from what had previously been a mass of separate components, was one of the most powerful experiences of my career."

https://web.archive.org/web/20110408034710/https://www.donho...

Original interview:

https://web.archive.org/web/20111211182436/http://www.armcha...

The hard part wasn't the code -- it was explaining to EA not to panic. By every rule in EA's playbook the toilet game would never work, and it took Will Wright's tremendous stamina to keep it from being cancelled. Here's a screen recording of the actual June 1998 "Sims Steering Committee" build we showed EA to buy another year and a half -- bathtubs placeable on hills, placeholder pie menus, Archie Bunker permanently holding a burning cigar:

https://www.youtube.com/watch?v=zC52jE60KjY

The distinction Kontorovich/Elliott-McCrea call "canonization" is what Chris called tuned emergence: the late, undervalued pass that turns an accreted mass into a coherent system.

What made The Sims accretive rather than disposable wasn't visible in the code mid-accretion -- it was that the tuning pass was a committed part of the method, held by people with the authority and stamina to protect it.

Which suggests the real question to ask about any AI-generated pile of working fragments isn't "is this slop?" but "who is signed up to tune it, and will management hold its nerve until they do?"

A toilet game with a Will Wright becomes the best-selling PC game of all time. A toilet game without one stays a toilet.

Re: The difference between "today's task" and "accretive work"

#62
post #7

There's a 'joke' that goes around occasionally that has some truth to it: "Excel is the world's most popular programming language." Occasionally it's 'Excel macros' or 'VBA' instead of just Excel.[1] The core truth of it is that a massive amount, possibly most , of the world's software is not a carefully hand-crafted application in that lives in Github written by expert software developers. It's a heap of Excel funct…

I'll take that one step further and claim that Excel is the world's most popular VISUAL programming language.

https://news.ycombinator.com/item?id=26668885

>Spreadsheet certainly are visual programming languages: by any measure, by far one of the most common most widely used types of visual programming languages in the world.

Re: The difference between "today's task" and "accretive work"

#66

"There's plenty of space for "disposable and single use software." Sure, to a trained software engineer, this might be "bad code" but doing today's task has value, even if the code that performs that task isn't "accretive."" Grant me the serenity to accept the bad code i shouldn't fix, the courage to change the code I can, and the wisdom to know the difference.

Part of why I like "tech debt" as a term. Much like actual financial debts, some tech debt has a low enough interest rate or is easy enough to declare bankruptcy on that it's not worth paying off.

Re: The difference between "today's task" and "accretive work"

#67
When one cannot determine right or wrong its easy to ride the fence and try to please everyone and rationalize motivations and outcomes.

If vibe code is not production code than you are just "reading" your fathers playboy magazines "for the articles" and creating tech debt you or nobody else can maintain.

If you read between the lines there I think vibe coding is a very "generous gesture" towards the folks "doing this"

Also the article bugs me referring to programming paradigms like visual basic as "equivalent to" vibe coding. That is factually incorrect and should be stricken from the record.

Re: The difference between "today's task" and "accretive work"

#68
post #45

Earlier quoted context omitted.

This is a slightly modified version of the serenity prayer of AA fame.

Yes, I know, but I substituted that one in daily usage for just shouting "SERENITY NOW" at maximum volume.

> shouting "SERENITY NOW" at maximum volume.

I'm imagining the Silicon Valley scene where the character Gilfoyle has set up a loud death-metal automated noise that plays whenever the price of Bitcoin meets certain conditions... except the trigger is some kind of code-quality metric, the effect is my machine shouting at me to become serene.

Re: The difference between "today's task" and "accretive work"

#69

"There's plenty of space for "disposable and single use software." Sure, to a trained software engineer, this might be "bad code" but doing today's task has value, even if the code that performs that task isn't "accretive."" Grant me the serenity to accept the bad code i shouldn't fix, the courage to change the code I can, and the wisdom to know the difference.

The real trick is recognizing when "disposable" code has quietly become infrastructure

Over many years I've tried to (unsuccessfully) coin the phrase "Design for deletion."

The code in front of you works today, but will become unfit for purpose and un-salvageable, and we want to ensure that when that inevitable end happens, there is a sane and safe way to systematically chop it out and replace it with something else, something you are not capable of predicting.

There's substantial overlap with general principles like loose-coupling and modularity, but the framing changes how people apply them: Instead of trying to create durable Amazing-Thing which will be used for many years by people amazed at your foresight making it "flexible" and "modular" and "customizable", you focus on creating Inoffensive-Thing which can be easily killed off or dismantled for useful parts.

Post reply on HN