Abbreviated variable names are fine

20th Jul, 2020

Should you use full variable names, or abbreviated? The answer: doesn't matter.

Who uses UML?

16th Jul, 2020

Who uses UML? The answer may surprise you! Unless you've spent any time working as a programmer, then the answer will not surprise you. Not at all.

C.A.R. Hoare on programming language design

14th Jul, 2020

C.A.R. Hoare thinks program languages should primarily support design and documentation, with programming being a distant third.

Reading "The Power of Two Choices," by Michael David Mitzenmacher

20th Feb, 2020

Use two choices. It's easy to get hugely better performance by moving from one choice to two choices. It's very hard to do better.

Notes on Development Sequence in Small Groups by Bruce W. Tuckman

12th Feb, 2020

Forming. Storming. Norming. Performing. Every writer who writes about teams all reference this one (and only this one) article, and those four stages. It's foundational, and it rhymes.

Heisenbugs – tldr: just run it again

7th Aug, 2019

The TLDR is simple: if you have a disappearing/reappearing bug, just run it again.

Niklaus Wirth proves that better software is possible, in "A Plea for Lean Software"

15th Jul, 2019

This paper reads like an old man yelling at clouds, but then, half way through, he simply writes a better cloud. (This metaphor is pretty awkward given cloud computing.)

Inside the (1984) Japanese Software Industry

18th Jun, 2019

I went to dig into some of the sources cited in Peopleware (see my previous two blog posts), and I fell in love with this 1984 article on Japan's software industry and Hitachi Software Engineering. It's a look into a company that feels like peak-era IBM: much bureaucracy and even more success.

Horizontal and Vertical Motivators, and Hygiene

15th Jan, 2019

I'm not in management, but damned if I don't love a good management paper. Today it's Frederick Herzberg's "One More Time: How Do You Motivate Employees," where I learn to not kick an employee.

Reading: Software Engineering Under Deadline Pressure, by Scott H. Costello

2nd Nov, 2018

An 1984 paper that models the time it takes to complete a project, and show what happens when you pull are up against bad deadlines. The answer will not surprise you!

The Post-CAP Reading List

12th Dec, 2017

Eric Brewer and Daniel Abadi expand our notions of what the real trade-offs are in the CAP theorem.

The 7000 page Harry Potter book that never was

12th Dec, 2017

An scientist's idea of literary criticism is different from most people's. It involves math.

GUI: Taking Lessons from Hand-Drawn Animation

21st Mar, 2017

Chuck Jones inspires UI designers in this classic paper from Ungar and Change.

Early example of Duck Typing in 1991's SELF

21st Mar, 2017

In 1991 Ungar and Smith wrote about the experimental programming language SELF, and in it described duck typing, callng it behaviorism

David Parnas and the roots of good programming design

10th Jul, 2016

This paper is considered seminal in Object Oriented Design, but Parnas never mentions objects, and his example program is described in procedural programming terms. The lessons in this paper are applicable to *all* programming methodologies. It's just about smart design decisions.

Reflections on Trusting Trust by Ken Thompson

7th Jul, 2016

You can't trust Ken Thompson. He'll prove it.