This morning I did my Monday morning commute (200 miles) that I am doing 3 times a month for the last couple of months. I am just getting to that point where I can zone in and do the trip without much thought as to where I am. At this point, I only become aware of the landmarks and towns when I am curious how my timing is doing. With about 90% - 95% of the trip being highway, I make pretty good time.
The great thing about highways and roads is that they get us where we want without too many detours and with reasonable road maintenance (well, better than driving across the country side without roads). Roads are kind of interesting in that they restrict where we can drive and yet they provide a lot of value by typically following paths that others have traveled in the past.
I am not particularly interested in expressing my creativity and freedom by driving across arbitrary fields that don't have roads (besides, my wife gets plenty upset with what little off-roading I do). I am much more interested in getting somewhere in the quickest and simple way possible - scenic drives are part of a different story. We are content to live with this restriction, because it adds lots of value to our lives.
As we evaluate frameworks, we need to consciously decide which part of our work we need be creative in and what part we just want to get done with minimal effort and thought (but with sufficient quality). Frameworks like Ruby on Rails, really restrict us in many ways (for example: directory structure), but allow us to really concentrate our effort in areas where creativity matter to an application.
I also think back on the old story where an architect waited to lay the sidewalks at a university until after the first snow. He then looks at where the majority of the people tracked through the snow and lays the sidewalk along those paths. You can see this as a kind of framework extraction process as well as a wisdom of the crowds sort of thing.
So, as we looks at software frameworks, we really need to understand how they restrict us so that we can spend our time and effort to be more creative in areas that add value.
Kathy Sierra has a great right up on using constraints to increase creativity in her post "Creativity on Speed".
Well, this road stuff might be stretching it a bit,... but it seems far better than most road based metaphors used by large enterprises in the technology field. And besides, I have to think about something for those 200 miles. Happy driving.