How are we doing in the software field?

What are the symptoms of software development problems?

What has been the traditional approach to software development?

The traditional approach is sometimes called the "waterfall development". The entire development process goes through these phases linearly and in lock step. First all the requirements are defined, then the design is completed, and finally the code is written and tested. The key assumptions are that when design begins, requirements no longer change. When coding starts, the design ceases to change. These assumptions do not take into account a changing universe.

What are the root causes of poor software development?

What are the best practices in software engineering?

Best practices are a set of empirically proven approaches to software development. When used in combination they strike at the root causes of software development problems. They are called "best practices" not because we can precisely quantify their value but rather they are observed to be commonly used in industry by successful organizations.

Best Practices address the root causes of poor software development

1. Develop Iteratively

2. Manage Requirements

3. Use Component Based Architecture

4. Visually Model Software

5. Verify Software Quality

6. Control Changes to Software

Best Practices Reinforce Each Other

Each of the best practices reinforces and enables the others. Although it is possible to use one best practice without the others, it is not recommended. The whole is much greater than the sum of the parts.

What is Software Architecture?

Why do we model?

Principles of Modeling