I&#x27;m going to take a wild guess and say you don&#x27;t really care that much about the purpose of your software. You&#x27;re not a game developer who&#x27;s been an avid gamer since age 4, or a silicon valley entrepreneur who truly believes their web app is going to change the world. You&#x27;ve identified a niche that&#x27;s liable to make some money, and are diligently plugging away at an implementation.<p>Your lack of inherent motivation from the product domain means you don&#x27;t get any satisfaction from just getting the requirements met, so you hunger for the satisfaction of making a beautiful architecture. But all architectures have flaws. As a competent engineer, you notice the flaws in whatever you design, so your only source of satisfaction is compromised.<p>I would try to find work on a problem that excites you. When you get that giddy rush just from seeing your program give a correct answer. I think most software developers have felt this way about some project during their learning process. Look back and try to remember where it happened for you.<p>You&#x27;re in trouble if software craftsmanship is your <i>only</i> source of motivation. It&#x27;s a great motivator, but it is not enough by itself to carry you through a big project.<p>Now that you&#x27;re in this project, it may be impossible to quit. I would find a side project to work on that provides more satisfaction. That should make it easier to plug-n-chug away at your current project without becoming depressed at the inevitable small failures in elegance and design.<p>I&#x27;ve never understood how developers can be happy writing CRUD apps or wiring together a bunch of pieces made by someone else. You gotta search for meaning. Even if you take a pay cut, it&#x27;s worth it to find work that you care about.