Software Engineering
I am committed to bringing engineering discipline to all aspects of software development. Every development project needs answers to some or all of these questions:
Process Awareness
What sort of process is being operated?
- The Waterfall process often proceeds linearly from milestone to milestone
- Agile development is more iterative and copes better with change
External Standards
What external standards are to be complied with?
- Quality standards, such as the ISO 9000 family
- Best practice guides, such as MISRA C
Project Standards
What project-specific standards apply? These can be company-wide, or tailored for a project. I usually write a project style guide at the start of a project, to define naming conventions for files and design & code artefacts.
Change Control
What change control system is to be used? Common ones include:
- PVCS
- Microsoft Visual SourceSafe
- SCCS (and others from the Unix stable)
Requirements Capture
How are requirements to be captured and traced? The minimum is a structured document with a unique ID for each requirement, traceable to design and test points. I have also used a database approach (written in MS Access) for more fine-grained traceability.
Design Method
What method is to be used for design? My preferred approaches such as UML and Yourdon are covered in more detail on the Design page.
Test Strategy
How is testing to be organised? Again, my approaches are summarised on the Testing page.

