software development
Click here to load reader
Post on 13-Nov-2014
2.403 views
Embed Size (px)
DESCRIPTION
TRANSCRIPT
- 1. Software development http://beariscool.blogspot.com/ First, solve the problem. Then, write the code. (John Johnson)There are only 10 types of people in the world:those who understand binary, and those who don't.
2. 3 big lies
- 3 biggest lies
- It works
- It's compatible
- You'll have it tomorrow
- (Jean-Louis Gasse)
- 3 biggest Software lies:
- The program's fully tested and bugfree.
- We're working on the documentation.
- Of course we can modify it.
3. Laws
- 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.
- Parkinson's Law
- Work expands so as to fill the time available for its completion.
- Conway's Law
- Any piece of software reflects the organizational structure that produced it ... If you have four groups working on a compiler, you'll get a 4-pass compiler.
- Murphys Law
- If anything can go wrong, it will.
4. Laws
- Niklaus Wirth's law
- Software gets slower faster than hardware gets faster.
- Flon's Law
- There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code.
- Hofstadter's Law
- It always takes longer than you expect, even when you take into account Hofstadter's Law.
- Thomas' First Law
- Nothing is more permanent than a temporary solution.
5. Laws
- Laws of Computer Programming
- 1. Any given program, when running, is obsolete.
- 2. Any given program costs more and takes longer.
- 3. If a program is useful, it will have to be changed.
- 4. If a program is useless, it will have to be documented.
- 5. Any program will expand to fill available memory.
- 6. The value of a program is proportional to the weight of its output.
- 7. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
- 8. Any non-trivial program contains at least one bug.
- 9. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
- 10. Adding manpower to a late software project makes it later.
6. Choose
- You can have the project: a.) Done On Time b.) Done On Budget c.) Done Properly
- (From Bill Bryson)
7. Errors
- ERROR 406: file corrupt: config.earth -- reboot universe? (Y/N)
- RUNTIME ERROR 6D at 417A: 32CF: Incompetent user
- UNKNOWN ERROR n 5
8. Bug you said bug ?
- DEBUGGING : Removing the needles from the haystack.
- (Unknown)
- It's not a bug - it's an undocumented feature.
- (Unknown)
- If you don't have a good system,
- make sure you get good users.
- (Unknown)
- NBWAD Not a Bug Work As Designed !!
- If at first you don't succeed, try/catch, try/catch again
9. Bug you said bug ?
- Beware of bugs in the above code;
- I have only proved it correct, not tried it.
- (Donald Knuth)
- Sometimes it pays to stay in bed in Monday,
- rather than spending the rest of the week debugging Monday's code.
- (Dan Salomon)
- There are two ways to write error-free programs; only the third works.
- (Alan J. Perlis)
- A man is smoking a cigarette and blowing smoke rings into the air.
- His girlfriend becomes irritated with the smoke and says,
- "Can't you see the warning on the cigarette pack?Smoking is hazardous to your health!"
- To which the man replies, "I am a programmer.
- We don't worry about warnings; we only worry about errors."
10. Bug you said bug ?
- If debugging is the process of removing software bugs,
- then programming must be the process of putting them in.-
- (Edsger Dijkstra)
- If we can't fix it, then it ain't broke .
- (Debuggers motto, noted by John Bently)
- Always code as if a single bugwillbring the building down.
- (Unknown)
11. Some of the replies you'll hear from programmerswhen something goes wrong.
- "That's weird..."
- "It's never done that before."
- "It worked yesterday."
- "It must be a hardware problem."
- "What did you type in wrong to get it to crash?"
- "I haven't touched that module in weeks!"
- "You must have the wrong version."
- "It's just some unlucky coincidence."
- "I can't test everything!"
- "It works, but it hasn't been tested."
- "Somebody must have changed my code."
- "Even though it doesn't work, how does it feel?
- "You can't use that version on your system."
- "Why do you want to do it that way?"
- "It works on my machine."
- "Try to reboot your machine and try again."
12. Code as .
- 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.
- (Brian Kernighan)
- Always code as if the guy who ends up maintaining your code
- will be a violent psychopath who knows where you live.
- (Rick Osborne)
- Any fool can write code that a computer can understand.
- Good programmers write code that humans can understand.
- (Martin Fowler)
13. Numbers
- The first 90% of the code accounts
- for the first 90% of the development time.
- The remaining 10% of the code accounts
- for the other 90% of the development time.
- (Tom Cargill)
- Good programming is 99% sweat and 1% coffee.
- Programming is 10% science, 25% ingenuity
- and 65% getting the ingenuity to work with the science.
14. Numbers
- 99% of the problems with a computer, program, or code
- are located between keyboard and chair.
- (Unknown)
- The 50-50-90 rule:
- Anytime you have a 50-50 chance of getting something right,
- there's a 90% probability you'll get it wrong.
- (Unknown)
15. Simplicity !!
- KISS
- Keep It Simple Stupid
- Simplicity is hard to build, easy to use, and hard to charge for.
- Complexity is easy to build, hard to use, and easy to charge for.
- (Chris Sacca)
16. Simplicity !!
- Elegance is not optional
- (Richard O'Keefe)
- Style distinguishes excellence from accomplishment.
- (James Coplien)
- You know you've achieved perfection in design,
- not when you have nothing more to add,
- but when you have nothing more to take away.
- (Antoine de Saint-Exupery)
17. Simplicity !!
- Simplicity is the ultimate sophistication.
- (Leonardo da Vinci)
- Make everything as simple as possible, but not simpler.
- (Albert Einstein)
- For every complex problem there is an answer
- that is clear, simple,
- and wrong.
- (H L Mencken)
- Simplicity is prerequisite for reliability
- (Edsger W. Dijkstra)
18. Release
- Beta.
- Software undergoes beta testing shortly before it's released.
- Beta is Latin for "still doesn't work."
- (Unknown)
- You never finish a program, you just stop working on it.
- (Unknown)
- The software isn't finished until the last user is dead.
- (Unknown)
- If at first you don't succeed:
- call it version 1.0
- try management
19. Code
- Software and cathedrals are much the same :
- first we build them,
- then we pray
- (Unknown)
- Your code is both good and original.
- Unfortunately the parts that are good are not original,
- and the parts that are original are not good.
- (Unknown)
20. Code
- Code never lies, comments sometimes do
- (Ron Jeffries)