Waterfall Methodology
What
Way of creating software, where software was planend, built and tested in distinct phases.
Figuring all things up front
Built on old engineering concepts for hardware/buildings etc
Advantages
Waterfall is superior to Agile when the requirements are already locked in and are guaranteed not to change due to clarity gained from knowing exactly how much work there is to do at the inception of the project.
Issues
The way software was planned was fraught with many unforseen issues, which forced serious compromises in both quality and budget
By the time the software was live,
it was out of date
Not meeting the customer needs
lots of bugs
Long releases and fewer releases
When the consequences of their work/code is not apparant fairly quickly ie from testing/integration etc, the feed back is slow and the it doesnt register properly
devs start to think in terms of just creating/modifying features rather than preventing them or being able to find them, ie pass the responsibilty elsewhere.
The further along the process an error is made, the more it costs to fix
bugs which often happen when all the dev work is done and in integration phase cost more to fix and leaves uncertainty when codeing
Changes in one area, may affect other areas and testing of the whole system needs to be redone
In order for anything to work, everything has to work
Issues with batching features, which waterfall proposes
long release cycle
hard to know which feature caused the issue
Forces code to be built that is unchangeable
Manages want to know that the work is being done and look for improvement
But dev work is not that easy, it information work
measuring productivit like time spent coding, lines coded etc on complex work leads to demotivating workers
Stages
Requirements
Information is gathered from subject matter experts and prospective users to creae a requirements documents
Requirement documents
Set of instructions that tell us what features we are supposed to be building in the current release
features
things that software documents
Design
Software is designed to fulfill the written requirements.
The design is usually in the form of diagrams, ie uml, that describe the design
It is not code but another document
containing diagrams and how software will be built
It is not as precise as a blue print for a building
Implementation
Where code is written conforming to the design documentation.
Transforming the language of the design to code for the computer
Integration
When all code is written this phase begins
All the code written is put together into a computer program.
Generally the first time this happens.
This is where many bugs appear
Testing
Once the program is ready and integrated, a release, it is tested
Verifies the software does what it should and proves the software works as expected.
Installation
The software is put on the machine, and released/started and can be used
Cds, link to download, api available to be consumed.
Maintenance
Ongoing, where the program is monitored and problems are fixed
Last updated
Was this helpful?