Software Development is one such topic, and I often deal with trying to communicate the challenges of software with those who have little or no experience in it, so finding good analogies is always helpful for me.
Bernie Thompson took one such shot at an analogy in a post entitled "Software Development is like golf...". His premise is that your chosen path to the pin is always the problem, and to succeed you have to weigh your capabilities (people), the course (technology), and the conditions (the market).
As a (very) amateur golfer, I can agree with this analogy and it's one I may even use myself. The only disagreement I have with it is that this analogy can be applied to most engineering disciplines. That is what engineering is about anyway: balancing factors and making tradeoffs.
Still, it's a good analogy. In engineering you can't always "go big, or go home" as I like to call it on the golf course, and to be successful you have to be willing to adapt to changing conditions in your design, market, and customers.
In fact, in most sports the most successful teams and individuals are the ones that can adapt to the evolving situation of the game, and the way to adapt to the situation is to constantly assess tradeoffs like the ones Thompson chose to address in the game of golf.
Cross-posted at Code.Implant.