&gt; <i>The real art to web dev consulting is being able to build a flexible enough design to withstand these sorts of changes and still remain elegant and well thought out.</i><p>This is where it gets tough. I happen to have <a href="http:&#x2F;&#x2F;www.colorforth.com&#x2F;POL.htm" rel="nofollow">http:&#x2F;&#x2F;www.colorforth.com&#x2F;POL.htm</a> [1] open, a portion of which illustrates the other side of this fence (emphasis mine):<p>&gt; <i>Do not put code in your program that</i> * might * <i>be used. Do not leave hooks on which you can hang extensions. The things you might want to do are infinite; that means that each one has 0 probability of realization. If you need an extension later, you can code it later - and probably do a better job than if you did it now. And if someone else adds the extension, will they notice the hooks you left? Will you document that aspect of your program?</i><p>Obviously all of this must be taken in moderation, of course. But it hints at the problem I&#x27;m trying to describe: the design needs to be flexible, but <i>scoped to the problem space you&#x27;re working within</i>. Bamboo is flexible, and usefully so; try and generalize that flexibility to the fullest extent and you&#x27;ll end up with goo which will expand to fill the problem space entirely and then subsequently accomplish nothing.<p>So, it&#x27;s about figuring out where flexibility will be most critical (eg, for a part of the architecture that will necessarily be &quot;locked in&quot; with a lot of other components or mental models depending on it) and where you should be able to get away with rigidity, either because it&#x27;ll be easy to redesign (few dependencies &#x2F; easy to conceptualize and subsequently retool) or because even Revision #31781 won&#x27;t need you to change that bit.<p>...I think I just found myself at the brain-dump problem too. Haha<p>I&#x27;m also curious... I&#x27;ve known about the &quot;kill code&quot; thing for a while. I haven&#x27;t really gotten into coding especially seriously as yet (lots of analysis, but nil implementation), and it&#x27;s hard to contemplate the idea of doing this, even for situations where I know I definitely need to, like iterating on properly implementing something I&#x27;ve never explored before. How does one acquire the &quot;iron will&quot; mindset you talked about?<p>(I ask this as I&#x27;ve recently discovered my lack of get-up-and-go is due to a wonky&#x2F;underpowered thyroid (giving me chronically low motivation); now that I know what&#x27;s wrong I&#x27;m working on fixing it, but I suspect the anxiety that&#x27;s developed over time will <i>not</i> go away without some mental effort as well. You could say I&#x27;m a bit of a worst-case scenario when it comes to juggling multi-domain mental task sequences generally speaking.)<p>[1]: Search <a href="http:&#x2F;&#x2F;www.colorforth.com&#x2F;blog.htm" rel="nofollow">http:&#x2F;&#x2F;www.colorforth.com&#x2F;blog.htm</a> for &quot;Problem-Oriented&quot; to find the hyperlink to the mentioned URL. There are many interesting links to other places on this page, which I don&#x27;t think are mentioned anywhere else on the site. (Translation: there&#x27;s no sitemap, category system, or menu; you have to dig.)