Live data from Hacker News

‘Laws’ of Software Development

exceptionnotfound.net

11–20 of 74 posts

Re: ‘Laws’ of Software Development

#12
post #6

I'd be tempted to add Brooks' law, that adding staff to a project that's already late just serves to make it even later.

My favorite one from him is: "How does a project get one year late? One day at a time." as it captures the priority decisions that you make consciously or unconsciously all the time.

Re: ‘Laws’ of Software Development

#14
The 15 laws succinctly:

Do what is simplest, and remember, everyone is attacking you with stupidity. Most of your simple work will be done quickly, a small amount will be done in the time remaining. You will think you are better at doing all this than you are. To wit, seek the help of others to talk you down-- accept things from others. You'll need it because eventually you become a stranger even to yourself. And from there you'll rise to the level of stupidity you detested not too long ago. Or maybe some unwise fool will intercede on your behalf, dragging you up to their level of idiocy. This will all take longer than you think, because all along the way you underestimated your skills, but don't worry there'll be plenty of work to fill the time. Most of it will be petty, and you'll fight over the least essential things, but that's because you chose to work in a field full of smart people who continually underestimate their abilities.

Re: ‘Laws’ of Software Development

#17
Missing some big ones:

Gall's Law: "A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system."

https://en.wikipedia.org/wiki/John_Gall_(author)#Gall.27s_la...

Conway's Law: "organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations"

https://en.wikipedia.org/wiki/Conway%27s_law

Cunningam's Law: "the best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer"

https://meta.wikimedia.org/wiki/Cunningham%27s_Law

Re: ‘Laws’ of Software Development

#19
post #9

Earlier quoted context omitted.

I would agree with this. It's broader and still applicable.

Dunning-Kruger actually said everyone is bad at self evaluation, not just the low skilled.

And that neatly applies to his law of argumentative comprehension, which should really read "The more people _think they_ understand something, the more willing they are to argue about it, and the more vigorously they will do so."

Re: ‘Laws’ of Software Development

#20
Careful with Postel's Law: it brought us a lot the mess we have with web standards.

Quoting wikipedia https://en.wikipedia.org/wiki/Robustness_principle:

> In RFC 3117, Marshall Rose characterized several deployment problems when applying Postel's principle in the design of a new application protocol.[3] For example, a defective implementation that sends non-conforming messages might be used only with implementations that tolerate those deviations from the specification until, possibly several years later, it is connected with a less tolerant application that rejects its messages. In such a situation, identifying the problem is often difficult, and deploying a solution can be costly. Rose therefore recommended "explicit consistency checks in a protocol ... even if they impose implementation overhead".

Post reply on HN