Saturday, October 01, 2005

Agent based software can improve software productivity.

Software is now built as a manufacturing model. I.e. first requirement is collected and then software is built. The user does not see the end product till the end of the Software Development Life Cycle (SDLC). To ensure outcome, the SDLC process has been developed. The most popular SDLC process model that is the waterfall model. But of late, new software developments have been introduced like the "Extreme programming". The Extreme programming approach is to build code often and get feedback from end user.

Let me elaborate the waterfall method. The whole software development is divided into milestones. At the end of each of these milestones, significant deliverables are expected. These deliverables are decided upfront when the Statement of work is created. The project is measured or tracked on these deliverables. For a typical waterfall method, the different phases are a) Requirements Definition, b) Detailed Design, c) Construction and Unit Testing (CUT) phase, d) System integration Testing and e) User Acceptance testing.

In the requirements phase, what needs to be built is documented and shared with the user community. The content is communicated as Use cases. The use cases depict how the user and the system will respond to each other i.e System and user interactions. At the end of this phase the team knows what the need of the end user is. This phase is normally 25 percent of the whole software development project. The next phase is design. This is phase takes up another 25 percent of the project. In this phase the use cases which is written by a business analyst, depicting the business operations (a parallel world), is converted to a sequential world. In this phase, design decisions on performance, scalability, etc are taken. The output of the design phase is used for the CUT Phase. Code and Unit test plans are written and unit testing is completed. Then the whole system is tested as part of System integration testing and User acceptance testing.

If somehow the computer is made to operate in a parallel world, then some of the steps in the SDLC can be significantly reduced. The different phases that will be reduced or removed completely are a) Detailed Design, b)System Testing, c) Construction and Unit testing, and d) User acceptance testing. Since there is a reduction in the overall SDLC we can expect to get atleast 40 percent improvement in productivity.

Software promoted on this site is based on Process Calculi. Software based on process calculi operates in a parallel world and it works on interactions between agents in the process. Since software built on process calculi operates in a parallel world (concurrency), it will add significant productivity improvements to business software.