Software Idealism, Pragmatism and Elegance

January 28th, 2010

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.

Falling Down and Getting Back Up Again

January 22nd, 2010
It used to be that a high-tech engineer would be fired for being redundant, or if they failed. However, now days engineering groups that are perfectly successful are getting laid off the day they finish products. Getting fired for success is pretty new, since most companies viewed the engineers that understood how their products worked to be assets. At the very least, depriving one’s competitors of talent was worth doing everything possible to keep engineering staff around. That thinking appears to be old fashioned.
Companies are experimenting with all kinds of approaches to staffing. Some fire 5% of their staff yearly. Others have launched on diversity programs. It seems to be fashionable to call these social engineering exercises of the workforce stupid, moral failings of management, or conspiracies. Some simply cite globalization, or executive incentives tied to fabulous piles of stock options.  Folks like Jack Ganssle go on and on, as journalists love to do. Fear mongering sells.
I wonder about this. As a human being, I often make mistakes, blunders, and mis-predictions. In fact, I really only seem to learn the hard way, by making mistakes. The only way I seem to be able to avoid making mistakes to to avoid action. I think most people are fairly familiar with the reality of this human condition. But for some reason, when evaluating these new trends in labor policy, many of us fail to realize the humanity of those making the decisions. Things change, and folks are trying to adapt in the only possible way, acting, failing, trying again.
I do not mean to say that there are not executives with self-serving motives and low character. In fact I have seen some fairly astounding lack of character in managers throughout my career. What I am saying is that to ascribe such faults to the natural course of change in an industry is not rational, it’s emotional. Therefore, the failing is in us engineers, it’s not our employers. Rut-roh…
Why would I say such a thing? Well, the truth is that companies are experimenting with staffing because competition demands it, and they have the power to do so. While we engineers are not as powerful as the executives that decide the fate of many, we are far from powerless. The first thing to do is recognize that the employment game’s rules have changed. The next thing to do is play to the new rules. Eventually we will learn to play the game well. Now that the market for engineering talent is heating up again, here are some ideas that have been working for me:
- Consider yourself a free agent. Serve your employer and give them excellent value. However, the argument that bending over backwards will make the company more loyal to you is silly. Appealing to our sense of corporate loyalty need no longer restrain you; there is no loyalty. Reject all such coercions from managers trying to get even more from you. If someone says you’re less likely to be fired if you work weekends, you’re going to be fired eventually, maybe soon. Best to spend your weekends looking for new work.
- Join local trade and networking groups. By going to the excellent Kickstand networking group here in Boise, I have learned of  new local companies developing LED street lighting, blood tests on silicon chips, wireless power metering, Internet appliances, and media/advertising software. And this is Boise! Get out there and find out what’s going on. Meet the people who might need you, now or in the future.
- Go to demos and specialized group meetings. When I lived in Silicon Valley I saw a demo from Steve Wozniac at Xerox PARC. I grew as an engineer from that demo. I also learned a ton about Internet publishing through my local Drupal group (which just happens to have some real Drupal powerhouses that attend). There are lots of doors that lead to new ideas, products, tools and (dare I say it) adventures. Make sure you’re taking in new stuff all the time, finding new interests and pursuing them.
- Learn from all the people around you. Especially focus on people who do things differently. It is tempting to hang around with those that agree with us. However, the real magic in learning happens when we confront the unfamiliar and threatening new ideas we will not hear about unless we ask. Connect with people and ideas you wouldn’t normally entertain. It just might lead you to the place you’d rather be.
- Take friends in other industries and vocations out to coffee. Ask them what they like and don’t like about what they do. Consider what it is about what they do that you might like. Remember don’t make hunting for work ideas into a status thing. It doesn’t matter if a friend is a CEO or an hourly worker. Don’t always look up the food chain. Meet with folks independent of status or position and consider everything they say. You might just decide you’re more senior than you’d like, as opposed to a frustrated superstar.
These are just a few ideas that have been working for me. There are many more angles on the new economy for us nerds. It could be as simple as writing an app for the iPhone, or as complicated as changing careers to the fine wood boatbuilding you’ve always admired. Anything is possible when you never know what the next day holds. Believe me, falling down and getting back up again is normal and necessary. Only the emotionally stupid fall down and end it there.
- Free Agent Nation, a book about freelancing
- A Whole New Mind, a book about developing ourselves
- Falling Down, a film about an engineer gone wrong
- Happiness book reference

Falling_down

It used to be that a high-tech engineer would be fired for being redundant, or if they failed. However, now days engineering groups that are perfectly successful are getting laid off the day they finish products. Getting fired for success is pretty new, since most companies viewed the engineers that understood how their products worked to be assets. At the very least, depriving one’s competitors of talent was worth doing everything possible to keep engineering staff around. That thinking appears to be old fashioned.

