Home

Software process improvement

Agile software development

JAD and RAD

System requirements

System functional specification

Software development paradigms, where models meet pragmatism.

Software process models

Recently Agile has gained popularity as a software development framework. In reading the Agile manifesto and listening to the Agile proponents there is a troubling theme. To be clear this website has not been set up to criticize Agile and indeed there are many reasons where Agile should be used. The Agile experience, however, did spark the need to revisit pragmatism and not first principles as the most useful way of assessing software development process value.

In essence pragmatism states that the conclusions, or outcomes, of a given process dictated the value of the process. Software Quality Assurance (SQA) and Software Process Improvement (SPI) are pragmatic disciplines. With SQA and SPI useful measures for the software product are determined and then casual analysis is conducted in order to determine the value of a given software process.

There are many software development frameworks and their value can only be determined via measurement and not via first principles.

The Agile framework

In essence Agile addresses one central issue of software development:-

  • Abstraction does not come easily to people.

    There are several principles that cover communication, smaller is better etc. but the central theme is that describing what is required for a piece of software (in the absence of abstraction) requires developing the software (or subset) as a prototype or incrementally. Agile then proposes techniques within its frameworks such as JAD and RAD that provide ways of reducing abstraction in the requirements definition.

    The outcome of Agile still needs to be independently measured in order to determine its true value, and this can only be done using SPI or similar methods.

    The evidence that supports Agile is mostly anecdotal, people stating that it has improved their lives etc. There is little evidence that is based on measurement. While it is difficult to measure alternative software process frameworks the troubling aspect of the Agile proponents is that little (or no mention) of real comparison is presented. The problems Agile deals with are abstraction of the behavior of an intangible artifact (i.e. software).

    What is the real problem regarding software model abstraction?

    The Agile framework does not address the real issue facing software development. JAD and RAD still refer back to manufacturing paradigms, what is needed is a new software paradigm that is models that depict the abstract behavior of software that are:-

  • Interpreted without a deep learning curve.
  • Easily produced and maintained.
  • Can be traced to the physical implementation.
  • Define the requirements of the software in an unambiguous way that predicts the implementation.

    These are the real problems that JAD\RAD does not solve.

    No single solution

    Agile, or rather JAD\RAD, may have some of the answers to risk reduction and could be a part of a comprehensive development framework. However, our goal is to examine, via a series of articles, abstract models that effectively describe systems behavior. Currently we are looking at Data Flow Diagrams (DFD) for an effective method of functional specification.

    No guarantee (or claim) is made regarding the accuracy of this information. Any questions or comments should be sent to:-