Friday, January 19, 2007

Software Practices

Remember the Basics. There are many factors involved in developing excellent software. Literate programming is just a single technique to be used along with all the other well established software engineering practices. Here are some software practices related to program documentation:

* Establish structures, processes, and outcomes (see Luke Holman).
* Generate software requirements and design description (see IEEE standards).
* Practice object oriented design.
* Choose class names, function names, and variable names wisely.
* Avoid duplicate code by creating shared functions.
* Re-think or refactor code which is difficult to understand.
* Develop small classes and small functions when feasible.
* Keep it simple and straight forward as much as possible.
* Organize large source code files using an outlining editor (Leo).
* Comment source code effectively with header and in-line comments.
* Document source code using an API documentation standard (doxygen).
* Utilize pre-conditions and post-conditions using assertions.
* Provide formal or informal proofs of source code correctness.
* Conduct peer reviews of deliverables (software, documentation, source code).
* Implement automated unit testing which is also a form of documentation.
* Examine source code metrics (lines, complexity, etc).
* Execute static analysis for common coding errors.

"Woeful Wails" - My Dad's account of what happened in 1989 at Srinagar, Kashmir

A Shiver, a shudder goes down my spine To have lost what once was mine The merciless devils who strode the streets With guns pointing at u...