In addition to these three, there are some things that simply won&#x27;t be understood fully until you&#x27;re in the middle of working on it, plus there are almost always unforeseen complications, edge cases, etc. Even if no major issues are encountered, having to deal with several smaller problems can slow down development significantly.<p>Non-engineers probably liken feature and project completion to a simple shot at a bullseye but it&#x27;s really more like trying to hit a moving target at the end of a labyrinth.