I feel like Kowloon is a decent metaphor for software design at most typical large SaaS companies: small changes accreted over time that lead to an impenetrable, wandering structure that only the residents (developers) truly understand.
Nicholas Negroponte's The Architecture Machine goes deep into analogizing software and housing along the dimension of "improvised / iterated on by the users" to "waterfall designed by committee"
It's a fascinating comparison—I've seen this happen at companies too. Makes you wonder if imposing something akin to building codes for software development could prevent this kind of sprawling complexity.
i've never seen coding standards properly enforced on any large project, nobody has time to read through and scrutinize 30 files of code every time somebody creates a new feature when everybody has their own work to be doing too. at my last job we had mandatory code reviews and some days half of the entire day was just doing that. it didn't long before reading turned into skimming and skimming just turned into clicking approve.
I was thinking less about self-imposed code reviews and more about regulatory frameworks—principles borrowed from architecture and construction, like mandated documentation, reviews, and inspections.
There's some precedent for this: software in medical devices face strict regulations after incidents like Therac-25.
While most software might not carry the same life-or-death risks, data breaches are increasing in frequency and impact. We should at least be thinking about how we can improve our processes as an industry.
> I was thinking less about self-imposed code reviews and more about regulatory frameworks—principles borrowed from architecture and construction, like mandated documentation, reviews, and inspections.
This exists in automotive, cf. ASPICE. And even more extensively in aviation.
And no, it doesn't help fight sprawl much sadly.
The HN crowd is mostly web and mobile and unaware how broad the software field is, even though software in safety-critical applications of course predates both.
given that it takes medical devices billions of dollars in testing to get to market this is a great way to just crush technology entirely. and even so the FDA is recognizing the error of some of its ways and lowering the barriers to entry for things like hearing aids.
Sadly I have to agree. It has to be mechanically enforced or it doesn't actually last, even with good intentions. (Or a BDFL, but those have scaling limits and Life™ stuff)
Which is a shame because I'm pretty convinced that slowing down and having time to do those reviews is net-good in the (not-very-)long run. Much of the space (and bugs) in even a very well run large project are from accumulating gaps until nobody knows how things truly work - it takes time to eliminate them and end up in a simpler, smaller, more sustainable state.
The problem isn't that we fail to apply the same rules for software development in safety-critical and non-safety-critical contexts. The problem is that we do apply the same software in both contexts.
Gatekeeping the entire industry isn't the answer unless you want to cripple it... but if someone wanted to issue regulations along the lines of "Don't steer your nuclear-powered aircraft carrier with a Windows app," I wouldn't object to that.
A ton of businesses also die or crater in slow-mo after they have loaded up on tech debt and grown. Its less likely in pure software, as the exponential curve outruns the need for exponential devs, but it happens..
I feel like like that recently. Just examining an app that was largely written in isolation and ... I just discovered a new auth endpoint / service that nobody knew we had, and it does not behave logically. It has all sorts of limits that impedes testing / troubleshooting.
Pain ...
For the record I am going to eventually direct this app to the "normal" auth service and fix it all up, but man why is it this way???
I think this applies to anything that is created over more than a single generation. Basically anything the government touches eventually goes this way too.
A great book on this topic is Sweating Bullets by Robert Gaskins, the inventor of PowerPoint. It's amazing how little the core of that program has changed since it was first introduced.
I worked with a similar guy: he would not do anything without first having a conversation about it. According to him, the act of writing notes based on a conversation helped concepts stick in his mind more durably than simply reading what others had written. While I'm sure there's some truth to that, it's absolutely possible to synthesize written thoughts in one's own words without directly interrogating the author. I suspect that the skill of "critical reading" is the missing link here.
I wonder if you and I and the sibling commenter are talking about
dyslexia without realising it? I don't know much about it. A friend of
mine has a similarly wired brain. Definitely there's a spectrum from
very language orientated minds to those who greatly prefer picture,
sound and face to face spoken communications. I wonder if smartphones
and iconic interaction are making us all more dyslexic?
> I wonder if smartphones and iconic interaction are making us all more dyslexic?
No. Dyslexia is an actual learning disability, it isn't a lack of skill, aversion, or a missing habit. Dyslexia causes the reader to have difficulty recognizing words by, for example, scrambling letter order, and making it harder to distinguish similar letters (eg. confusing the mirror image letters b and d, or p and q), and similar visual confusion. It has very little to do with an inability to comprehend sentences.
Smartphones have actually increased the amount of text people read and write, but it is true that for most people little of that time is spent on text in longform formats rather than texts, tweets, memes, and shorter blog posts.
Certainly people who don't read and write longer essays and similar documents habitually are less likely to reach for that sort of reading and writing as tools for thought, and may not be as skilled in their use when they do, but that can generally be remedied with practice.
But none of that means that people are 'more dyslexic'.
There are other mental configurations (like ADHD) that make digesting longform text more difficult; those can sometimes be accommodated by using different (generally more atomized) documentation formats instead of continuous longform prose. Atomized formats will generally also help non-habitual readers, non-native speakers, the young, non-experts, and so on.
Of the four documentation types (tutorials, how-tos, explanations, and reference), only one (explanation) will tend to be expressed as longform text, but it doesn't have to be. Shorter explanations, or breaking the document up into shorter passages, is often well worth doing. There is no downside from making documents easier to digest. For the other documentation types, longer passages are a bit of a "smell" that should be eliminated if possible.
As in other contexts, accommodating a broad range of ability in people produces benefits for everyone, including for those who are more able.
I'm looking for another word, that (ironically) I can't find :)
Something to mean a disposition to think and communicate (perhaps in a
superior way) without recourse to language. Non-linguistic? Illiterate?
(that sounds a bit harsh/critical). But you see the space I'm shooting
for (divorce the idea of illiteracy from "stupidity").
> As in other contexts, accommodating a broad range of ability in
people produces benefits for everyone, including for those who are
more able.
Yes, I'm all for that, minus the use of "more/less able" (and say so
in my example of "coding without code"). But returning to the OP
essay, there's a problem that the structures of business and politics,
formalisms, records, bureaucracies, project management.. are deeply
rooted in the written (and often tortuously long-form) culture that
mobile technologies, short attention spans and nonlinguistic semiotics
are supplanting.
And to me that also suggests a widening class-gap, or rather a growing
gap between modes of understanding the world that determine who are
deciders or followers. It's more to do with technology use than any
level of education or neuro-atypical "disorder" (the way you use
"dyslexia" in a strictly "medical" way.) I hope that makes sense.
Well, one angle is to qualify the use of the term "literacy", as in "visual literacy". Here is an article about the movie Pacific Rim that pointed out how much of the story (or rather, backstory) was visually communicated to audiences via production and character design in ways that entirely whoosh over the head of most viewers focused on dialog and acting:
I've been working on turning my personal website into something more "app-like" (in the same vein as Brian Lovin: https://brianlovin.com/writing/how-my-website-works) and earlier this year I settled on a design that I actually don't hate for a change ;)
Collecting the signatures of readers at the bottom of important documents is pretty effective ;)
In my experience (as someone who enjoys both reading and writing) it's generally a question of demonstrating the concrete value of reading and producing written artifacts. I tend to start with teaching people how to write because it provides the most tangible outcomes: an outline, a plan, a draft, or a memo. When you're able to coach someone into expressing a raw idea of theirs as words on a page, the value of writing becomes clear very quickly.
From there, it's a matter of them warming up to the notion that internalizing the writing of others works in the opposite direction. Once they understand that reading and writing is the process of serializing and deserializing mental models (and that the result of this process is lossy at best, and actively misleading at worst), that's when the switch flips from "casual" to "critical" reader, and "amateur" to "practiced" writer, in my opinion.
> Collecting the signatures of readers at the bottom of important documents is pretty effective
Nice idea, thanks! Is that something you've seen implemented in practice? I'd be curious to see that combined with something like PageRank to determine document importance and credibility.
Back in the pre-internet era this is how bulletins and vital memos were handled in the airlines.
There were a couple of binders in the office for these & everyone had to sign-off on any new documents on their first duty shift since the doc was posted.
(Part of my job was to check the sign-offs and then tap the shoulder of any laggards to say, "Stop what you are doing and go read the bulletins. Now.")
I have seen it in practice, and I've done it in the past: the thing to keep in mind with this approach is that it's generally most effective when the contents of the document will have a critical impact on the reader's work, and when each signatory contributed something to its creation. In the wrong context, asking for a signature can come off as distasteful or overly bureaucratic, so it's best to avoid leaning on this as a common practice.
General Magic (2018) absolutely captures the essence of running & working at a startup doing innovative work on products that were well ahead of their time. Marc Porat is an incredible speaker, and he sheds a ton of light on what struggles they went through (https://www.youtube.com/watch?v=6RaTIF6st4c), and the thought process behind bringing Magic Cap to market. The soundtrack alone (done by Benji Merrison) makes the film worth watching, and it's my go-to album for when I need to get focused. Highly recommend. https://www.imdb.com/title/tt6849786/
It's interesting: we've been running our own take on the Shape Up model for a bit, and when we started out, we did not run a daily standup. After a few weeks, however, we decided to bring the group together every day: it gets lonely when working remotely, and having a daily ritual to center ourselves around is actually quite nice.
Yeah, I guess another requirement, it should be as "invisible" as possible. So you could programmatically interact with Siri in the background and perhaps not notice.