44.07685 North (44° 4' 36.66" North)
70.26235 West (70° 15' 44.46" West)
geomagnetic declination 15.66° West
elevation 237 feet (72 meters)
grid square FN44ub 88MK
Paul N. Leonard
Auburn, ME 04210
Software should have the intent of being written bug free and meeting specification the first time. That should always be the goal, IMHO. Recent attempts to change this paradigm to write fast - fix later is disturbing at best. I still like doing structured design and getting it right before even begining to code (anyone can code, design is the hard part).
Structured development actually saves time in the long run and makes maintenance much easier because the software is documented and easily understood. It helps to also have standards and follow them closely. On teams it is very important in order to keep control of the project and it's time and cost budgets. On single person projects, it is also important because its very hard to remember what was done a couple years back when you want to add a feature.
Structured design emphasises defining the data and functions over the coding. Defining the data elements and how they get processed to meet the project requirements insures that the flow of data is well understood. That is followed by creating charts of functional elements that provide the necessary operations to work on the data as well as what data elements or structures need to be available to these functional elements to do their job. Lastly, the structure charts are used to create detailed functional descriptions of both the data and functions for coding.
This methodology provides many opportunities identify potential problems and change data elements or functional descriptions before coding begins. Each functional element can then be coded based on its definition rather than trying to code on the go. It's amazing how well this works. The only downside I have ever experienced is with management getting ansy. When weeks or months go by without code being written they tend to get nervous and fall in to micro managing. The ones who "get it" know that coding is the fast part when everything is well defined.
There are books on this subject that do a much better job of explaining this than I do. The latest fads for speed development are about as effective as speed dating (quick results but long term disaster).