"How to Build Good Software" is the Singapore's Civil Service College's excellent white-paper on, well, how to build good software. Much of what's in here is well-stated repetition of common wisdom from the field, but there's one standout and novel section.
1/
"Software Is about Developing Knowledge More than Writing Code" presents a really important perspective on software development I'd not seen before: that the complex, messy, iterative process of software development is a feature, not a bug.
Author Li Hongyi argues that getting working software out the door involves making tradeoffs, compromises, and paint-to-cover/file-to-fit style engineering. If you do that work in house, you know where the weak spots are.
3/
But if you outsource this work, the shameful secrets become the property of your contractors, who probably don't even bother to document them. So you lose out on knowledge - and even on the ability to buy that knowledge.
4/
"Even if the system is very well documented, some knowledge is lost every time a new team takes over. Over the years, the system becomes a patchwork of code from many different authors.
5/
"It becomes harder and harder to keep running; eventually, there is no one left who truly understands how it works.
6/
"For your software to keep working well in the long term, it is important to have your staff learning alongside the external help to retain critical engineering knowledge in your organisation."
7/
Inside: Thinking through Mitch McConnell's plea for comity; Further, on Mitch McConnell and comity; Understanding the aftermath of r/wallstreetbets; and more!
A couple days back, I wrote up my best understanding of what happened with /r/wallstreetbets and meme stocks like Gamestop, trying to show how all the different, seemingly contradictory takes on the underlying financial stuff could all be true.
In the days since, a new series of contradictory takes has emerged, these ones disputing the meaning of this bizarre financial spectacle, and likewise what response, if any is warranted as it unfurls.
2/
I think that all of these takes can also be true, and as with the trading itself, reconciling them requires that we widen the frame.