The process used at a certain company consists of:
- Create a layout according to some designs made in a web page design tool. (CSS, html)
Requirements come in with "functional requirements". These consist of 100's of lines of business directions. E.G. Create a Table on page X. Column1 has numeric data. Column1 is the client code. Column2 is a string...etc.
Write code to meet all functional requirements.
- When all code is checked in, send to QA (which is the BA that wrote the requirements) for inspection, bug finds and change requests.
- Punt back to developer with a list of X bugs and Y change requests.
- While bug finds or change requests > 0 go to step 4.
The agile development environments I have worked in allow, if not demand, early QA inspection and early user acceptance. So, pieces of the program can be refined and redefined before the entire application is in place.
Not only that, but the process leaves little room for error or people changing their minds. Instead, those "change requests" come in at the last stage when they do the most damage. And being that a bug-fix's cost increases over time, this is a costly way to write code.
I am no waterfall expert. As described, is this waterfall being mishandled in some way? How does waterfall address my concerns?