A Typical software development lifecycle has following phases- ordered by timeline
Requirement gathering
Design
Build
Demo
Testing
Fix issues
Deploy
Document
Maintenance
The golden rule is- The more time you spend at the top, the less you have to spend towards bottom.
So obvious, but we ignore it often.