Friday, March 31, 2006
Handling Late Requirements
Many of project issues are related to bad requirements management. One particularissue which is hard to tackle is the handling of late requirements.Coping with new requirements after the development has started often leads to problems in the project:schedule, cost and scope of the running project become unknowndelays due to unsufficient impact investigation, which may propagate to other projects
Tuesday, January 31, 2006
Software Distribution Making
An important process in software development is the making of the distribution.Here are some good practices: Make sure tarballs always unpack into a single new directory (not the current directory!).Include a README with: A brief description of the project. A pointer to the project website (if it has one). Notes on the developer's build environment and potential portability problems. A
Friday, January 20, 2006
Best Practices for Writing Use Cases
Are your use cases clear both for your users and for your developers ? Here are some tips:Be careful with UML diagrams. Only use them for a high level model to show relationships between actors and use cases. Use case descriptions are textualMain scenario 3-9 steps. Bird's eye viewNo IF-statements, but main scenario's plus extensionsBrainstorm on goal failures evaluate, eliminate, mergeManage
Wednesday, December 28, 2005
Good Development Practices for Open-Source Developers
Don't rely on proprietary code, languages, or libraries. Open-source developers don't trust code for which they can't review the source.Use GNU Autotools autoconf, autoheader, automake. Configuration choices should be made at compile time. People building from sources today expect to be able to type configure; make; make install and get a clean build. The software must be able to determine for
Monday, December 12, 2005
Design Rules for Textual Data Formats
Another set of rules from Eric Raymonds excellent "The Art of Unix Programming". Use textual data format instead of binary to store or transport your data:Easy for human beings to read, write, and edit without specialized tools.Easy to prepare test data and to debug.Future-proof your system. One specific reason is that ranges on numeric fields aren't implied by the format itself.Other tools and
Monday, December 5, 2005
Basics of the Unix Philosophy
From Eric Raymond's "The Art of Unix Programming" i picked here the 17 rules described as the Basics of the Unix Philosophy. For me these are also rules for writing high quality software:Rule of Modularity: Write simple parts connected by clean interfaces.Rule of Clarity: Clarity is better than cleverness.Rule of Composition: Design programs to be connected with other programs.Rule of Separation:
Sunday, November 20, 2005
Six Sigma Terms and Definitions
Jack Welch, former CEO of General Electric, and one of the most succesful corporate leaders ever, used Six Sigma as major Quality Improvement method. In his book Winning he writes:Six Sigma is one the biggest management innovations of the past 25 years. Six Sigma improves the development procedures, brings products faster to the market with less defects, and reduces cost. The biggest - but least