Read the rest of this entry »

Cribbage Multiplayer iPhone App Review

January 18th, 2010

la_class_submarine

My sister’s in-laws like to visit her home during Thanksgiving.  I don’t blame them, she’s a fabulous cook and host (ess). These occasions stuck in my mind. When my brother-in-law’s family broke out a cribbage board and played into the night, it looked like a ton of fun. But I never learned to play.
Recently I discovered that cribbage is a favorite of the US Navy’s submarine service. This little bit of trivia (thank you Wikipedia) made me think of learning cribbage again. So I downloaded an iPhone app (my preferred solution to almost any problem) and set to work.
My choice was Cribbage Multiplayer.  I absolutely love this app.  It had directions for me to get started and was very intuitive to play.  At the bottom of the screen it prompted me for the next move, so I really don’t have to remember every rule to play easily.  The app allows me to play against the computer, or to use it to play with another.
I think the iPhone app my be good for submariners, if they are allowed such luxuries.  I had a chance to visit the Guardfish once (an amazing evening courtesy of the XO of the Guardfish in 1983).  I can understand how much a cribbage board could brighten a very long cruise.  My thought is that the Navy should issue iPod Touches to the crew of all submarines and include Cribbage Multiplayer.  If I had the means, I would make it so.

My sister’s in-laws like to visit her home during Thanksgiving.  I don’t blame them, she’s a fabulous cook and host (ess). These occasions stuck in my mind. When my brother-in-law’s family broke out a cribbage board and played into the night, it looked like a ton of fun. But I never learned to play.

Recently I discovered that cribbage is a favorite of the US Navy’s submarine service. This little bit of trivia (thank you Wikipedia) made me think of learning cribbage again. So I downloaded an iPhone app (my preferred solution to almost any problem) and set to work.

My choice was Cribbage Multiplayer. I absolutely love this app. It had directions for me to get started and was very intuitive to play. At the bottom of the screen it prompted me for the next move, so I really don’t have to remember every rule to play easily.  The app allows me to play against the computer, or to use it to play with another.

I think the iPhone app my be good for submariners, if they are allowed such luxuries. I had a chance to visit the Guardfish once (an amazing evening courtesy of the XO of the Guardfish in 1983). I can understand how much a cribbage board could brighten a very long cruise. My thought is that the Navy should issue iPod Touches to the crew of all submarines and include Cribbage Multiplayer. If I had the means, I would make it so.

What is Relaxed Control?

January 15th, 2010

Mary_Poppins

Last night at Kickstand, one of the panelists (Steve Nipper, I think) mentioned David Allen’s GTD.  Sometimes I struggle with the description of why GTD is important, and I thought the panelist struggled much the same way I do (my impression, disclaimers apply).  Upon reflection, I think the concept that doesn’t get mentioned in a recommendation of GTD is Relaxed Control.
I think the thing that made Relaxed Control hard for me to find was that I thought I already knew what it was.  In other words, I read the book, I read about Relaxed Control, I decided that Relaxed Control is what I wanted, and off I went to do do do.
But as I have struggled over the years to implement GTD, and achieve RC, I’ve been forced to look at the concept more carefully.  What does it mean?  When working on the How of GTD, we need to have the clearest possible conception of the What, the Relaxed Control we seek, as our guide.
One of the best ways to explain Relaxed Control (abbreviated RC, and pronounced ‘Rock’), is to define what it isn’t.  After all, one can be very busy, and yet relaxed, focused and in the flow of things.  We can also be very busy and Out Of Control (OOC, pronounced ‘Awk!’).  My definition of Relaxed Control is not-OOC (pronounced ‘Nawk’).
Being a nerd myself, a problem I’ve had implementing GTD is holding onto it too tightly.  The tighter I squeeze, the more painful details slip out of my hands, and paradoxically the closer to OOC I go (think, Admiral Boom).  A Chinese general once remarked that “perfection is the enemy of good enough”, which seems apropos to my situation.
So now I focus on Good Enough in my GTD (GEGTD, unpronounceable at this point, acronyms apparently not my strong suit).  These days Mary Poppins is as much an inspiration as David Allen.  That said, spit spot, off I go…

Last night at Kickstand, one of the panelists (Steve Nipper, I think) mentioned David Allen’s GTD. Sometimes I struggle with the description of why GTD is important, and I thought the panelist struggled much the same way I do (my impression, disclaimers apply). Upon reflection, I think the concept that doesn’t get mentioned in a recommendation of GTD is Relaxed Control.

I think the thing that made Relaxed Control hard for me to find was that I thought I already knew what it was. In other words, I read the book, I read about Relaxed Control, I decided that Relaxed Control is what I wanted, and off I went to do do do.

