Civil engineering is a complex job which requires many facets of understanding and lots of different perspectives. It is necessary to do an immense amount of testing and understanding issues. It is also imperative to look at every possible issue and not narrow down the solution too quickly. Not testing everything can lead to missing an elegant solution and more costly effects. Although improvisation shouldn't be taken advantage of the entire project, it might be helpful during the process.