Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Fundamental Laws of Software Development

Similar presentations


Presentation on theme: "The Fundamental Laws of Software Development"— Presentation transcript:

1 The Fundamental Laws of Software Development
Matthew Jones

2 Who am I? Lead Software Developer for U-Haul International
Working on the MS/.NET stack for 10+ years. Tech Blog: Reading Blog: SGOTI

3 What are Fundamental Laws?
Universal Tech-agnostic Funny (sometimes) True Deal primarily with people, not code.

4 The Basics

5 Simpler is better

6 Is Technology Inherently Good?

7 #1 – Kranzberg’s First Law
Technology is neither good nor bad; nor is it neutral.

8 William of Ockham

9 #2 – Occam’s Razor Among competing hypotheses, the one with the fewest assumptions should be selected.

10 Vilfredo Pareto

11 #3 – The Pareto Principle
80% of the effects stem from 20% of the causes. - Formulated by Joseph Juran

12 Ever feel like users are trying to piss you off?

13 #4 – Hanlon’s Razor Never assume malice for what is adequately explained by stupidity.

14 Time

15 There’s never enough

16 C. Northcote Parkinson

17 #5 – Parkinson’s Law Work expands so as to fill the time available for its completion.

18 #6 – The Ninety-Ninety Rule
The first 90% of the code takes the first 90% of development time.   The last 10% of the code takes the other 90% of development time. - Tom Cargill, Bell Labs

19

20 #7 – Hofstadter’s Law It always takes longer than you think, even when you take into account Hofstadter’s Law.

21 Code

22 Even when it’s good, it’s bad

23 Jon Postel, Internet Pioneer

24 #8 – Robustness Principle
Be conservative in what you do, be liberal in what you accept from others. AKA Postel’s Law

25 Image Credit: Randall Munroe of xkcd

26 #9 – Flon’s Law There is not now, nor will there ever be, a programming language in which it is the least bit difficult to write bad code.

27 When does your code suck?

28 #10 – Eagleson’s Law Any code of your own that you haven't looked at for six or more months might as well have been written by someone else.

29 Maintenance

30 All code needs work. Some needs more than others.

31 G. K. Chesterton

32 #11 – Chesterton’s Fence Reforms should not be made until the reasoning behind the current state of affairs is understood.

33 Linus Torvalds

34 #12 – Linus’s Law Given enough eyeballs, all bugs are shallow.

35 How do programmers ask questions?

36 #13 – Cunningham’s Law The fastest way to get an answer on the Internet is not to ask a question, it’s to post the wrong answer.

37 Management

38 Who tells you to do your job?

39 The Most Interesting Man In The World
Lawrence J. Peter Who’s this guy?

40 #14 – The Peter Principle The selection of a candidate for a position is based on the candidate's performance in their current role, rather than on abilities relevant to the intended role.

41

42 #14.1 – Peter Principle Redux
Employees tend to rise to their level of incompetence.

43 Anybody read this book?

44 #15 – Brooks’s Law Adding manpower to a late software project makes it later.

45 What is the architecture of your organization?

46 #16 – Conway’s Law The architecture of a system is a copy of the architecture of the organization.

47 Meetings

48 A necessary evil, without the necessity.

49 Ever heard of “bikeshedding”?

50 #17 – Parkinson’s Law of Triviality
The time spent on any agenda item will be in inverse proportion to the sum of money involved.

51 #18 – Sayre’s Law In any dispute the intensity of feeling is inversely proportional to the value of the issues at stake.

52 Sayre’s Law + Law of Triviality =
Strong Feelings + Money + Time = Law of Argumentative Comprehension

53 #19 – Law of Argumentative Comprehension
The more people understand something, the more willing they are to argue about it, and the more vigorously they will do so.

54 Questions?

55 Thanks! Twitter: @ExceptionFound Tech Blog: exceptionnotfound.net
Reading Blog: readaloudcorner.com 15 Fundamental Laws of Software Development:   laws-of-software-development/ 15 Fundamental Laws of the Internet: internet/

56 Extras

57

58 #20 – Hick’s Law The time to make a decision is a function of the possible choices.

59 C.A.R. “Tony” Hoare

60 #21 – Hoare’s Maxim There are two ways to construct a software design.  One is to make it so simple that there are obviously no deficiencies, and the other is to make it so complicated that there are no obvious deficiencies.

61 Thanks! Twitter: @ExceptionFound Tech Blog: exceptionnotfound.net
Reading Blog: readaloudcorner.com 15 Fundamental Laws of Software Development:   laws-of-software-development/ 15 Fundamental Laws of the Internet: internet/


Download ppt "The Fundamental Laws of Software Development"

Similar presentations


Ads by Google