But as I have struggled over the years to implement GTD, and achieve RC, I’ve been forced to look at the concept more carefully. What does it mean? When working on the How of GTD, we need to have the clearest possible conception of the What, the Relaxed Control we seek, as our guide.

One of the best ways to explain Relaxed Control (abbreviated RC, and pronounced ‘Rock’), is to define what it isn’t. After all, one can be very busy, and yet relaxed, focused and in the flow of things.  We can also be very busy and Out Of Control (OOC, pronounced ‘Awk!’). My definition of Relaxed Control is not-OOC (pronounced ‘Nawk’).

Being a nerd myself, a problem I’ve had implementing GTD is holding onto it too tightly. The tighter I squeeze, the more painful details slip out of my hands, and paradoxically the closer to OOC I go (think, Admiral Boom). A Chinese general once remarked that “perfection is the enemy of good enough”, which seems apropos to my situation.

So now I focus on Good Enough in my GTD (GEGTD, unpronounceable at this point, acronyms apparently not my strong suit). These days Mary Poppins is as much an inspiration as David Allen. That said, spit spot, off I go…

Phil Bolger: An Open Mind

December 28th, 2009

ply_yawl_sail_plan

I have not been writing, nor reading for that matter, over the last several months. So I was excited to have Santa bring me a copy of Phil Bolgers’s Boats with an Open Mind.  Spending the last few days leafing through the work of Phil Bolger reminds me that design is not a job for wimps, or for folks afraid to have strong opinions.

While pleased with a new position at Micron Technology, I have been working an uncharted area of my trade furiously for several months.  When I took this position my wife wisely advised me to drop other pursuits in the interest of focus.  Like so many things, she helped me remember the value of doing one thing at a time.  Phil Bolger clearly understood the value of focus.

Phil’s work combines the simplicity of the Model T, with the craftsmanship of the masterful New England boat builders of the last two-hundred years. The ability to relentlessly pursue design, and understand the sometimes subtile difference between success and failure, stood Phil well.

It is with sadness I report that Phil died this year. His story ends with the clean lines and simplicity that marked his work and his life. Not one to shirk a challenge Phil left this world violently. I wish him godspeed on his next expedition.

The Blue LED of Death

September 11th, 2009

Blue_LED

Recently I bought a nifty little USB charger for my iPod touch and mobile phone.  You can build these things, but I was in a rush, and Radio Shanty had them on sale. I was so pleased at how tiny my vacation bag was without my enormous collection of wall warts.

We get to our mountain cabin, tuck the baby into bed, and plug in the charger. Ack! The Blue LED of death!  Why must almost every electronics manufacturer put these obnoxious super-bright blue LEDs into everything.  Is it really a feature?

Sure you can say “night light”. But what night light makes one wince? I once worked on a pair of computer servers from a reputable maker.  The blue LED on the front of the box was so bright it hurt (not kidding) whenever I failed to turn my head before approaching the machines.

When I looked inside these servers, I found a light pipe over one foot long to make the bright blue light come directly out of the center of the machine (straight into my face). So the design team on the computer actually worked long and hard to make this death ray come out of the center of the control panel.  This is really quite far away from the “pilot light” concept, the little stupid light that tells one a machine has power.

Of course the solution is black electrical tape.  However I would urge design teams to send the marketing girl/guy packing when they pop in to ask for a bright blue LED on something.  Apple has the right idea with pilot lights, dainty soft, unfocused lights, discretely hid on the front of devices.  Design is about removing that which does not belong as well as adding what does.  Unless there is a compelling reason to put a blue death ray on something, it’s better left off.

The Element: How Finding Your Passion Changes Everything

September 10th, 2009

the_element_ken_robinson_cover

One of the nicest things about taking a summer sabbatical (or siesta as my darling wife prefers to call it), is that I get to read books. Maybe I don’t read a bunch more when on vacation, but I do get to noodle with a book’s ideas more than I do when hard at work. The Element is a book I enjoyed thinking through.

It appears that I dog-eared about 50 pages of 300 in this book. That might be an unofficial record. It is surly an indication of a good read.  To be honest, I was surprised it was such a good read. You see, the book appears at the beginning to be a book about education. And I must also admit that education is not a subject I relish.

The Element is not a philosophical treatise on education methods, though it does discuss why we in the first world might not be meeting our educational goals. Primarily the book is packed with interesting, unusual stories about people who found what they most loved to do and were best at achieving. The biographies are fantastic.

I was forced to recollect my own extremely mixed feelings about education. While talented and interested in schoolwork, my results were mostly mediocre. And I was truly unapologetic to my, justifiably exasperated, instructors. One doesn’t have to be a poor student to get something from these biographies. They are interesting and diverse. The stories cover good and not so good students.

