 |
| |
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.
|
|
|