Philip Glass is for me the best writer on software development from a almost-academic-research point of view (#). In <i>facts and fallacies</i> He bangs on a lot about complexity (25% increase in code, 100% increase in complexity) and opportunity cost. Brooks touches on this in the mythical man month.<p>What I am saying is that this is a good blog post, but this is stuff we should all know, all push to the PM and CEO with the morning mail, not have to be reminded of.<p>Just if we have to relearn this every year, let alone every generation, what are we missing ?<p>(#) really we have terrible software engineering research in the real world.
The hidden cost of early optimization can be hidden complexity and bugs. Take something slow and simple, replace with a cute trick that complicates and has corner cases and boom maintenance nightmare. In many cases while the optimization is obvious, it is unnecessary since no cold hard data on the cost of execution in production of the slow code actually exists
This has been a popular point lately. I wonder if it is a reflection of our current tool set around architecture and design. It seems realistic that implementing a "simple" new feature should not be inordinately costly, I don't dare to claim it should be a one to one relationship, but the current ratio seems out of control.<p>I believe as the software industry increases it's understanding of architectural design that we will learn to add most types of features, in a systematically less costly way. Making them easier to maintain,update, and detangle from the rest of the software.<p>In fact, I am finding that we are just now arriving at that point with functional languages. Not that functional is our savior, but it does provide a good set of tools for this particular problem.<p>To wrap this up, I don't think software needs less code and less features. I think it needs better tools and methodologies with which to deal with creating, updating, and maintaining features and complexity.