I think we all come upon situations where we can do something the simple way, maybe at the cost of efficiency, or the most efficient way, but it won’t be clear and easy to repeat or maintain long term. In software this is especially true because of the flexible nature of what we’re doing, but it happens in all walks of life.
You can take the freeway, and that is usually the fastest way between points. But anybody who has live in Los Angeles knows that sometimes the freeway is more like the parkway, as in, a parking lot full of cars going < 5mph. Just 100 yards to either side of this molasses like river of metal and rubber, there are surface streets whose average speeds are in the 20-30 mph range, even including stop signs and lights.
In the past, we would just take the freeway anyway. Who knows what lies on those streets? Pick the wrong one in LA and you’ll get a nice up close view of the spot where Reginald Denny was met by an angry mob back in the 90′s. Pick the right one and you will probably get to your destination a few minutes earlier and with a lot less feeling of helplessness and stress.
However, today we have some measurements available to us, and can make informed decisions. These days, before I go to drive anywhere, I pop up google maps. I instantly have some actual, reasonably accurate numbers, for where the parking lots and auto-bahn like areas of the freeways are. If I haven’t been on one of the streets, I drop my favorite little traffic helper on the spot, as I call him “street view man”, and get an idea for who I might encounter whilst enjoying the adventure of touring a new neighborhood.
When writing software, do you have similar measurements available to you? Why not? Is it too hard? Not valuable enough? How much is your time worth? How much is the program’s execution time costing you, or your clients?
Measure something today. Its fun, and graph porn is the best way to brag.