Software creation is an engineering discipline. It has been romanticized in movies where computer hackers sit in front a computer, let their hands fly across the keyboards and everything works fine. This is not the case in the real world. Similar to building a house, each software project needs a good design.


I have been on many projects where design was ignored. This leads to many problems. Often times, rewriting key pieces of software that is similar to asking a sub contractor to move a weight bearing wall on a nearly finished home a few inches to the right. The costs and timelines skyrocket.


So believe me, when your software engineering firm comes to you with loads of design paper work asking for your sign off before they get started, read it carefully. View it as house plans. Remember, it will be a lot easier to move that wall a few feet to the right before they start building.