Live data from Hacker News

‘Laws’ of Software Development

exceptionnotfound.net

31–40 of 74 posts

Re: ‘Laws’ of Software Development

#32
post #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 implementation…

This is better observed as having a separate standards compliance check and 'reference implementation'.

The standards compliance check evaluates if a given program or module complies with the written standard. The reference implementation is free to be more fault tolerant or otherwise assume that invalid input is allowed to produce undefined results (as long as they are not clearly the wrong behavior).

Re: ‘Laws’ of Software Development

#35
Linus' Law loses water when you consider using formal specifications, model checking, and -- if you have the budget and time -- proof. These systems and languages have come a long way and are far better than any human at checking your work and telling you where you are making mistakes.

Model checking in particular, in my limited experience using it, is effective at this.

You can eliminate many (not all... nothing's perfect) of these rules of thumb with a little math and analysis[0].

[0] https://www.amazon.ca/Programming-1990s-Introduction-Calcula...

Re: ‘Laws’ of Software Development

#36

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 fro…

[deleted]

Re: ‘Laws’ of Software Development

#37
post #23

The Gervais Principle is worth reading about: http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-o... Related to the Peter & Dilbert Principles, but darker and told through the lens of the Office.

A seminal piece from that author, and is still relevant 8 years later.

Re: ‘Laws’ of Software Development

#39

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 fro…

I think I'm going to print this out in a big font and hang it in my office.

Re: ‘Laws’ of Software Development

#40

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 pr…

Also, Kernighan's Law: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

Was bitten many times by this one while coding stuff in Scala.
Post reply on HN