Hacker News new | ask | show | jobs
by mbb70 375 days ago
I'm reminded of Rich Hickey's Hammock Driven Development talk, whose thesis for design is basically:

1. Think about the problem and write it all down

2. Research what other people have done to solve this problem

3. Think about it some more and write all that down too

4. Sleep on it

I think the conclusion is the same: Good design does not naturally arise from good programming, and background/domain knowledge is essential

2 comments

That’s pretty much just Feynman’s algorithm but with more steps:

1. Write down the problem.

2. Think real hard.

3. Write down the solution.

Understand the problem...
That is actually his step 1. Step 0 might be write down the problem as stated - but in his writing step 1 is really, "structure the problem." Of course you might have structured it wrong, that is in part where step 2 comes in.
But Uncle Bob said that if I follow his TDD process by rote then my code will automatically attain good design! /s
My view of Uncle Bob is that his advise is attempt improve the average situation, even if taken literally as a gospell.

It’s better that everybody do route tdd, than no tests at all. It’s better to have all methods exactly 3 lines of code, than all methods being 3 pages long.

Uncle bob preaches better baseline, experience will teach all the nuance.

Disclaimer: I dont do tdd. But it’s nice method of work to know.

every time i heard a talk or read something of his I always come out with the impression that he has no idea about anything. Most of what he says sounds like bullshit to me.
His advice needs to be contextualized within the 90s and 00s. He was correcting (or overcorrecting) for issues that were prevalent then: methods that were hundreds or thousands of lines, processes with hundreds of hours of design work without writing a single line of code, no testing (or maybe handing to a QA to test, if you’re lucky), and tangled messes of logic the author thought could be saved by adding a comment.

Much of his advice seems silly or extreme now, but I believe that’s because he (and his cohort of likeminded programmers) won. Things have improved dramatically. The extreme advice worked. The problem, of course, is that you can’t just declare victory and move on. So now we have The Church of TDD and the like.

It's silly and extreme and dogmatic because that's what he's like as a person. This is as much reflected in his political views - not just coding.

It might not be such a problem in other professions but good software development is heavily trade off oriented so dogmatism is especially dangerous.

It's a shame because TDD is pretty good but he puts people off it.

it is contextualized in around that time. That was the time I was actually learning to program. Didn't make sense then either. Doubling the line count (functions should contain a single statement) while also fragmenting it all around the place never did strike me as "better". His code was just straight up unreadable