Tom Ritchford
2 min readDec 16, 2021

--

I still can't buy the 70/30 split - it seems madness! (With all due respect, of course.)

Some significant portion of my design occurs subconsciously as often I will get some assignment, continue on other work for a few days, and then suddenly see how it gets done.

Some portion of my design is at the terminal, because I make it a point in key decisions to try a couple of different sketches to see which looks better. Determining edge cases is entirely done at the terminal while I write code.

For example, I'm analyzing a large corpus of text for mechanical engineering, so I got to write this bit of fun the other day:

# Seen in the wild
GOOD_DENOMINATORS = {2, 4, 8, 16, 32, 64}
# Conceivable but unlikely
DODGY_DENOMINATORS = {
1, 3, 5, 9, 10, 12, 20, 24, 36, 60, 100, 120, 128, 144, 256, 360
}
DENOMINATORS = GOOD_DENOMINATORS | DODGY_DENOMINATORS

EDIT: 6! I forgot 6!

Unfortunately, I’m still waiting on the results of the first run (it takes 3 days to run on one machine with four fast cores, and though the whole thing is written to shard on as many machines as you like, I did the first run on one machine) so I can’t tell you if parts exist with sizes like 2/3".

But about 2/3 of my working time is either typing in code, or reading code, or reading references to understand APIs for code.

(There’s also the point that many organizations are actively against design documents. I remember once when I was given some huge, underspec’ed project with a hard, arbitrary deadline, and I set up up a collection of local newsgroups (remember those?) and started writing writing design documents. That week, one of the managers came to me and said, “Why are you doing this? No one’s reading these,” (nicely — they were fools, not knaves) and I said, “I’m reading them!” But now that’s not an issue as I’m the CTO. :-) )

--

--

Responses (1)