Editor’s note: This is the second of a two-part look at software development issues by Bob Broda, who is president of Visage Solutions, LLC.Projects have become extremely complex and extremely expensive. Are businesses really getting value for their money?

Statistics from David Longstreet of SoftwareMetrics clearly show that the software being developed is more functional and complex.

Based on this information, one can say all must be right in the IT community. However, if the trend from the chart is followed, businesses will never be able to afford future projects. The costs will be too high and risky. So productivity must be accelerated even further. If software development does not become more productive, companies will hesitate to initiate new software projects. The unemployment in the high tech sector will become worse, not better.

There are a few fundamental issues that need to be addressed when developing software. These items are as true today as they were 25 years ago:

  • Computers do exactly what they are told. There are no assumptions and no gray areas.
  • Users seldom know exactly what they want until after they see what they asked for the first time.
  • 80-90 percent of the effort is spent on 10-20 percent of the transaction types. Requirements are easy to gather for processes under normal circumstances. The abnormal processing procedures are often overlooked early in projects. These events are discovered during system testing or in production where change is most expensive to implement.
  • Business is always going to change, so systems have to be developed that are easily adaptable to change by the business community.

The software community has been trying to address these problems for years, so obviously there is no quick fix. However, there are some techniques that will drastically improve the software development process.

Adoptive an Iterative Prototype process

The first prototype should give the business community all screens and reports in the system, before any of the validation, error logic or database updates are committed to code. Any changes or adjustments made will be rather inexpensive compared to other approaches.

On the second prototype, work in validations and major database updates. This allows the business community to view of the entire application.

The third prototype should include all functionality, database updates, error logic, etc., creating a working system.

Tools have to be in place to facilitate prototyping. They must be robust enough to support and automate the documentation and auditing requirements of ISO and/or and other Quality strategies employed.

Time box and fix firm completion dates for each and every prototype step are necessary to build confidence with the team, user community and management.

Ensure time estimate includes time for debugging, conversion and data clean up.

Adopt a philosophy that the customer is always right. Customers are the reason developers exist and without them there would be no work!

The challenge is to solve the business problem, not the technical problem.

The greatest strides that can be made in software development is the time honored imperative: Communicate, Communicate, Communicate!

(For more information on SoftwareMetrics, visit www.softwaremetrics.com )

Part One: www.localtechwire.com/article.cfm?u=3961