Leon Bambrick posted up a good overview of the way that the MVC pattern works on a simple login dialog. I’ve currently inherited some responsibility for an ASP.NET application that uses a derivative of MVC extensively – the idea was that the controllers could be re-used across various different delivery platforms including things like Windows Forms and the Compact Framework.

Of course, it never happened – but that architectural decision that was made way back in the beginning of time is probably costing the company signficantly now. I’m not against MVC, but I am starting to wonder if there is a set of laws about software development – kind of like the Three Laws of Software Development that could help keep people from making these mistakes.

  1. A developer may not write more code than is absolutely necessary, or, through inaction, allow more code to be written than is absolutely necessary.
  2. A developer must reuse software and ideas, except where doing so conflicts with the first law.
  3. What would the third law be?

9 Responses to “Three Laws of Software Development?”


  1. A developer may use his imagination to arrive at cool new solutions, except where doing so conflicts with the second law.

  2. Mitch Denny Says:

    Joseph – you are evil!

  3. Mitch Denny Says:

    Hi Dirk,

    That looks like a pretty good one – definately a candidate!

  4. William Ramirez Says:

    Never fix any hardware


  5. Actually I published the same thing some time ago. A Login MVP architecture for Windows, Web and Unit Test both in my blog (http://manicprogrammer.com/cs/blogs/heynemann/archive/2006/08/11/22.aspx) and CodeProject(http://www.codeproject.com/useritems/mvpBasicDemo.asp).
    I´m not saying that Leon copied my article or anything. Just thought of saying it if anyone wanted another source.

  6. Mitch Denny Says:

    William – good one. But what about embedded software development? And writing device drivers? :)


  7. [...] says he was inspired by Mitch Denny — and that the laws are based upon asimov’s laws of robotics. He also says that [...]

  8. Ashok Says:

    Never work in an organization which is not using agile software development methods ( which is not agile)

    (:-)


Leave a Reply