I have noticed a fairly anecdotal negative correlation between the effectiveness of the interactions between a product manager and the engineering team and the frequency with which either party uses the phrase “gathering requirements”. As I am generally curious about how language determines our understanding of the process of software development, I would like to... Continue Reading →
Bayesian Software Architectures: An Exercise of Predicting the Future
I have talked about how software architecture design is a way of constraining the solution space for a project. Here is another angle on this: Any attempt to design a software architecture is an exercise in predicting the future. The usual way to make predictions is to extrapolate data from the past. This is based... Continue Reading →
On Big Companies Claiming To Be A Startup
I have hard people in big technology companies pitch their workplace as being “like a startup”. To me this always seemed like a strange pitch, your big company likely cannot offer the most positive aspects of a startup environment. It might have some of the negative ones, though, which is not a great selling point.... Continue Reading →
The Bright Future Of Property Based Testing
Automated tests are strange creatures, they are code that validates code, written by fallible beings. The messier the system under test, the messier the code required to test it. I have grown increasingly fond of property-based testing as a better technique of automated verification of software and in the following paragraphs I am going to... Continue Reading →
The Extremely Negative Senior Engineer
A cliche of technology projects is the presence of an overly negative senior engineer who will not hesitate to communicate their disapproval, often accompanied by an extremely negative opinion on the realisability of a given project. I have seen managers finding it difficult to deal with such a situation. In this article, I want to... Continue Reading →
Meetings: A Curious Status Symbol
The fact that individuals that are considered high status in an organization often spend a frightening amount of time in meetings has apparently caused some people to draw the opposite conclusion: In some circles, having a lot of meetings seems to have become a status symbol, a sign that one’s input is valued. This observation... Continue Reading →
On Myths and Superstition in Business
Those who are on the quest for wisdom and enlightenment about business life have an enormous array of best-selling books to pick from. Even better, you need to look no further than your LinkedIn timeline, a place full of advice on leadership, management, and decision making. The only catch: Nobody seems to care if these... Continue Reading →
“What does this thing do?”
There are many principles and rules out there that offer guidance about good code design. I am generally skeptical about dogmas. Nevertheless, sometimes when I am deep in the trenches I do find it useful to have a rule of thumb to apply to quickly assess whether I'm on the right track. Such a rule... Continue Reading →
Artificial Scarcity Is Not The Solution
In the digital space, putting a price on non-physical goods has been a challenge at least since the rise of the internet. The market mechanisms of the physical world do not translate well because of one simple missing ingredient: Scarcity. A craftsman creating a table can easily put a price tag on that table because... Continue Reading →
Map Data V: False Assumptions Programmers Make
Famously, engineers tend to make wrong assumptions about a lot of things: Names and time are two well-known examples. Maps are a rich source of edge cases. Especially when you start dealing with global maps, be prepared: That weird situation you assume does not exist? Somewhere in the world, it does. This article is part... Continue Reading →