The point being made in The Element is about finding resonance, or a relationship with an activity, vocation or art. Discovering an interest and a pursuit can meld into an exceptional life. And someday, maybe such lives wont be exceptional. The Element is a guide for those of us still looking for ways to find their own sweet spot in life. I think The Element may just have helped me get a bit closer.

Software Postmortems are Software Management

August 13th, 2009

Skeletal_Sections

So having been careful about requirements, prototyping iteratively, testing with real users early on and getting it out the door quickly, what now?  No doubt users are calling, or emailing questions, feature suggestions, raves, rants and some, hopefully occasional, hate mail.  There are some naysayers at this point hollering that it went out the door too soon.  Be calm…

Read the rest of this entry »

Never Design Top Down

August 5th, 2009

bottom-up

I just off the phone with an old High School chum.  We got to talking about Bottom-Up Thinking as a way to set direction when a situation is unclear or changing too quickly. It was in the context of career, so I gave a lot of unsolicited advice … ‘natch.

Read the rest of this entry »

The Best Free Software Books

July 29th, 2009

Behind_The_Green_Curtain

Recently I saw an Ignite Boise presentation from a woman who read 200 books in one year.  Many of these were classics.  You may be interested in some of the classics in computer software. Classics do tend to become free eventually.  Here are some good ones:

Apollo 11: And They took Velcro?

July 23rd, 2009

Apollo-Moon-Mission

Last year at a family gathering, someone from the younger generation commented that they had no idea why NASA was still in the business of shooting people into space. They felt like the money was sorely needed for things like the next generation of renewable fuel, for example.

My father was there, a sixty-something electronic engineer who worked on Apollo. He said many important things came out of the space program. Naturally he was asked how exactly our society benefited from the Apollo program.  He replied that important inventions, like Velcro, had come from the space program. Velcro?

Read the rest of this entry »

What I Want for Christmas: Google Chrome OS

July 22nd, 2009

santa_claus_close

From the Google Chrome OS announcement:

Speed, simplicity and security are the key aspects of Google Chrome OS. We’re designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web.

Recently, I failed to notice a Google malware notice on some search results.  In a scene straight from the late 90’s, I clicked on my browser, it crashed, followed by Windows crashing too.  Been a while since I’ve seen that blue screen of death.  Kinda missed it…not!

Read the rest of this entry »

Malcolm Gladwell’s Outliers: Analytics of Success

July 20th, 2009

malcolm_gladwell_outliersI just finished Malcolm Gladwell’s Outliers.  Sacrificing a few days of library late fees to make notes and do research was well worth it.  My guess is that the library’s hold queue is going to continue to grow with this one.

Though I have enjoyed all of Gladwell’s books, this particular one hit me close to home.  I suspect it will have a similar effect on others.  Who doesn’t want to understand success?  Who isn’t looking for the Midas touch?  Success books might outnumber diet books?

Gladwell demonstrates how numbers can show us more about our world, our assumptions, our illusions and therefore, us.  I treasure his style which reminds me of James Burke’s Connections TV program.  Surprise lay around the corner of each page, and the amazing seems completely staid when Gladwell reveals the underlying back story behind the pattern.

The book is an example of how analytics and statistical research will likely redefine our world, one amazing hypothesis at a time.  It is also a worthy example of how numbers must be paired with logic, deduction, art and instinct to yield their treasured results. I think, Gladwell shows us how data alone gets us nowhere.  But with data, our intuitions can fly much further on the same effort.

Controversy in the Glass Palace of Nerds

July 17th, 2009

glass_palace_madrid

Recently MIT announced that it would change the programming language used to teach freshmen engineers to program.  The change was from Scheme (a language obscure to many outside MIT) to Python (a language enthusiastically used throughout the world, notably at Google).  To most, this may seem a relatively minor curriculum change, the kind that happen all the time in universities, without fuss, and especially in the technology areas.  Not so.

Read the rest of this entry »

Internet Luddites Attack!

July 9th, 2009

self-illumination

Recently I read “The Internet devalues everything it touches..“  While I wantedto dismiss the premise of the article out of hand, I think this will be a popular opinion.  It is also worthy of study.  After all, it is easy to get caught up in the idea that everything Internet is always better.

Looking at the continuing development of IBDTs [Internet-based disruptive business technologies] and their relative low cost of development and nearly free distribution, it is easy to see that once they become widely used and implemented, we will see a massive reduction in the costs of doing business.

We will know when this scenario has occurred, or is occurring because we will see the signs: a strong and continuing deflationary trend. We will see a continual erosion in the value of products and services.

In simple terms, the Internet devalues everything it touches. Anything that can be digitized. I’m using the term “devalues” in a strictly materialistic definition and not in a cultural “values” sense.  And I’m using the term “Internet” to denote a class of distributed technologies and applications.

Read the rest of this entry »