|
Home
Software process improvement Agile software development JAD and RAD System requirements System functional specification |
Software development paradigms, where models meet pragmatism.
Software process modelsRecently 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.
The Agile framework
In essence Agile addresses one central issue of software development:-
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:-
These are the real problems that JAD\RAD does not solve. No single solutionAgile, 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:-
|