The waterfall development model was originally used in manufacturing and construction where changes are very expensive, and was adapted for early software development since there were no other formal methods. This hardware-oriented waterfall model structures development into sequential phases like requirements, design, implementation, testing, and maintenance.