Anytime I start a new project I’m usually super pumped to dive into some code and get something done. There I am, a cup of coffee and three energy drinks later, translating the latest business requirement into something simply amazing… or more likely, just another contact management application for the CEO of unnamed company X. But I’m happy, delightfully punching keys on the keyboard, slinging abstractions and enterprise patterns like its just another day. Just one more look at the functional spec and, wait, what is this? That’s right, I just realized that this is not a functional spec at all. This is Functional Spaghetti.