4 ms·
Their hardware was essentially fixed, well defined, and limited in scope. They reviewed every single piece of code many, many times. They were draconian about
by Cacti 10y ago
Their hardware was essentially fixed, well defined, and limited in scope.
They reviewed every single piece of code many, many times.
They were draconian about memory handling, loops, preprocessor directives, and recursion.
All functions had to check all return types from other functions.
No more than one level of pointer dereferencing.
All code bodies had to fit on a piece of paper.
/edit should add, they used their tools thoroughly: compilers were run on max warning levels and absolutely no warnings were accepted, ever. They also used several static analysis tools on the code (under-appreciated these days!).
- yardie 10y agoI'd also add they had excellent, mature coders. None of this crunch time bullshit, though I'm sure it happened. I've been on one of those binges. If another coder hadn't seen my errors, due to diminishing sleep, I'd probably keep banging my head against the wall. Just compounding the situation.
- Jtsummers 10y agoAnecdotal generalization: I've seen better code from the 40-hour-a-week guys than the ones that do 80 hours of overtime each week. That doesn't mean the former finish first, they usually don't. But their code tends to be more thoughtfully constructed. They have a vested interest in not spending their time in the office, and that means minimizing debugging time along with coding time. When you're in a hot field with lots of competition, maybe those sprints make sense. But in the field of NASA-type systems, there may be a deadline, but it's rarely urgent. This gives the developers much more time to step back, breathe, and think.
- danudey 10y agoI can't count how many times I stayed late at the office working on a problem for 6 hours straight, and then after a good night's sleep found and fixed the issue after 20 minutes at work the next day. Sleep is king.
- yardie 10y agoI have latent dyslexia which seems to emerge after too many hours at a computer screen. I've come back from a good nights rest to find variable names that are just slightly misspelled, recursive loops that are unreachable, and functions that are incomplete because I was distracted by a bug hunt.
- mywittyname 10y agoI think we all do this to some degree. When I'm working on a difficult problem, it feels like Christmas Eve, because I know I'll wake up and have the solution coded up before my coffee is gone.
- finishingmove 10y agoAn article was recently featured here, that said functions were limited to 60 lines. That seems like way too loose of a restriction considering the possible consequences.
- Cacti 10y agoOne page of text at standard size, with standard style (one statement or declaration per line). Which is roughly 60 lines. If you follow their other guidelines (no recursion, fixed sized loops, etc.), then it can take you several lines to do much of anything, so 60 isn't very long. Those things combined means you're basically saying that each function should only be attempting to do 2-3 significant things, which seems about right to me, as most people can't fully understand more than 3 things simultaneously at one go.