Waterfall only works if the programmer knows what the client needs. Usually it goes like:
- Client has a need
- Client describes what they think they need to a salesperson
- Salesperson describes to the product manager what an amazing deal they just made
- Product manager panics and tries to quickly specify the product they think sales just sold
- Developers write the program they think product manager is describing
- The program doesn’t think. It just does whatever buggy mess the programmer just wrote
- The client is disappointed, because the program doesn’t solve their needs