
The Fortnightly. 04.04.23
Highlights: Comic of the fortnight. The "Knowledge is an Investment" metaphor. QWERTY keyboard and path-dependence. And, Why not investing in tests is a "False Economy"!
Hope you’re having a great week so far. This is a fortnightly newsletter in which I share interesting articles, talks, quotes from literature, comic strips 😊 and many such things that I stumbled upon.
My favourite comic of the fortnight:
The “Knowledge is an Investment” metaphor
I enjoy re-reading some of the old classics. Mostly, when I get reminded of a vague idea that I fuzzily remember having read in one of the books. Most of the times such triggers are some or the other conversations i’ve had with interesting people.
I remember I’ve read it somewhere. I find my eyes racing along the bookshelf, making a mental note for the n-th time that I need to clean it. I digress.
I’m feeling quite confident and take out The Goal, by M. Goldratt. Flipping through the pages, hoping that I highlighted it, I find it quite sooner than expected.
It reads…
“Money for knowledge has us [managers in a manufacturing company] stumped for a while. Then we decide it depends, quite simply, upon what the knowledge is used for. If it's knowledge, say, which gives us a new manufacturing process, something that helps turn inventory into throughput, then the knowledge is operational expense. If we intend to sell the knowledge, as in case of a patent or a technology license, then it's inventory. But if the knowledge pertains to a product which UniCo [the company] itself will build, it's like a machine to make money which will depreciate in value as time goes on. And, again, the investment that can be sold is inventory; the depreciation is operational expense.”
— M. Goldratt, The Goal
The Goal posits that the goal of any [for-profit] organisation is to make money. And that all other initiatives are a means of achieving this goal. An organisation does so by increasing the throughput, while simultaneously reducing both its inventory and operational expenses.
In other words, throughput is the money coming in. Inventory is the money currently inside the system. And, operational expense is the money we have to pay out to make throughput happen.
While it is relatively simpler to visualise this in a manufacturing setup (the original premise in which the book is written), for knowledge-work like in software engineering it is relatively complex to define.
However, “knowledge is an investment” as a metaphor is pretty befitting. In [another classic] The Pragmatic Programmer, Andy Hunt and Dave Thomas take the investment metaphor and describe keeping up to date with your knowledge as “Managing a Knowledge Portfolio”. And just like with an investment portfolio, their advise in managing your knowledge portfolio is to:
Invest regularly. “Even if it’s just a small amount, habit itself is as important as the sums”, they suggest. Try to read more often than you do now. Go attend meetups. Follow some good twitter and linkedIn (*swallows a big lump) accounts for byte size knowledge streams.
Diversify. Your value grows multifold with more diverse things that you know. Don’t just stop at learning in depths about the tech that you’re working on currently. Explore. Get curious about what other tech is being employed in your project, or in your organisation, or around other companies that you find interesting. Networking and attending good meetups helps a lot in this regard.
Manage risk. “Technology exists along a spectrum from risky, potentially high-reward to low-risk, low-reward standards. It’s not a good idea to invest all of your money in high-risk stocks that might collapse suddenly, nor should you invest all of it conserva- tively and miss out on possible opportunities. Don’t put all your technical eggs in one basket.”
Buy low, sell high. “Learning an emerging technology before it becomes popular can be just as hard as finding an undervalued stock, but the payoff can be just as rewarding”. Being an early adopter has a great payoff! But remember to manage risk.
Review and rebalance. Software engineering as an industry is quite dynamic. Your next project might be very different from your current one. Other companies might have started looking into some other tech. The framework you were proficient in might be at the stage of its retirement now. Always review your knowledge and keep abreast.
A few helpful trends to watch out for in this regard:
Thoughtwork’s tech-radar
Gartner’s trends
The above by no means is an exhaustive list. But it should be enough get started with.
QWERTY keyboard and Path-Dependence
Path dependence is the dependence of economic outcomes on the path of previous outcomes, rather than simply on current conditions. Many a times, the choices made earlier constrain later events or decisions. In a path dependent process, “history matters”.
Take for example, a town that is built around a factory. Ideally, a factory is located at a distance away from residential areas for various legitimate reasons — primary ones being safety and costs. However, factories are often build first, and then the worker’s homes and amenities are built close by — resulting in a town built around a factory. Bhilai, a city in Chattishgarh, India, is a great example of such a development; The foundation of which was laid in 1955 when the Indian government signed a historic agreement with the Soviet Union to establish a steel plant near the village.
Another example of such path-dependent decision is the QWERTY keyboard. The arrangement of letters on QWERTY keyboard was in fact designed to slow down the typing and to avoid jamming of ribbons in a typewriter. People were trained on a QWERTY keyboard. Their habits became so sticky that despite other more efficient keyboard designs like Dvorak, QWERTY continues to persist dominantly in the market.
Not investing in automated tests is a “False Economy”!
Writing tests (even if you’re not doing TDD; although you should whenever possible) is one of the best investments that you can make for your team. At some point, and quite early IME, not having tests begins to cost much higher than what you saved by not writing them in the first place — aka False Economy!
Quite hilariously, within a few days of posting this tweet, I had to download my account statement from HDFC bank’s app. And what do I find?

Stalemate!
I’m very confident this worked earlier and is buggy only recently. So what changed? — Enhancements without the safety-net of tests!
Quite interestingly, having no-tests leads to further path-dependent decisions. Your manager might decide to get more manual QAs, or maybe the release will sit longer in UAT now — all in turn increasing inventory and reducing throughput — an antithesis of Continuous Delivery!
That’s a wrap! Thank you for reading.
Wishing you great days ahead! 🍀