Three Laws of Software Development
secretGeek .:dot Nuts about dot Net:.
home .: about .: sign up .: sitemap .: secretGeek RSS

Three Laws of Software Development

Inspired by Mitch Denny -- and based upon asimov's laws of robotics.

  1. A developer must write code that creates value.
  2. A developer must expend effort making their code easy to maintain, except where such expenditure will conflict with the first law.
  3. A developer must reduce their code to the smallest size possible, as long as such reduction does not conflict with the first two laws.

Everytime you break one of these laws, Bill Gates kills a puppy.





'http://' on Fri, 05 Jan 2007 10:53:22 GMT, sez:

Hilarious! I printe this out and stick it on my cubicle walls



'Jameson' on Fri, 05 Jan 2007 12:06:09 GMT, sez:

I think I may break these laws on purpose just so I can make Bill Gates do things.



'martinus' on Fri, 05 Jan 2007 19:50:16 GMT, sez:

Very good :-) Just remove "expend efford" from the second rule, then it is perfect



'Keith' on Fri, 05 Jan 2007 20:18:58 GMT, sez:

Does he kill his own puppies or does he kill others?

if (Gates.puppies_killed == Gates.own_puppies)
{
Laws.break();
} else {
Laws.follow();
}



'hey keith' on Sat, 06 Jan 2007 04:22:35 GMT, sez:

SELECT Count(*)
FROM DeadPuppies dp
INNER JOIN People m ON dp.MurdererID = m.id
AND m.Name = 'Bill Gates'
WHERE dp.OwnerID = dp.MurdererID

but surely the puppies don't deserve to die just because you don't like their owner? Unless it's to put them out of their misery.



'Jarrett' on Sat, 06 Jan 2007 04:31:33 GMT, sez:

I disagree with "hey keith's" basic architecture.

You'd be more likely to have a Puppy table, and a Puppymurders table, rather than a DeadPuppies table.

Particularly if you're interested in things like the OwnerID of the puppy you probably want to track live puppies, not just dead ones. Hence this system will be hard to maintain.

As punishment for this, I have written to Bill Gates with instructions that he kill one puppy.



'the G man' on Sat, 06 Jan 2007 10:01:02 GMT, sez:

>Does he kill his own puppies or does
>he kill others?

He's the richest man in the world. surely he pays someone else to kill the puppies for him.

I expect he randomly select a puppy to kill from all of the puppies he sees on the given day.



'hobit' on Sat, 06 Jan 2007 16:31:54 GMT, sez:

3. A developer must increase the performance of their code as high as possible, as long as the result does not conflict with the first two laws.



'offshore ontwikkeling' on Thu, 20 Dec 2007 20:07:27 GMT, sez:

Ain't Bill killing enough nerves, he has to kill puppies as well? I'm a programmer but never had such big problems with my work as Gates has with his windows and it's not even him programming! Hire me, you puppy killer!




name


website (optional)


enter the word:
 

comment (HTML not allowed)


All viewpoints welcome. But the right to delete any post for any reason is reserved. Don't make me do it. Comments may be republished, emailed to your loved ones or printed and used as toilet paper. Who reads this legal bit anyhow?

TimeSnapper is a life analysis system that stores and plays-back your computer use. It makes timesheet recording a breeze, helps you recover lost work and shows you how to sharpen your act.

TimeSnapper won last year's Developer Competition at Larkware.com, and is used by over 10,000 people.

Articles

Alan Kay on 'The Camel has Two Humps' Alan Kay on 'The Camel has Two Humps'
is the music inside the piano? is the music inside the piano?
The Bluffer's Guide To Yegge: Business Requirements R Bullsh*t The Bluffer's Guide To Yegge: Business Requirements R Bullsh*t
Prototype Ready for Launch Prototype Ready for Launch
Idea: a poor man's eye-tracking heatmap for win forms Idea: a poor man's eye-tracking heatmap for win forms
'The Register' seems to have plagiarised Mary Jo Foley 'The Register' seems to have plagiarised Mary Jo Foley
A magic goal for software businesses A magic goal for software businesses
A to Z of Software Methodologies A to Z of Software Methodologies
TimeSnapper in Music! TimeSnapper in Music!
Fixing problems can give you a glimpse of something terrible Fixing problems can give you a glimpse of something terrible
Web Tablet: Toward Less Complexity Web Tablet: Toward Less Complexity
Do they store the code for TFS in TFS? Do they store the code for TFS in TFS?
Sudden TimeSnapper Discount! Sudden TimeSnapper Discount!
How Can Microsoft Beat Google? How Can Microsoft Beat Google?
TimeSnapper 3.1: Attack of the the Red/Green Stripes TimeSnapper 3.1: Attack of the the Red/Green Stripes
21 tools used in our MicroISV 21 tools used in our MicroISV
Lost Treasures of the DOS World: tree! Lost Treasures of the DOS World: tree!
The Virtual Machine Machine and the Virtual Virtual Machine The Virtual Machine Machine and the Virtual Virtual Machine
Should Linq To Sql Go Should Linq To Sql Go "Open Source"?
Redux: New Synchronisation Idea Overlooked By Microsoft Redux: New Synchronisation Idea Overlooked By Microsoft
New Synchronisation Idea Overlooked By Microsoft Live team New Synchronisation Idea Overlooked By Microsoft Live team
Visual Studio UX Taskforce, Office UX Taskforce... etc. Visual Studio UX Taskforce, Office UX Taskforce... etc.
How to be Jeff Atwood How to be Jeff Atwood

Archives .: secretGeek :: Complete Archives :.
25 steps for building a Micro-ISV 25 steps for building a Micro-ISV
3 minute guides -- babysteps in new technologies: powershell, JSON, watir, F# 3 Minute Guide Series
Top 10 SecretGeek articles Top 10 SecretGeek articles

Downloads

TimeSnapper -- Automated Screenshot Journal TimeSnapper.com    
Version 3.1: instant productivity profiles

ShinyPower (help with Powershell) ShinyPower
Now at CodePlex

Next Action NextAction
Managing the top of your mind



[powered by Google] 


World's Simplest Code Generator (html edition) World's Simplest Code Generator
Gradient Maker -- a tool for making background images that blend from one colour to another. Forget photoshop, this is the bomb. Gradient Maker
How to be depressed How to be depressed
You are not inadequate.



Recommended Reading

The Best Software Writing I
The Business Of Software (Eric Sink)

Recommended blogs

Jeff Atwood
Reginald Braithwaite
Joseph Cooney
Phil Haack
Scott Hanselman
Julia Lerman
Joel Pobar
Eric Sink
Joel Spolsky
Des Traynor

Aggregated Links

programming.reddit.com
dzone
dot net kicks

Human Link Machines

interesting finds
a continuous learner's weblog
arjan's world
n links today
new and notable
morning coffee
learning .net
weekly link post
(my del.icio.us account)

LinkedIn profile
 
home .: about .: sign up .: sitemap .: secretGeek RSS .: © Leon Bambrick 2006 .: privacy

home .: about .: sign up .: sitemap .: RSS .: © Leon Bambrick 2006 .: privacy