Creativity, Improvisation, and Hacking
There’s an interesting article today on Infoworld, "Fostering Creativity", which references this article from the Harvard Business Review. Both articles talk about "bricolage", which basically describes the act of building something using whatever tools or materials you happen to have around. This struck me as a good explanation of the two seemingly contradictory meanings of "hack" in the jargon file:
- A quick job that produces what is needed, but not well.
- An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed.
Sometimes as a programmer you have lots of time and resources to solve a problem; at other times you find yourself working with a tight deadline and a few crude tools. The first type of project requires good design ability, the second requires having good improvisational skills. Saying that the result is a "hack" means that you did a good job, considering what you had to work with.