Copyright (c) 2013 John L. Jerz

201 Principles of Software Development (Davis, 1995)

Home
A Proposed Heuristic for a Computer Chess Program (John L. Jerz)
Problem Solving and the Gathering of Diagnostic Information (John L. Jerz)
A Concept of Strategy (John L. Jerz)
Books/Articles I am Reading
Quotes from References of Interest
Satire/ Play
Viva La Vida
Quotes on Thinking
Quotes on Planning
Quotes on Strategy
Quotes Concerning Problem Solving
Computer Chess
Chess Analysis
Early Computers/ New Computers
Problem Solving/ Creativity
Game Theory
Favorite Links
About Me
Additional Notes
The Case for Using Probabilistic Knowledge in a Computer Chess Program (John L. Jerz)
Resilience in Man and Machine

201Davis.gif

Many software projects are late and over budget because software managers are untrained in the principles of software development. Here's the first guide that gathers together all the principles necessary to enhance quality and productivity. Readers gain understanding of software engineering principles that helps them improve process no matter what type of development tools they use. Each principle is titled, defined, and explained on just one page for fast assimilation on the job. Valuable tips are included on how to apply principle to project. Relevant applications examples throughout illustrate development principles in action in real-life situations.

p.17 Programs that tread on brand new territory (whether it be with respect to application, architecture, interface, or algorithm) rarely work the first time. Fred Brooks, in his Mythical Man Month, makes this perfectly clear with his advice, "Plan to throw one away; you will anyway."
 
p.76 A critical aspect of all engineering disciplines is the elaboration of multiple approaches, trade-off analyses among them, and the eventual adoption of one. After requirements are agreed upon, you must examine a variety of architectures and algorithms.
 
p.108 The structure of data and the structure of programs manipulating that data are intimately interrelated... When preparing to write a program, you should develop the algorithms and data structures together.
 
p.109 It is far easier to adapt a working program to make it run faster than to adapt a fast program to make it work. Don't worry about optimization when doing your initial coding.

Enter supporting content here