This post originated from an RSS feed registered with Ruby Buzz
by Matt Williams.
Original Post: The hardest thing
Feed Title: Ruby Blender
Feed URL: http://feeds2.feedburner.com/RubyBlender
Feed Description: This blog contains short-ish ruby tips, hints, and techniques.
The hardest thing to do while programming is not the programming itself. It is the "Not Programming".
That is to say, the hardest part is not adding feature #65353, which you're probably never going to use, but it makes the code ever so much more flexible. It is the question of "Why am I doing this? Do I really need it now (or ever)?"
Lately I've very much been on a simplicity kick; looking around at a lot of projects around me and how they're <strike>buzzword compliant</strike>over architected, I can't help but to think of all the ways in which people are prone to feeping creaturitis and Big Mac Programming.
I think that there are several things which can help -- in fact, I've coined a phrase "Just Enough Programming" -- more about that will follow, but here are a few things to help with "Not Programming":
BDD and/or TDD, although I think that BDD is better about understanding why we are doing something.
DRY code
Lighter frameworks -- ones which do not require as many lines of configuration as they do of code. Infinite scalability is for imps and monkeys with typewriters.
Declarative code -- it can be easier to limit ourselves this way (by the same token, do not fall into the trap of Rococo Programming)
A student once approached the master and asked, "Does a Foo have the Bar nature?", to which the master replied "Groo" and returned to his meditations.
Shorter integration cycles
Occam's Razor: "Shaves as close as a blade or your money back".