Once large infrastructure projects become sporadic in nature, you begin to run into issues.
The solution has to be continuous stimulus, but that also runs into problems of corruption and capture by special interests (the longer the stimulus, the more incentive there is for 3rd parties to appropriate funds).
All the old money already got a ton of wealth they didn't really deserve (conquest through Native american genocide)
> some online ID law
Texas and Utah in the US also have similar online age verification laws. Texas is the second richest state in the US by GDP per capita, but even that was not enough.
So whatever the Germans are doing with their rail, thank god the UK isn't.
From what I understand, the problems in the German railway network stem predominantly from growing demand meeting the results of chronic underinvestment in infrastructure. That does not automatically mean that all of the work should be done in big chunks instead of continuously. They still could be doing some things right, and I think it is worth pointing that out. I find it more interesting and productive than blanket dismissal.
It's one of the most consequential problems imaginable to solve, particularly as the US begins to realize that we need to compete with decades of China's subsidized energy and industrialization/manufacturing capacity.
Taking it a level deeper, what most don't realize is that infrastructure is an asset class: before someone funds the construction of $100M of solar technology, a developer will spend 2-5 years developing 15 or so major commercial agreements that enable a lender/financier to take comfort that when they deploy such a large amount of cash, they'll achieve a target yield over 20+ years. Orchestrating these negotiations (with multiple "adversaries") into a single, successfully bankable project is remarkably difficult and compared to the talent needed, very few have the slightest clue how to do this successfully.
Our bet at Phosphor is that this is actually solvable by combining natural language interfaces with really sophisticated version control and programming languages that read like english for financial models and legal agreements, which enables program verification. This is a really hard technical challenge because version control like Git really doesn't work: you need to be able to synchronize multiple lenses of change sets where each lens/branch is a dynamic document that gets negotiated. Dynamically composable change sets all the way down.
We are definitely solving this at Phosphor (phosphor.co) and we're actively hiring for whoever is interested in working at the intersection of HCI, program verification, natural language interfaces and distributed systems.
As a tech writer people have a lot of experience but they never turn it into institutional knowledge because it’s never written down. Ay best it’s tribal knowledge passed by word of mouth.
I know some people refuse to document things because they are hoping for job security but that never happens. Or sometimes for revenge for getting rid of them. But many companies survive despite those efforts.
There's always a lot of talk about how documentation is important, but there's never budget for a tech writer (well, you must have found some, as you've taken tech writer as a title, but it's not often available) or a documentation maintainer.
OTOH, if you commit to not writing documentation, you don't need to write it when the release is ready either. :) I usually work on server side software that doesn't escape my org, though.
Now I work where there is a tech writer and still create internal, dealer, and customer facing documentation, because I am the only one with the knowledge on the subject matter. Some things are filtered to the tech writer so tech writing has been reduced.
Simply, don't call me or contact me for simple questions. Give me a real problem that others cannot solve. Some people like customer service or being able to be the one that helps. Documentation allows me to not be that person and focus on other things.
There is only two ways to communicate to a person on how to use that tool only you created. 1) Showing them how to do it. 2) Giving them documentation so they only contact when needed. Option #2 takes time to save time in the long run that can be diverted else where.
Documentation is part of any product design and software based solution. That new feature time is design, implementation, QA, documentation, and release.
But the things I really need from devs is what is the feature supposed to do and why did you do it that way?
I can read the code to know what it does but often that’s not what it’s supposed to do.
The why can be simple too. We had a dev write an archive delete function that failed but the way was because the CEO pressured him.
I’d love to know what you think documentation means.
I'd say effective documentation lets the user know enough about the system that they can work on the system without needing to contact the previous person (or people) working on the system. Or at least, so they can get started and only ask 'good' questions.
Something like descriptions of what the system is supposed to do, what it actually does if it differs significantly :D, maybe motivations. Descriptions of the data, and like where does it come from, where does it go, where did it come from (Cotton-Eye Joe?). If the system runs into problems often, a list of common issues and how to fix them, etc.
Anecdote:
I once (well, many times, but especially this one time) inherited a completely undocumented codebase from a previous "lone wolf", mad genius type of programmer. Most of the stuff he wrote was completely inscrutable at first but really kinda genius once you figured it out.
But one day I was tweaking one of his heatmaps showing solar production on a rooftop from "off" to "a little" to "a lot" to "this is broken", and his color gradient code was a magical one-liner doing strange math as hex operations. It usually went from blue to red to yellow, but would sometimes "overflow" into other strange colors that made no sense. I spent a few hours simulating different edge cases and getting back colors I could not reasonably explain — and which would confuse our users. I talked to my coworkers about it, who mostly insisted "Well, I don't know, but he was a very smart guy, so we should probably just trust him and move on". That was unsatisfying, and didn't really help me close the customer ticket that I was trying to solve.
I kept bugging my boss about it, and after a few days of back and forths and seeing my simulation, he finally agreed to let me reach out to the original programmer (who had long since left the team). I finally got my answer a few hours later. He said, "Oh... that was just some random throwaway gradient I thought looked pretty, lol. I was lazy and wrote it in a hurry and, yeah, it probably bugs out on all but the simplest cases, and doesn't conform to any color standards... glad he caught it."
Sigh, lol... that took several person-days to resolve, when it could've been a simple // #TODO: Use a better gradient system someday
We just do subways and get good at it.
Nobody had built a nuclear reactor in ages. The last ones were from the 80's and this was a completely new technology (EPR). There was no institutional knowledge.
It didn't help that the French attitude to building was to "just slap it up real fast up north and use it as a reference to get REAL customers". They didn't figure in the fact that STUK (the Finnish radiation authority) is _really_ fucking good at what they do and don't cut any corners for any reason resulting in the French having to build many parts twice because the first attempt was subpar.
[0] https://en.wikipedia.org/wiki/Olkiluoto_Nuclear_Power_Plant [1] https://en.wikipedia.org/wiki/Radiation_and_Nuclear_Safety_A...
Broadly speaking you are correct. Expertise like mine is rare and fleeting mostly because you can only really build it long term by working at a company which can convince international clients to take them on. Even large countries tend not to have more than a handful of trains being built on any given day of the week.
This is one place where having a business located in a nation long known for its relative neutrality, calmness and international trustworthiness can pay off. All of the Nordics are good at this, really.
> What happened next, you may not be surprised to hear, comes in different versions. The person who spotted that there might be a problem may have been a member of Her Majesty’s Constabulary…
>> While they were away, a passing policeman noticed an extraordinary whirlpool in the normally placid canal. He also noticed that the water level was falling. He rushed off to find the dredging gang. By the time they all returned, the canal had disappeared. It was then that realisation dawned. Jack and his men had pulled out the plug of the canal. One-and-a-half miles of waterway had gone down the drain.
> It may have been three anglers who raised the alarm, and given that they have names — Howard Poucher, Graham Boon and Pete Moxon — maybe that version’s true. Another telling says it wasn’t until the evening that
>> local police contacted Stuart Robinson, the British Waterways section inspector.
Wouldn't have been that unusual in 1972 when nearly all the canals including that one had ceased commercial operations and many of them had been intentionally drained either. I suspect the transition from the canal being infrastructure maintained by locally-stationed full time professionals to a pleasure cruiseway which the new waterways board was willing to devote a bit of time to maintaining only after the previous one had spent several years trying to get it shut down probably had as much impact as the Blitz on the work crew having no idea about plugholes...
Institutional memory is not information or documents - it's people.
Every single real-world process has implicit knowledge. And you can't always capture that knowledge of paper.
But, many corporations seem to want to get rid of their most experienced people to save money and have better quarterly results for the stock market.
https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_...
Solid writing.
This is why a lot of government projects take so long, they don't see the value in keeping an in-house team of trained experts (see the difference in train line contruction costs in the UK compared to Spain), until you realised how good they were but you can't hire them back.
Over 5 years, they spend 30-40% less depending on utilization of equipment. (We had a two slow years due to pandemic and weather)
For the work that’s funded by state aid or grants, they use contractors as its a variable workload.
Blew my mind that 22-year olds, fresh out of good-brand universities (their "qualification"), were doing the research on how to cost-cut. Chesterton's fences all over the place were violated. It was sad watching the slow-moving disaster.
To some people, it looks like a lot of wasted money.
If you build the sort of culture where people hang around, they will occasionally have time to tell each other the internal folklore. "When I started, an old guy told me about the plug under the canal".
People who work with software know this. Yeah, there are documents describing the system. No, reading them does not mean you understand the system.
Alas, it's an intangible, and doesn't get counted with the rest of the beans.
From 50 - 1000 employees things worked very well. There was a great deal of continuity in the relationship. Lots of trust and flexibility in both directions. Our product quickly became the best available, by a long margin, and for a couple decades.
But after they passed about 1500 - 2000 employees they got more organized. A formalized organization and process system. Things quickly went downhill. As someone working from outside the company, their processes were incredibly disruptive and inefficient for me. Likewise, their turnover replaced a situation of working with long time friendly colleagues, who knew me very well, to working with people who had no idea what my positive reputation was, my track record of delivering quality without the hammer of conformance, etc.
The project's ambitious upward trajectory stalled. Even then it took about ten years to fall behind other players. But it never recovered. Today it operates deep in the shadows of others.
Virtually every employee I worked with was wonderful, inclined to be as supportive as restrictions allowed, etc. But the institutionalization smothered the organizations ability to operate with any flexibility, no matter how dysfunctional or value destroying the results.
The company became like someone who has permanently lost the ability to form new memories.
You can't build anything special with someone who keeps forgetting any context. I spent many years cycling between depression and resurrected determination trying. But finally gave up.
One thing I notice is it's very easy to add additional layers of relatively small actual value that look like lots of value. So you might say you've earned a degree of respect by working consistently for years, and people don't mind that you don't always update your status reports. But then if you don't defend vigorously in the org, someone might come in who does very little work in terms of company output, but always gets your status reports in and reports up the chain so you "don't have to". And that looks like value to the person above, but it wasn't really. And now you have a new boss.
Was that an LLM reference or is it the myopia in me?
There's a parallel here, either way. All the documentation in the world will not make a person, or llm session interchangable.
In some sense the new way of coding feels like building a big org with people without memory. If you can document the process perfectly, there is a holy grail out there somewhere.
Or maybe there isn't.
└── Dey well; Be well
Despite the majority of the company's early successes, which still defined the company, coming from individual creatives.
Then the whole company completely missed a major industry wave they had been perfectly built and positioned to ride. My product's last dozen+ years of struggle/stagnation, despite delivering modest progress where I still could, was not a small aspect of that epic whiff.
I like this. But reality is more like companies have Alzheimer's disease. They're losing memory on top of not being able to form new ones. Slowly at first and when people notice the symptoms it's already too late.
When Kurt Cobain shot and killed himself in 1994, his widow went on TV to say that what he did was wrong. Cobain’s death then did not result in others’ killing themselves (known as the “Werther effect”). Robin William’s suicide 20 years later, however, did result in more deaths as the story spread widely.
But otherwise, I do agree that we should preserve institutional memory and that putting processes over people can lead to forgetting.
Thing is, I've seen this time and time again. A lot of us have, I suspect, seen this story repeatedly in our own current or prior organizations. Someone who worked for the company for a decade, or who had intricate knowledge of prior M&As, technology stacks, codebases, customers, and/or processes who was thrown out as a line on a spreadsheet.
I do my best to buck the trend in my work by documenting everything (the "bus problem", as I call it) I can and sharing it with my colleagues, but the continuous churn of M&As and software deprecation means that documentation is often discarded with old systems rather than reviewed and preserved, thus further erasing any lingering institutional memory.
To be fair, this issue isn't likely to kill a company outright on its own. Sure, it could lead to a serious problem and cost gobs of money, but it rarely kills a company or project outright in the process. Still, it's preventable harm just by keeping some additional persons around for knowledge or managing an organizational library of content. It's ultimately such a minor cost in the grand scheme of things that shareholders won't really care. $1m a year for a corporate library and a handful of staff to support it is peanuts on a multi-billion dollar enterprise balance sheet, and will almost certainly improve outcomes across the organization as a whole.
Or to put it far more simply: institutional memory is the fat on an animal. Cutting fat down to the bone leaves the animal weaker and vulnerable as a result, as it has no emergency stores of energy (or in this case, knowledge) to pull from and thus must cannibalize itself in times of crisis.
This starts out looking very attractive because you've cut costs and your profitability is up. Then it all suddenly goes to shit and your planes crash.
A long time ago I worked on a software product to try to record design decisions in the creation of long-lived artefacts, such as nuclear reactors. The idea being that engineers looking to make a change 20+ years later (when the original engineers had retired) would understand why something had been designed the way it had.
The project was not a success, despite some initial enthusiasm from some commercial sponsors. I think this was due to 2 main issues:
a) The software infrastructure of the days wasn't really up to it. This was just before wikis, intranets etc, which would have made everything a lot easier.
b) The engineers working on the design had no incentive to record the rationale of their decisions. It was extra work with no benefit for them (any benefit was by someone else, years down the line). In fact it could make it more likely for them to be held liable for a bad decision. And, in an age of cheap outsourcing, it could reduce their job security.
The second problem was by far the more important and I don't know how you get around it.
Related, you have to make it benefit the current generation of engineers as well. Want to get your thing built? Deliver your designs in format X, which also happens to support long term reference.
None of this is easy… but it is actually possible to align incentives like this. You just have to do it from very high up, and with a very firm hand.
Unfortunately that is rather easy to game. Especially in an age of LLMs.
I'll age myself here but about exactly 20 years ago I experienced exactly this. No LLM in sight.
Boss wanted to ensure we document something for our client. Cow-orker that didn't want to spend time writing boring documentation that might obsolete him (we were consultants working at a client) created an awesome looking table of contents structure and pages on the wiki. The first few entries had actual pages that had content in them. Of course they were also very "introductory" i.e. "naturally lean" on real content.
I checked every single page. Almost all of the rest of them were entirely empty pages.
He got through with this BS and it probably wasn't the first time (I was much more junior than him at the point) and it won't have been the last time. He got out of work he didn't want to do and nobody was the wiser until he was very far away.
LLMs just make this worse but they're definitely not required.
That seems like an upstream problem, if he was genuinely concerned about being "obsoleted" look upstream to why that might be the case, and fix it so people aren't looking over their shoulder worried they will get swapped out by the next cog.
The guy was pretty good at "dodging" work he didn't like in general ;)
Overall the consulting company we were with was pretty good about keeping their clients/projects going and keeping our consultants in the same projects for a long time.
Whenever I find similar I call them "Rad Docs" cause Rad was the guy's name
Doesn't really pass the market sniff test. Ceteris paribus, I'm pretty sure I'd pay at least ⅒ for a working but undocumented reactor in most situations.
c) Work tends to proceed in drafts/iterations, with earlier initial ideas refined and processed over time. You can record the reasons behind the initial ideas, but eventually those ideas become implicit background and new ideas are diffs against them. It's hard to make all of that explicit and keep it up to date.
You'd think something like wikis would help here because you can see the history. But eventually as you move around in the design space you can make moves that seem obvious but cut across multiple dimensions simultaneously. And it's hard to note something like that well in a wiki commit.
A long form lab notebook (or doc) is often useful here.
When approaching a large cryptic codebase, the intention and assumptions are usually more important than the details. And these are really quite simple to write down.
- Goals a Problems
- Constraints
- Chosen high level approach
- Relevant files, functions and resources.
- Future concerns
There is the worry about maintenence, but i think the history itself may be valuable.
If a design change happens, or a new major thing is added on-top, make a new document and timestamp it.
Over time this becomes a repository and history of the design and current state of the system.
Its harder to read and understand than a properly updated doc that is reflective of the current state, but its orders of magnitude better than not making docs because its annoying.
One way is by recording video calls where the decisions are made with transcriptions which can be interpreted by LLMs.
Another is generating docs from tests.
Yet another is making a rule that answers to code review questions must be turned into code comments.
There's also a huge amount of untapped potential for turning conversations in slack into documentation.
The issue with wikis, etc. is yea, that it isnt a side effect of the work itself. It is work, and thankless work at that.
I imagine this principle can probably be applied to nuclear power plants too but I dont really know how they work or what software they use so it's hard to come up with examples.
1. Institutional memory does seem important. It feels like lots of government things are bad at this – big infrastructure projects tend to come in occasional bursts which means each time they are learning from scratch; Japan moves lots of civil servants around every few years which means that no one really remembers how to do things.
2. I think there is a negative side of this too, a kind of ‘institutional trauma’ where some bad memory can cripple an institution. Eg one reason Microsoft lost so much to Google in the early Internet was the memory of the late ’90s antitrust action making them less aggressive. Other companies can have one particular close shave which then causes them to focus too much on avoiding a repeat, a situation you also see writ small in tech teams.
3. I think a bit about production incidents in tech too here. When things are small and the systems are relatively new and they break a lot, this may be ok for the business and recovery can hopefully be fast because it is possible to quickly hypothesise / fix stupid problems. When most silly bugs have been squashed and systems are big and reliable, problems can snowball faster, the business may be more sad about them happening, people can’t understand the whole picture well enough to have good ideas, and the lower base rate of incidents means people will be more stressed or otherwise unable to focus on the actual problem
The organization executed the mission very well. They had solid process and controls. They knew why they had the controls. People were really smart and motivated.
The confounding part was that any change was impossible because there was an expectation of that level of rigor for new things. Literally took a year to approve using Google.
Lots of “wise old men,” lots of rituals, and “we just do things this way” practices. Long apprenticeships, tons of training, and a metric shitton of paper trails.
But I could always get an explanation for why something was the way it was. Not many Chesterton’s Fences, and some damn interesting stories.
It could be maddening, especially for a software engineering manager (Yours Truly), but they got outstanding results. In fact, they suffered some real damage, when they tried to leave a lot of that behind, and have since returned to “the old ways.”
It's a real problem for any culture when the explanations for why things are are either forgotten or actively suppressed. This is what tradition means. Sadly, in recent history, tradition has been attacked as thoughtless, if quaint convention, and discarded without prior investigation when it stands in the way of something someone wants. This view makes it easier to discard it in order to fill the void with something else; power becomes the rule. And sure, most people do follow convention without a deeper or thorough grasp of its reasons -- it is difficult to expect too much from the average person in this regard -- but part of what a cultural elite is for is to maintain tradition, to transmit it to the next generation along with its explanations, so that it can develop, so that it avoid both the calcification into mere empty convention as well as the loss of the wisdom that constitutes is. A cultural elite acts like a kind of referee to modulate cultural developments in light of prior knowledge.
In that company, age was actually celebrated and respected (kind of alien, to Silicon Valley).
[1] https://web.archive.org/web/20111228105122/http://wrttn.in/0...
freedomben•5mo ago
saulpw•5mo ago
vjvjvjvjghv•5mo ago