Software Idealism, Pragmatism and Elegance

GraceKelly

Often when working on projects there are two opposites types of personalities at work: Idealists versus Pragmatists. Often both sides show great animosity for each other. What’s so problematic about battles between idealists and pragmatists is that great solutions to problems are most often combinations of these two approaches. Results come from elegant combinations of pragmatism and idealism. Dogma is the enemy…
Elegance is our best friend. Now before the Dogmatists (Idealists + Pragmatists) claim the elegance of their respective approaches, lets look at the actual definition of elegance: pleasingly ingenious and simple, related to Latin’s eligere, ‘to choose, or select’. Elegance is choosing or selecting a simple and ingenious solution. Nothing more, nothing less. Idealists over-design, in love with excess flexibility.  Pragmatists under-achieve by rushing to action, in love with excess quantity.
Elegance is in finding a fine middle point between these extremes. How to achieve elegance in software design and implementation is not always intuitive or straight forward. One the the best talks on this topic is Jim Weirich’s from Mountain West Ruby Conference 2008. He skillfully combines the approaches of the noble blue collar pragmatists with the space-age white collar idealists. He advocates a path that does not over-design, or over-implement. He points out that a solution must be appropriate to be elegant.
James Joyce said that great writing comes from Wholeness, Harmony and Radiance. I think he meant understanding the problem, creating the right goals, and selecting or choosing the elegant path to meet those goals.  It sounds easy, but simple is much harder than complicated. If one persists, a certain timeless beauty becomes possible. This feeling transcends elegance, and feels like Grace from the constant struggle of the programmers trade.

Often when working on projects there are two opposites types of personalities at work: Idealists versus Pragmatists. Often both sides show great animosity for each other. What’s so problematic about battles between idealists and pragmatists is that great solutions to problems are most often combinations of these two approaches. Results come from elegant combinations of pragmatism and idealism. Dogma is the enemy…

Elegance is our best friend. Now before the Dogmatists (Idealists + Pragmatists) claim the elegance of their respective approaches, lets look at the actual definition of elegance: pleasingly ingenious and simple, related to Latin’s eligere, ‘to choose, or select’. Elegance is choosing or selecting a simple and ingenious solution. Nothing more, nothing less. Idealists over-design, in love with excess flexibility.  Pragmatists under-achieve by rushing to action, in love with excess quantity.

Elegance is in finding a fine middle point between these extremes. How to achieve elegance in software design and implementation is not always intuitive or straight forward. One the the best talks on this topic is Jim Weirich’s from Mountain West Ruby Conference 2008. He skillfully combines the approaches of the noble blue collar pragmatists with the space-age white collar idealists. He advocates a path that does not over-design, or over-implement. He points out that a solution must be appropriate to be elegant.

James Joyce said that great writing possesses Wholeness, Harmony and Radiance. I think he meant understanding the problem, creating the right goals, and selecting or choosing the elegant path to meet those goals.  It sounds easy, but simple is much harder than complicated. If one persists towards simple, a certain timeless beauty becomes possible. This feeling transcends elegance, and feels like Grace from the constant struggle of the programmer’s trade.

Leave a Reply

Please insert the signs in the image: