Software design just like any other engineering design endeavor, requires a fair amount of effort, experience, patience and knowhow in order to be done right.
Based on Akin's Laws of Spacecraft Design I present our readers with a slightly modified list of what I believe are the basic "Laws of Software design" especially when you are dealing with customer oriented, "tailored" software product solutions.
As this is considered a "basic" list, let me clarify that you are more than welcome to contribute with you own experiences and comments on the matter. So lets start ...
-
Laws of Software Design (6 messages)
- Posted by: Byron Kiourtzoglou
- Posted on: January 18 2011 06:24 EST
Threaded Messages (6)
- Amusing by James Watson on January 18 2011 09:38 EST
- it's based on spacecraft engineering, that's why by Andres F. on January 18 2011 12:50 EST
- data for design time decisions by Steven Peh on January 18 2011 17:02 EST
- Laws of Software Design by Erik GOLLOT on January 18 2011 14:48 EST
- Pearls of wisdom.. by Steven Peh on January 18 2011 17:08 EST
- Wow, two more and he would have had forty! by Steve Perry on January 21 2011 10:28 EST
-
Amusing[ Go to top ]
- Posted by: James Watson
- Posted on: January 18 2011 09:38 EST
- in response to Byron Kiourtzoglou
Amusing list with some pearls of wisdom. Too many pointless items, I think, though.
Right off the bat, I'm confused by the first one:
"Software design is done with numbers. Analysis without numbers is only an opinion."
Is this about design or analysis? I'm not sure I understand what a software design "with numbers" looks like. Something like "the average girth of the proposed classes is 2.8"?
Probably the most important to understand for teams is "There is never a single right solution. There are always multiple wrong ones, though."
My own: When your software must interface with software written by someone else. If you wait for the other guy to figure out the (inevitable) issues, you will be waiting forever: the other guy will be waiting for you to figure it out.
-
it's based on spacecraft engineering, that's why[ Go to top ]
- Posted by: Andres F.
- Posted on: January 18 2011 12:50 EST
- in response to James Watson
The list has some amusing items simply because it's based on spacecraft engineering tips. The first one, for example, makes sense when applied to real engineering and not so much when applied to software engineering:
1. Engineering is done with numbers. Analysis without numbers is only an opinion.
Same with "learn to draw" and some others, I guess ;-)
-
data for design time decisions[ Go to top ]
- Posted by: Steven Peh
- Posted on: January 18 2011 17:02 EST
- in response to James Watson
Amusing list with some pearls of wisdom. Too many pointless items, I think, though.
Right off the bat, I'm confused by the first one:
"Software design is done with numbers. Analysis without numbers is only an opinion."
Is this about design or analysis? I'm not sure I understand what a software design "with numbers" looks like. Something like "the average girth of the proposed classes is 2.8"?
Probably the most important to understand for teams is "There is never a single right solution. There are always multiple wrong ones, though."
My own: When your software must interface with software written by someone else. If you wait for the other guy to figure out the (inevitable) issues, you will be waiting forever: the other guy will be waiting for you to figure it out.
My interpretation of that quote is that you need as much as possible empirical data to drive design time decisions. Making design time decisions based on opinions, hearsay, anecdotal fables, etc., is very risky.
-
Laws of Software Design[ Go to top ]
- Posted by: Erik GOLLOT
- Posted on: January 18 2011 14:48 EST
- in response to Byron Kiourtzoglou
blabla blabla blabla
Design is reality, not blabla
-
Pearls of wisdom..[ Go to top ]
- Posted by: Steven Peh
- Posted on: January 18 2011 17:08 EST
- in response to Byron Kiourtzoglou
Since we're sharing.. here's mine: Design is only as good as the requirement. If the requirement is wrong in the first place, you can chuck your design in the bin, same goes for the implementation.
Unfortunately, I've seen many PMs that can't seem to grasp this simple logic.
-
Wow, two more and he would have had forty![ Go to top ]
- Posted by: Steve Perry
- Posted on: January 21 2011 10:28 EST
- in response to Byron Kiourtzoglou
That is all.