Success

The software development process has come a long way in Twenty years. Lots of people now develop software in different ways. Analyzing, Design, Integration and Testing all have different variations. Some customers have specific requests in how an application gets documented. In this world it can be extremely difficult to be conscientious. Generally speaking it is a weighing up of everything a customer wants, to how much he is willing to spend so that you can deliver on time with or without bugs. If something gets designed correctly, the testing phase becomes shorter as there will be less rework. It will also be maintainable and reliable.

 

Some customers decide that documentation is the prerequisite of success, Flairtex has found many times where there has been a lot of documentation written on requirements but with no design criteria and no behavioral model with just a limited amount of time to achieve the end result. This is usually a case of pulling up the sleeves in the last week and locking yourself in the room and doing three weeks work in one! Pulling the rabbit out of the hat can be very difficult to do and in this case it can only be done by the relative experience of the individual.

Rapid Application Development tools are extremely useful for prototyping, prototyping is a very powerful technique, it will give the developer an idea in how to design the system's foundations and to give insight into various data modeling techniques and heuristics. In experience however the norm is that a prototype becomes the design (usually due to costing considerations), and that documentation systems have to be used to reverse engineer the prototype to condone the exercise!

There are some things that cannot be overlooked, each procedure written has to be tested before being integrated into the grand design, commonly called Line Testing. It doesn't need much time to put a little harness around a procedure to check its functionality. It also allows the programmer to debug and test as the project gets developed. With the integration phase all these little pieces knit together, if the binding is correct then the system should work 95% of the time. However, there are usually difficulties with parameter passing and typing which lead to run time errors which can cost time to sort out.

Some CASE (Computer Aided Software Engineering) tools are better than others. In the early days Yourdon was presumed best, Oracle's entity relationship diagrams were fantastic, now UML (Unified Modeling Language) has taken the lead and encompasses all phases of software development (except that sticky area of prototyping but even this too can have a reverse engineering capability). All provide an abstraction so that the analyst has to interview the data and to make his fuzzy initial image clearer and also to give the customer a better understanding as to what it is that he will be getting. UML has adapted to suit lots of different environments such as web based applications, Real Time Embedded, RADAR defence systems, Control systems. Its endless. They are extremely useful if there are a number of people on a project all wanting to know things from the other. It minimizes staff interactions, it also aids parallel development.

Parallel Development if not handled correctly can become a nightmare for bug tracking, what got fixed in this revision? Problems should be traceable and track-able, delivered items should be controlled, if a problem is solved it should not have a domino effect. Clearcase is a tool that can deliver, it is quite simply the best.

©1992 Flairtex Ventures Ltd
VAT Registered 792 6375 87
 
--