Technical problems can almost always be solved, but people problems are hard

I’ll never forget the revelation it was when I figured out how to write computer programs. You mean, I thought, I can make this machine do what I want it to?

It was a watershed moment in my life.

A portrait of the geek as a young man

I was shy, introverted. People often frightened me, at least a little. I struggled to interact with people I didn’t know well, and I had no idea how to influence others. And then here was this machine that I could order around. It had limits – it couldn’t make my breakfast for me. But within those limits, it was all about what my mind could imagine and then code. I wrote games that my dad and my brother played. I wrote programs that illustrated concepts of geometry, which I demonstrated to math classes in school. I wrote a payroll application for my aunt’s small business. I even wrote a very rudimentary operating system once – it was terrible, but I learned a lot.

So I went off to college to learn how to make software. When I got out, the job market was terrible, so I took the only software job I could find, writing user guides for a software company. Later in my career I moved into testing, and into management. I’ve delivered a lot of software since I started almost 24 years ago.

Here’s the crazy thing I’ve learned: The hardest thing about making software is not the technical stuff. The hardest thing is getting people aligned and pointing the same way!

I’ve often said that it’s a modern miracle when a software project succeeds. Any software development project that involves more than about two people will have coordination challenges, differences of opinion, and all the other normal issues of working together. My experience has been that the programmers and the testers can do whatever you need them to (short of, say, telepathic user interfaces). They will work hard at it, they may struggle to get it right, and there may be frustration and late nights getting it done. But those struggles can pale in comparison to how hard it is to get everyone to agree on what to build, how to build it, and what it means to be done. Here’s how code is better than people:

Once coded, code stays coded and reliably does the same thing over and over.You think you have people all organized and then they go off and do whatever they want anyway.
You will sometimes struggle and work hard to make your code do what it needs to, but you can almost always get the job done.Sometimes you simply can’t influence people. Drat their free will.
Change your code, it doesn’t mind. It knows no fear.People hate change! When change is thrust upon them, they often resist it or even run away, screaming.

By the way, the WordPress editor doesn’t offer a way to create tables, so I wrote some HTML code to generate one. Fear my mad, l33t sk1llz.

Unfortunately, even if you have the best coders in the world, if you can’t get them to work together their projects will fail. Fortunately, I understand geeks, for I am one. I know what makes us tick. I’ve learned how to influence us and get us all reasonably pointing the same way. And I’ve built on these skills to learn how to influence non-geeks such as upper management, salespeople, and customer service folks to get them all working together. It’s not easy, and it’s impossible to ever get it perfect, but I’ve had pretty good success over the years and it’s contributed strongly to any number of successful software releases. And it’s helped me come out of my nerdly introverted shell.

I can’t remember the time I last wrote any serious code. I don’t miss it. To my astonishment, I’m having much more fun and success on the people side now.

Life got lots easier for me when I embraced my inner geek.


16 responses to “Technical problems can almost always be solved, but people problems are hard”

  1. ryoko861 Avatar

    I tried taking a programming class when computers first started taking off. I failed miserably at it.
    Now I have a friend who “teaches” me HTML occasionally. She was reading my other blog and noted that when she clicked a picture, it didn’t open a new window which she suggested would be in my best interest. So she taught me the “target=_blank” trick and where and when to put it. Then the other backslash stuff that I haven’t had to use in awhile. Which isn’t good because you have to do it all the time in order to remember most of it.

    My son is remarkably like you when you were young. He is quiet, shy, introverted, doesn’t like interacting with people. But extremely gifted in graphic and computer design. The child (well he’s 21, not really a child) clicks so fast I can’t keep up with what he’s doing!

    1. Jim Avatar

      Or you need to know what’s possible in HTML and be able to look it up on the Web, which is what I do. I don’t have room in my brain to remember arcane syntax anymore!

      1. ryoko861 Avatar

        Funny how our brains get smaller as we age.

  2. Joe Cardillo Avatar

    Working with people is infinitely rewarding and frustrating. I tend to gravitate to nerdiness myself so being responsible for aligning technical teams doesn’t bother me, but there are times when I think to myself “thank goodness there’s someone between the client and the coder, otherwise this would be a disaster.”

    And, ahem, I don’t see a pocket protector in that picture, I assume it is there somewhere…. ;)

    1. Jim Avatar

      Ah yes, the pocket protector. Let’s just say I was a rebellious geek and refused to wear one!

  3. Lone Primate Avatar
    Lone Primate

    You forced tables unnaturally into WordPress?

    WITCH! What foul, arcane alchemy is this? :)

    1. Jim Avatar

      It’s called aych tee emm ell. And the beauty is, anbody can learn it!

  4. davidvanilla Avatar

    Having had a career in “people management,” I have to say your table is spot-on.
    “getting people aligned and pointing the same way” as you say, is the hardest aspect of most any endeavor involving more than one person. “Drat their free will.” Indeed.
    btw, I had the “best job in the world, loved working with the people, anyway.

    1. Jim Avatar

      You know you’re in trouble when your endeavor involves but one person, you, and you still have a hard time getting everyone pointing the same way! :-)

      1. davidvanilla Avatar

        Very funny; but so true.

  5. hmunro Avatar

    I have dabbled with this “aych tee emm ell” of which you speak, Jim, but it turned me into a newt. (Got better, though.)

    Seriously … I always enjoy your blog, but this is one particularly brilliant post! I started out thinking I was taking a trip down Jim’s memory lane — and I ended up thinking, “this is one heckuv an insightful guy.” I’m glad you’ve found so much success and fulfillment on the “people” side of the business. And I have a feeling the people who work with you would agree!

    1. Jim Avatar

      Heh, I do use this blog for memory lane a lot, don’t I. Thanks for saying such nice things about this post. And I’m glad you’ve recovered from newtdom!

  6. chaplainwinston Avatar

    i started programming my senior year in high school. i got hired the monday after i graduated i programmed mostly with assembly language on operating systems. tv and the movies don’t give people like me justice. i always get the pretty girl.

    As for people or code i prefer people and code. People act like code. in my field their always code changes that requires fixes to correct the fixes. like microsoft updates and i had to find the fixes then.

    i prepared for that fatefull day (12 years). i knew i had to understand people so i got a degree in Bible. In the real world outside of the protection of major corporation people don’t have to be nice.

    1. Jim Avatar

      Heck, they don’t have to be nice within the corporation, either.

  7. […] Technical problems can almost always be solved, but people problems are hard […]

  8. allaboutstartupblog Avatar

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.