For ages, the waterfall process has been used, in which project deliverables were completed. Each deliverable symbolizes a different step of software development in the waterfall development project, and each stage typically ends before the next one can start.