Every company has slightly different needs for their software development process. Even within a company, no two software projects can be handled exactly the same. Each project has different requirements, risks, resources, and technologies. Even the level of quality needed for each project is different. Some projects are designed to last ten years and some ten days.
There are proven practices within the software engineering discipline that can be applied to your company to improve your software quality and lower your development costs.
See an excellent article about problems using a cookie cutter approach like Rational Unified Process (RUP). Let MicroTools help you evaluate your current software development process and tailor these proven practices for your company. We can help independent of the current state of your process.
SEI Capability Maturity Model
The Software Engineering Institute of Carnegie-Mellon has developed the Capability Maturity Model (CMM) to help companies evaluate their software development process. The model defines 5 levels of organizational ‘maturity’ that indicate effectiveness in delivering quality software. It is geared for large organizations such as U.S. Department of Defense contractors. However, many of the QA processes involved are appropriate to any organization, and if reasonably applied can be helpful. MicroTools can help you with this first stage of process improvement through process evaluation.
ISO 9000 / ISO 9001
We are not ISO 9000/9001 experts. However, we have helped two organizations become certified for ISO 9000/ISO 9001. In both cases, they used projects that we did for them as examples of a well controlled software process.
Click here to find out more about how we did this.
Call us today to let us help you become ISO 9000/9001 certified.
Written Specifications and Procedures
Documented specifications and written procedures, policies and guidelines are essential if you are going to be able to repeat past success and avoid repeating past failures. MicroTools can help you create the following essential documents:
- Software Engineering Procedures and Policy Manual
- Software Requirements Documents
- Software Design Documents
- Interface Control Documents
- Software Test Plans
- Software Coding Standards
- Software Release Procedures
- Configuration Management Procedures
If all of these documents are not in place for your organization on each project, you are probably operating at Level One of the CMM – ad hoc chaos which occasionally leads to success.
Code Reviews are a must for every Software Engineering organization. See an excellent article about Code Reviews by Jack Ganssle.
Not every company is as clear about Code Reviews as Jack and there are a lot of misunderstandings about this proven practice:
- When you apply them
- Who should be involved
- Should all code be reviewed
While the principles are the same, the ideal application for your organization is unique. MicroTools can help you find the correct balance for your organization.
Can’t find time for Code Review? Try using the Extreme Programming methodology. In certain specific situations where the complexity of the module is high, we program together and find that sometimes this eliminates the need for code review while speeding up the design, coding and development process. Like any methodology, when used with a sledgehammer people and projects get crushed. So don’t try to use this as a silver bullet against software failures. Read more about this at the following web sites:
Don Well’s Site www.extremeprogramming.org
Ron Jeffries’ Site www.xprogramming.com
A goal of every Software organization should be:
- to be ever improving in quality and efficiency
- to continually incorporate new technologies and better tools into the process
This can only happen with continued vigilance of the process.
- Are procedures being followed?
- Are metrics being evaluated? (If you can’t measure it you can’t control it)
- Is quality improving?
- Are we competitive world wide?
- Are the customer’s content?
Let MicroTools help you attain and maintain a CMM level 5 organization where
- project performance is predictable
- quality is consistently high
- the impact of new processes and technologies can be predicted and effectively implemented