Niko Heikkilä

March 31, 2021

Craftsman's Log – 2021.03.31

I participated in The Principal Developer Masterclass training, which sparked me to write a bit about Little's Law and its impact on agile software delivery. Read the post for tips on reducing the work in progress and increasing your team's throughput. I also received a few pull requests to fix slight factual errors in my post, which reminded me that storing your blog content as Markdown files in your repository (GitHub-as-CMS) is delighting.

I optimised my blog to fetch images from Backblaze's B2 Cloud Storage (S3-compatible object storage) which the Gatsby image pipeline converts into WEBP pictures. Yes, yes, I know, I'm hopelessly addicted to website performance tinkering.

A couple of days ago, Patricia Aas tweeted a hot take.

"A process driven by zero trust doesn't fit well in a team with trust."

Let that sink in for a moment. It's fascinating how fast the pull request based workflow came from something I liked, to something I tried to optimise and cope with, to something I dislike. Their place is in open-source development where trust does not and should not exist. On the other hand, development teams in matured software organisations... well, read this post for more insight.

I stumbled upon this piece describing entropy from 2018. Fascinating how strongly entropy is present in everything we do, software projects included. The paragraphs about the locked city of Kowloon were incredibly relatable.

One example of what happens when entropy increases unchecked occurred in the Kowloon Walled City. For a substantial length of time, Kowloon was abandoned by the government after the British took control of Hong Kong. At one point, an estimated 33,000 residents were crammed into 300 buildings over 6.4 acres, making Kowloon the most densely populated place on earth. With no space for new construction, stories were added to the existing buildings. Because of minimal water supplies and a lack of ventilation (no sunlight or fresh air reached lower levels), the health of residents suffered. A community of unlicensed medical professionals flourished, alongside brothels and gambling dens.

With no one controlling the city, organised crime gangs took over. It became a haven for lawlessness. Though police were too scared to make any attempts to restore order, residents did make desperate attempts to reduce the entropy themselves. Groups formed to improve the quality of life, creating charities, places for religious practices, nurseries, and businesses to provide income. In 1987, the Hong Kong government acknowledged the state of Kowloon. The government demolished and rebuilt the city, evicting residents and destroying all but a couple of historic buildings.

So, entropy (codebase rot) was allowed to accumulate without intervention while rushed incremental development efforts took the stage. Later on, the management ordered the entire project to be rebuilt from scratch. Does it sound familiar to you?

Go (programming language) has a robust and mature ecosystem now that Go Modules have found their place in development. It's one of the reasons why I'm drawn to it time and time again. At least for CLI apps, I won't bother with Node or Python anymore because Go and Rust are much better fit there.

PHP source code repository was compromised with malicious commits pushed. This is sad but not surprising given how easy it's to pretend to be someone else with Git. I'm not contributing to any large open-source projects right now, but still, I think I should start PGP signing my commits again.

About Niko Heikkilä

Software Craftsman and Extreme Programmer. Currently shipping quality code at Futurice. Building proprietary software for a living and loving it as much as free and open-source software. Linux, Windows, and macOS user. Follow this blog for insights on TDD, BDD, DDD, mob programming, technical agility, lean software development, continuous integration, and delivery.

For shorter posts, check my account on Mastodon.