Blogs / Personal blogs

Graham Lee

sicpers.info

Writing code is hard. Software engineering is much harder. I'm Graham Lee, D.Phil. I help programmers become software engineers, software engineers become senior software engineers, and technology leaders ensure their teams are effective. I've done this at Facebook, Apple, and Oxford University, and now I can do it…

Popular posts
14
Total points
2,448
HN comments
1,645
Rank
#642 personal

Visit sicpers.info → RSS feedOn Hacker News Nov 2017 – May 2026

Software Engineering 10Career & Management 5Tools & Productivity 2Tech Industry & Business 2Society, Policy & Culture 1Open Source 1

1

Inheritance Often Doesn't Make Sense

There are three different types of inheritance going on. Ontological inheritance is about specialisation: this thing is a specific variety of that thing (a football is a sphere and it has this radius) Abstract data type inheritance is about substitution: this thing behaves in all the ways that thing does and has this…

4

Zen and the Art of Software Maintenance

In one part of the book Zen and the Art of Motorcycle Maintenance, which is neither about Zen nor motorcycle maintenance, there are two motorcycles and two riders. John Sutherland is a romanticist who appreciates the external qualities of his motorcycle: its aesthetics, and its use as a vehicle. The narrator is a…

5

On UML

A little context: I got introduced to UML in around 2008, at an employer who had a site licence for Enterprise Architect. I was sent on a training course run by a company that no longer exists called Sun Microsystems: every day for a week I would get on a coach to Marble Arch, then...

6

The Atoms of Programming

In the world of physics, there are many different models that can be used, though typically each of them has different applicability to different contexts. At the small scale, quantum physics is a very useful model, Newtonian physics will yield evidently incorrect predictions so is less valuable. Where a Newtonian…

7

The challenges of teaching software engineering

I've just finished teaching a four-day course introducing software engineering for the first time. My plan is to refine the course (I'm teaching it again in October), and it will eventually become the basis for doctoral training programmes in research software engineering at Oxford, and part of a taught Masters. My…

9

YX Problem

Software people are always all up in the XY problem: someone asks about how to do X when what they're really trying to solve is Y. I find the YX problem much more frustrating: where software people decide that they want to answer question Y even though what someone asks is question X. I've seen...

10

On null

I've had an interesting conversation on the topic of null over the last few days, spurred by the logical disaster of null. I disagreed with the statement in the post that: Logically-speaking, there is no such thing as Null This is true in some logics, but not in all logics. Boolean logic as described in...