Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Software development   http://beariscool.blogspot.com/ First, solve the problem. Then, write the code. (John Johnson)  The...
3 big lies <ul><li>3 biggest lies  </li></ul><ul><ul><li>It works </li></ul></ul><ul><ul><li>It's compatible  </li></ul></...
Laws <ul><li>Eagleson's law </li></ul><ul><li>Any code of your own that you haven't looked at for six or more months might...
Laws <ul><li>Niklaus Wirth's law </li></ul><ul><li>Software gets slower faster than hardware gets faster. </li></ul><ul><l...
Laws <ul><li>Laws of Computer Programming </li></ul><ul><li>1. Any given program, when running, is obsolete.  </li></ul><u...
Choose  <ul><li>You can have the project: a.) Done On Time b.) Done On Budget c.) Done Properly </li></ul><ul><li>(From Bi...
Errors <ul><li>ERROR 406: file corrupt: config.earth -- reboot universe? (Y/N) </li></ul><ul><li>RUNTIME ERROR 6D at 417A:...
Bug … you said bug ?  <ul><li>DEBUGGING : Removing the needles from the haystack. </li></ul><ul><li>(Unknown) </li></ul><u...
Bug … you said bug ?  <ul><li>Beware of bugs in the above code;  </li></ul><ul><li>I have only proved it correct, not trie...
Bug … you said bug ?  <ul><li>If debugging is the process of removing software bugs,  </li></ul><ul><li>then programming m...
Some of the replies you'll hear from programmers  when something goes wrong. <ul><li>&quot;That's weird...&quot;  </li></u...
Code as …. <ul><li>Debugging is twice as hard as writing the code in the first place.  </li></ul><ul><li>Therefore, if you...
Numbers  <ul><li>The first 90% of the code accounts  </li></ul><ul><li>for the first 90% of the development time.  </li></...
Numbers  <ul><li>99% of the problems with a computer, program, or code  </li></ul><ul><li>are located between keyboard and...
Simplicity !! <ul><li>KISS  </li></ul><ul><li>Keep It Simple Stupid  </li></ul><ul><li>Simplicity is hard to build, easy t...
Simplicity !! <ul><li>Elegance is not optional  </li></ul><ul><li>(Richard O'Keefe) </li></ul><ul><li>Style distinguishes ...
Simplicity !! <ul><li>Simplicity is the ultimate sophistication.  </li></ul><ul><li>(Leonardo da Vinci) </li></ul><ul><li>...
Release <ul><li>Beta.  </li></ul><ul><li>Software undergoes beta testing shortly before it's released. </li></ul><ul><li>B...
Code  <ul><li>Software and cathedrals are much the same : </li></ul><ul><li>first we build them,  </li></ul><ul><li>then w...
Code  <ul><li>Code never lies, comments sometimes do </li></ul><ul><li>(Ron Jeffries) </li></ul><ul><li>Talk is cheap, sho...
Philosophy <ul><li>If the only tool you have is a hammer,  </li></ul><ul><li>you tend to see every problem as a nail. </li...
Fun <ul><li>Two strings walk into a bar.  </li></ul><ul><li>One says: &quot;I'd like a beer pleas$$%~¬..3783u </li></ul><u...
Software & Sex <ul><li>Software is like sex, </li></ul><ul><li>it's better when it's free. </li></ul><ul><li>(Linus Torval...
IF …  <ul><li>Programming today is a race between software engineers striving to build bigger and better idiot-proof progr...
At first ! <ul><li>The most important single aspect of software development  </li></ul><ul><li>is to be clear about what y...
At first ! <ul><li>The first consideration for anybody should be whether you'd like to do it  </li></ul><ul><li>even if yo...
A software professional in C <ul><li>struct SoftwareProfessional { </li></ul><ul><li>double salary; </li></ul><ul><li>long...
Theory vs Practice <ul><li>Theory is when you know something, but it doesn't work.  </li></ul><ul><li>Practice is when som...
And GOD ?  <ul><li>The first time God created the world, it became a total mess.  </li></ul><ul><li>So God scraped the who...
The end  <ul><li>And the users exclaimed with a laugh and a taunt :  </li></ul><ul><li>&quot;It's just what we asked for <...
Upcoming SlideShare
Loading in …5
×

Software development

2,254 views

Published on

Published in: Business, Technology
  • Be the first to comment

Software development

  1. 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. 2. 3 big lies <ul><li>3 biggest lies </li></ul><ul><ul><li>It works </li></ul></ul><ul><ul><li>It's compatible </li></ul></ul><ul><ul><li>You'll have it tomorrow </li></ul></ul><ul><li>(Jean-Louis Gassée) </li></ul><ul><li>3 biggest Software lies: </li></ul><ul><ul><li>The program's fully tested and bugfree. </li></ul></ul><ul><ul><li>We're working on the documentation. </li></ul></ul><ul><ul><li>Of course we can modify it. </li></ul></ul>
  3. 3. Laws <ul><li>Eagleson's law </li></ul><ul><li>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. </li></ul><ul><li>Parkinson's Law </li></ul><ul><li>Work expands so as to fill the time available for its completion. </li></ul><ul><li>Conway's Law </li></ul><ul><li>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. </li></ul><ul><li>Murphy’s Law </li></ul><ul><li>If anything can go wrong, it will. </li></ul>
  4. 4. Laws <ul><li>Niklaus Wirth's law </li></ul><ul><li>Software gets slower faster than hardware gets faster. </li></ul><ul><li>Flon's Law </li></ul><ul><li>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. </li></ul><ul><li>Hofstadter's Law </li></ul><ul><li>It always takes longer than you expect, even when you take into account Hofstadter's Law. </li></ul><ul><li>Thomas' First Law </li></ul><ul><li>Nothing is more permanent than a temporary solution. </li></ul>
  5. 5. Laws <ul><li>Laws of Computer Programming </li></ul><ul><li>1. Any given program, when running, is obsolete. </li></ul><ul><li>2. Any given program costs more and takes longer. </li></ul><ul><li>3. If a program is useful, it will have to be changed. </li></ul><ul><li>4. If a program is useless, it will have to be documented. </li></ul><ul><li>5. Any program will expand to fill available memory. </li></ul><ul><li>6. The value of a program is proportional to the weight of its output. </li></ul><ul><li>7. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it. </li></ul><ul><li>8. Any non-trivial program contains at least one bug. </li></ul><ul><li>9. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited. </li></ul><ul><li>10. Adding manpower to a late software project makes it later. </li></ul>
  6. 6. Choose <ul><li>You can have the project: a.) Done On Time b.) Done On Budget c.) Done Properly </li></ul><ul><li>(From Bill Bryson) </li></ul>
  7. 7. Errors <ul><li>ERROR 406: file corrupt: config.earth -- reboot universe? (Y/N) </li></ul><ul><li>RUNTIME ERROR 6D at 417A: 32CF: Incompetent user </li></ul><ul><li>UNKNOWN ERROR n° 5 </li></ul>
  8. 8. Bug … you said bug ? <ul><li>DEBUGGING : Removing the needles from the haystack. </li></ul><ul><li>(Unknown) </li></ul><ul><li>It's not a bug - it's an undocumented feature. </li></ul><ul><li>(Unknown) </li></ul><ul><li>If you don't have a good system, </li></ul><ul><li>make sure you get good users. </li></ul><ul><li>(Unknown) </li></ul><ul><li>NBWAD – Not a Bug – Work As Designed !! </li></ul><ul><li>If at first you don't succeed, try/catch, try/catch again </li></ul>
  9. 9. Bug … you said bug ? <ul><li>Beware of bugs in the above code; </li></ul><ul><li>I have only proved it correct, not tried it. </li></ul><ul><li>(Donald Knuth) </li></ul><ul><li>Sometimes it pays to stay in bed in Monday, </li></ul><ul><li>rather than spending the rest of the week debugging Monday's code. </li></ul><ul><li>(Dan Salomon) </li></ul><ul><li>There are two ways to write error-free programs; only the third works. </li></ul><ul><li>(Alan J. Perlis) </li></ul><ul><li>A man is smoking a cigarette and blowing smoke rings into the air. </li></ul><ul><li>His girlfriend becomes irritated with the smoke and says, </li></ul><ul><li>&quot;Can't you see the warning on the cigarette pack? Smoking is hazardous to your health!&quot; </li></ul><ul><li>To which the man replies, &quot;I am a programmer. </li></ul><ul><li>We don't worry about warnings; we only worry about errors.&quot; </li></ul>
  10. 10. Bug … you said bug ? <ul><li>If debugging is the process of removing software bugs, </li></ul><ul><li>then programming must be the process of putting them in.- </li></ul><ul><li>(Edsger Dijkstra) </li></ul><ul><li>If we can't fix it, then it ain't broke . </li></ul><ul><li>(Debuggers motto, noted by John Bently) </li></ul><ul><li>Always code as if a single bug will bring the building down. </li></ul><ul><li>(Unknown) </li></ul>
  11. 11. Some of the replies you'll hear from programmers when something goes wrong. <ul><li>&quot;That's weird...&quot; </li></ul><ul><li>&quot;It's never done that before.&quot; </li></ul><ul><li>&quot;It worked yesterday.&quot; </li></ul><ul><li>&quot;It must be a hardware problem.&quot; </li></ul><ul><li>&quot;What did you type in wrong to get it to crash?&quot; </li></ul><ul><li>&quot;I haven't touched that module in weeks!&quot; </li></ul><ul><li>&quot;You must have the wrong version.&quot; </li></ul><ul><li>&quot;It's just some unlucky coincidence.&quot; </li></ul><ul><li>&quot;I can't test everything!&quot; </li></ul><ul><li>&quot;It works, but it hasn't been tested.&quot; </li></ul><ul><li>&quot;Somebody must have changed my code.&quot; </li></ul><ul><li>&quot;Even though it doesn't work, how does it feel? </li></ul><ul><li>&quot;You can't use that version on your system.&quot; </li></ul><ul><li>&quot;Why do you want to do it that way?&quot; </li></ul><ul><li>&quot;It works on my machine.&quot; </li></ul><ul><li>&quot;Try to reboot your machine and try again.&quot; </li></ul><ul><li>… </li></ul>
  12. 12. Code as …. <ul><li>Debugging is twice as hard as writing the code in the first place. </li></ul><ul><li>Therefore, if you write the code as cleverly as possible, </li></ul><ul><li>you are, by definition, not smart enough to debug it. </li></ul><ul><li>(Brian Kernighan) </li></ul><ul><li>Always code as if the guy who ends up maintaining your code </li></ul><ul><li>will be a violent psychopath who knows where you live.   </li></ul><ul><li>(Rick Osborne) </li></ul><ul><li>Any fool can write code that a computer can understand. </li></ul><ul><li>Good programmers write code that humans can understand. </li></ul><ul><li>(Martin Fowler) </li></ul>
  13. 13. Numbers <ul><li>The first 90% of the code accounts </li></ul><ul><li>for the first 90% of the development time. </li></ul><ul><li>The remaining 10% of the code accounts </li></ul><ul><li>for the other 90% of the development time. </li></ul><ul><li>(Tom Cargill) </li></ul><ul><li>Good programming is 99% sweat and 1% coffee. </li></ul><ul><li>Programming is 10% science, 25% ingenuity </li></ul><ul><li>and 65% getting the ingenuity to work with the science. </li></ul>
  14. 14. Numbers <ul><li>99% of the problems with a computer, program, or code </li></ul><ul><li>are located between keyboard and chair. </li></ul><ul><li>(Unknown) </li></ul><ul><li>The 50-50-90 rule: </li></ul><ul><li>Anytime you have a 50-50 chance of getting something right, </li></ul><ul><li>there's a 90% probability you'll get it wrong. </li></ul><ul><li>(Unknown) </li></ul>
  15. 15. Simplicity !! <ul><li>KISS </li></ul><ul><li>Keep It Simple Stupid </li></ul><ul><li>Simplicity is hard to build, easy to use, and hard to charge for. </li></ul><ul><li>Complexity is easy to build, hard to use, and easy to charge for. </li></ul><ul><li>(Chris Sacca) </li></ul>
  16. 16. Simplicity !! <ul><li>Elegance is not optional </li></ul><ul><li>(Richard O'Keefe) </li></ul><ul><li>Style distinguishes excellence from accomplishment. </li></ul><ul><li>(James Coplien) </li></ul><ul><li>You know you've achieved perfection in design, </li></ul><ul><li>not when you have nothing more to add, </li></ul><ul><li>but when you have nothing more to take away. </li></ul><ul><li>(Antoine de Saint-Exupery) </li></ul>
  17. 17. Simplicity !! <ul><li>Simplicity is the ultimate sophistication. </li></ul><ul><li>(Leonardo da Vinci) </li></ul><ul><li>Make everything as simple as possible, but not simpler. </li></ul><ul><li>(Albert Einstein) </li></ul><ul><li>For every complex problem there is an answer </li></ul><ul><li>that is clear, simple, </li></ul><ul><li>and wrong. </li></ul><ul><li>(H L Mencken) </li></ul><ul><li>Simplicity is prerequisite for reliability </li></ul><ul><li>(Edsger W. Dijkstra) </li></ul>
  18. 18. Release <ul><li>Beta. </li></ul><ul><li>Software undergoes beta testing shortly before it's released. </li></ul><ul><li>Beta is Latin for &quot;still doesn't work.&quot; </li></ul><ul><li>(Unknown) </li></ul><ul><li>You never finish a program, you just stop working on it. </li></ul><ul><li>(Unknown) </li></ul><ul><li>The software isn't finished until the last user is dead. </li></ul><ul><li>(Unknown) </li></ul><ul><li>If at first you don't succeed : </li></ul><ul><li>call it version 1.0 </li></ul><ul><li>try management </li></ul>
  19. 19. Code <ul><li>Software and cathedrals are much the same : </li></ul><ul><li>first we build them, </li></ul><ul><li>then we pray </li></ul><ul><li>(Unknown) </li></ul><ul><li>Your code is both good and original. </li></ul><ul><li>Unfortunately the parts that are good are not original, </li></ul><ul><li>and the parts that are original are not good. </li></ul><ul><li>(Unknown) </li></ul>
  20. 20. Code <ul><li>Code never lies, comments sometimes do </li></ul><ul><li>(Ron Jeffries) </li></ul><ul><li>Talk is cheap, show me the code ! </li></ul><ul><li>(Linus Torvalds) </li></ul><ul><li>Premature optimization is the root of all evil </li></ul><ul><li>(Donald. Knuth) </li></ul><ul><li>Get it right. Then get it fast. </li></ul><ul><li>(Steve McConnell) </li></ul>
  21. 21. Philosophy <ul><li>If the only tool you have is a hammer, </li></ul><ul><li>you tend to see every problem as a nail. </li></ul><ul><li>(Abraham Maslow) </li></ul><ul><li>  </li></ul><ul><li>No, no, you're not thinking; </li></ul><ul><li>you're just being logical. </li></ul><ul><li>(Niels Bohr) </li></ul><ul><li>  </li></ul><ul><li>Technology is dominated by two types of people: </li></ul><ul><li>those who understand what they do not manage ; and </li></ul><ul><li>those who manage what they do not understand </li></ul>
  22. 22. Fun <ul><li>Two strings walk into a bar. </li></ul><ul><li>One says: &quot;I'd like a beer pleas$$%~¬..3783u </li></ul><ul><li>The other string says: &quot;Sorry about my friend, he's not null-terminated.“ </li></ul><ul><li>There's no place like 127.0.0.1 </li></ul><ul><li>Should array indices start at 0 or 1? </li></ul><ul><li>My compromise of 0.5 was rejected without, I thought, proper consideration. </li></ul><ul><li>(Stan Kelly-Bootle) </li></ul><ul><li>Powered by 110000001111111111101110 </li></ul>
  23. 23. Software & Sex <ul><li>Software is like sex, </li></ul><ul><li>it's better when it's free. </li></ul><ul><li>(Linus Torvalds). </li></ul><ul><li>Programming is like sex: </li></ul><ul><li>one mistake and you're providing support for a lifetime. </li></ul><ul><li>(Michael Sinz) </li></ul><ul><li>Programming languages are like girlfriends: </li></ul><ul><li>The new one is better because you are better. </li></ul><ul><li>(Derek Sivers) </li></ul><ul><li>Documentation is like sex: </li></ul><ul><li>when it is good, it is very, very good; </li></ul><ul><li>and when it is bad, it is better than nothing. </li></ul><ul><li>(Unknown) </li></ul>
  24. 24. IF … <ul><li>Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, </li></ul><ul><li>and the Universe trying to produce bigger and better idiots. </li></ul><ul><li>So far, the Universe is winning. </li></ul><ul><li>(Rich Cook) </li></ul><ul><li>If the auto industry had done what the computer industry had done in the last </li></ul><ul><li>thirty years, a Rolls Royce would cost $2.50 and get two million miles per gallon. </li></ul><ul><li>(Herb Grosch) </li></ul><ul><li>But it would be the size of a Dinky toy and crash every three days. </li></ul><ul><li>Beware of false analogy. </li></ul><ul><li>(Joe Celko ) </li></ul><ul><li>If builders built buildings the way programmers wrote programs, </li></ul><ul><li>the first woodpecker to come along would destroy civilization </li></ul><ul><li>(Gerald Weinberg) </li></ul><ul><li>The first consideration for anybody should be whether you'd like to do it even if you got nothing at all back. If you answer yes, then it is probably a project you'd enjoy doing. </li></ul><ul><li>(both from Linus Torvalds) </li></ul><ul><li>Any program is only as good as it is useful Linus Torvalds </li></ul>
  25. 25. At first ! <ul><li>The most important single aspect of software development </li></ul><ul><li>is to be clear about what you are trying to build. </li></ul><ul><li>(Bjarne Stroustrup) </li></ul><ul><li>Before software can be reusable it first has to be usable. </li></ul><ul><li>(M.A. Jackson) </li></ul><ul><li>First, solve the problem. Then, write the code. </li></ul><ul><li>(John Johnson) </li></ul>
  26. 26. At first ! <ul><li>The first consideration for anybody should be whether you'd like to do it </li></ul><ul><li>even if you got nothing at all back. </li></ul><ul><li>If you answer yes, then it is probably a project you'd enjoy doing. </li></ul><ul><li>(Linus Torvalds) </li></ul><ul><li>Any program is only as good as it is useful. </li></ul><ul><li>(Linus Torvalds) </li></ul><ul><li>Walking on water and developing software from a specification </li></ul><ul><li>are easy if both are frozen. </li></ul><ul><li>(Edward V. Berard) </li></ul>
  27. 27. A software professional in C <ul><li>struct SoftwareProfessional { </li></ul><ul><li>double salary; </li></ul><ul><li>long lunches; </li></ul><ul><li>float jobs; </li></ul><ul><li>char unstable; </li></ul><ul><li>void work; </li></ul><ul><li>}; </li></ul>
  28. 28. Theory vs Practice <ul><li>Theory is when you know something, but it doesn't work. </li></ul><ul><li>Practice is when something works, but you don't know why. </li></ul><ul><li>Programmers combine theory and practice: Nothing works and they don't know why. </li></ul><ul><li>(Unknown) </li></ul><ul><li>The difference between theory and practice </li></ul><ul><li>is that in theory there is no difference, </li></ul><ul><li>but in practice there is. </li></ul><ul><li>(Craig A. Finseth) </li></ul>
  29. 29. And GOD ? <ul><li>The first time God created the world, it became a total mess. </li></ul><ul><li>So God scraped the whole thing and started again, </li></ul><ul><li>and the big thing we learn is that after six days, God shipped. </li></ul><ul><li>(Dan Bricklin) </li></ul><ul><li>God could create the world in six </li></ul><ul><li>days because he didn't have to make it compatible with the previous version </li></ul><ul><li>On the 7th day ... God began debugging. </li></ul><ul><li>I would love to change the world, but they won't give me the source code </li></ul>
  30. 30. The end <ul><li>And the users exclaimed with a laugh and a taunt : </li></ul><ul><li>&quot;It's just what we asked for </li></ul><ul><li>but not what we want.&quot; </li></ul><ul><li>(Unknow) </li></ul><ul><li>Complexity has nothing to do with intelligence, </li></ul><ul><li>simplicity does. </li></ul><ul><li>(Larry Bossidy) </li></ul>

×