Very early on when learning computer science in university, in bootcamp, or on the job, you will realize that Software Engineering occurs in cycles:
- Designing
- Building
- Testing
- Deploying
I've simplified it a bit above, but for the most part this is an agreeable cycle. When designing however, I have found that the projects that take the longest are often scoped poorly in consideration for the testing phase.