The Re-Education of a Software Developer

I’m in the process of re-directing my career back to hands-on development. This is the start of not only one of the most exciting phases I’ve ever embarked upon, but it’s also one of the most gut-wrenching and sometimes paralyzing.

I’ve been in software development professionally for over a quarter century, at least a third of it as a consultant.  I’ve owned two of my own software companies; one a success, and one stillborn.  At two key points of my life and career, I’ve stepped away from development in order to take on full-time management roles.  Both times were out of obligation.

I have nothing against technical management as a profession, and I have a great deal of respect for anyone who chooses that role and career path.  My respect for the role has increased ten-fold since I ventured into that territory.  I think I’ve done a pretty good job in management, based upon performance reviews and what others have told me; subordinates and peers.

But it’s not for me.  Never has been, never will be.  And I’m not going down that road again.

I don’t know who said it, but it’s so true.  Better than say it, I’ll diagram it:

Limited Talent

Medium Talent

Strong Talent

Low Satisfaction

Never do Delegate Do when you must, or delegate

Medium Satisfaction

Why bother? Bored? Do when you must, or delegate

High Satisfaction

Hobby? Build skills or keep as hobby Must do, or live with regret

I’ve lived in the yellow for way too long.  It swallowed me whole at times.  I’ve only touched the surface of the green over the past few years.  I want to spend the next 100 years in the green.  I’ve learned enough about almost every other aspect of my field to understand where I truly belong.  And I now have the insight to understand the other players and areas in the field.

In hindsight, I can say that my experience delving into management, and even dipping my toe in almost every other aspect of IT, will make me a much better developer, consultant, mentor, and trainer.  I don’t know if I’d ever recommend the same path I took, to anyone else.  It’s been painful.  It’s been rewarding.  It’s been frustrating as all hell.  It’s had its rollercoaster rides of wins, losses, self reflection and deep self-doubt.  In darker times, I’ve even considered leaving the field.

I’ve been an optimist.  I’ve been a pessimist.  I’ve been naive.  I’ve been a cynic.  And many people only know one of those traits of mine.  But over the past few years, I’ve learned more about myself than the rest of my life combined.  And recently I’ve reconnected to the only things that ever gave me passion in my field.

There are several more years of constant growth ahead.  There are many things still to accomplish.  But the core to all that is my return to code.  To where I belong.  To where I never should have left.  But I guess I never would have realized that if I didn’t take the path I’ve taken.

I’m lucky.  Or maybe it was by design.  But one of the reasons I helped start a couple of user groups a few years ago was to stay connected – to stay on top of the tools and technology.  To stay connected to other developers.  To meet and get to know some of the top developers, teachers, and speakers in this field.  And to learn from all of them.

Now that I’m diving back into the deep end, I’m developing a solid plan of action that I’ll share in my next post.  I’ve given myself just a handful of months to get my mojo back…

But I also want to give something back to the development community as part of my journey.

In order to speed the process, I’ll start publicly blogging about the “re-education of a software developer.”  My goal is to not only use this blog as a resource for myself as I revisit what I used to be very good at, but to also provide a resource for others who are in a similar boat – considering a return to their roots and true passion.  And also for developers who are about to enter the field.

For some of you, several of my upcoming posts may seem too basic or trivial.  But to others like myself, it may be a refresher course, or an introduction to stuff we may have missed over the past few years.

I welcome comments, constructive criticism, correction, and even the occasional, “what, are you stupid?”  My expectation is that it’ll help me and others learn and grow.

Although software development is not exactly like riding a bike, I’m confident that my staying on top of things will hasten re-exercising the development muscles I’ve always had.  And by going public, it’ll provide the push I need to shed the cobwebs.  And perhaps it will inspire others as well.

Here we go…

Similar Posts:

The Re-Education of a Software Developer by Mark Freedman, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Comments

  1. Michael says

    It is good to see the matrix of skills to satisfaction. It helps to re-evaluate where you are in career as well as life. It is very difficult to stay in that green box 100% of the time as a technology worker. There are people out there who do it and they deserve to be recognized on this blog if you choose to mention them.

  2. says

    If there are people who really do stay in the green box, I’d love for them to comment. What I observe from the outside may not be what they truly feel on the inside, so I can’t be the one to mention anyone. It’s up to them.

    Honestly, I don’t really believe people can possibly stay in the green box 100% of the time. I just know that my 10% is no longer acceptable. If I can get to 70 to 80%, that would be great. There are always part of every job that aren’t the perfect fit. For example, although I know I’ll have to spend a bunch of time marketing myself, I’m not good at it, and I don’t like it. But it’s a must for the other 80% to happen.

    Of course, if I can leverage speaking and blogging as marketing tools, I know I’ll be better at that than straightforward marketing. If there’s part of your work that you dislike or aren’t good at, there’s usually a way to make it easier and less painful, even if you can’t delegate and must do it yourself.

  3. says

    I really like your matrix. The first time I’ve seen it presented like that, and very true.

    I’ve been in the game for a long time now, with various levels of promotion into technical management and backsliding to development. Along the way I made myself 1 golden rule: I can manage all I like so long as 50% of my time is doing real hands on technical work.

    This is very very difficult, the modern way seems to be to push people into management and then actively prevent them doing anything else, even if good at it. This can frustrate the heck out the person concerned (ie me). I’m equally recognising that a manager who is hands on but out of date or out of touch is frustrating as heck to the people under that manager. So its a delicate line.

    I did the 50/50 thing for about 5 years and it worked reasonably well – a good (really good) team helps. Most good techno people don’t need a lot of management, they just need to be left to get on with what they need to do, and be kept from some of the corporate bullshit.

    The day of reckoning came when my manager changed and I was given the ultimatum: technical or management but not both. (Bearing in my I never really wanted the management, I did it from a feeling of obligation). So I went technical again and ended up with a team of 1: myself. This seemed like a sure fire way to get lopped out of the company in the long term. I eventually resigned for this and other reasons.

    These days I’m my own business, and I’m back being deeply technical. These days that means everything from system design, requirements gathering, specification writing, through to circuit design and writing software. And I’m having a ball.

    The experience in management positions (at low, middling, and highish levels) definitely gives me a bigger wider perspective on many things and I don’t regret it. It actually makes me far more employable.

    I would encourage technical people who have the aptitude to try a range of different things, and then settle on what they like. There’s nothing wrong with a “gap year” or 2 in a career, doing things a bit different. But getting stuck on a path you didn’t like would be a lousy outcome. Communication, options, and getting on reasonably well with those above you help in all this. And when the chips are down you can always quit and move on.

  4. says

    Hi Wally. I also tried to do the 50/50 thing for a few years, but found that I was not doing either job very well. One day I convinced myself that management was the natural career progression (let myself be convinced by my boss and his boss), and figured that if I was to do the best job I can, I needed to focus on that.

    I picked the wrong path, and broke a promise I made to myself twice before.

    I agree that it gives a much wider perspective on things. But I still have regrets. Maybe in a year or so when I have solid development back under my belt I won’t regret it as much as I do today. I hope to look back at that time as a key part of my career.

  5. Alex says

    Hello everyone,

    I’ve been a developer now for about 10 years and started out just after 9/11, just after the crash. I’m an arts major, taught ESL and jumped into IT with Oracle certification. I landed my first job in Italy where there was still some room to hire during the tail end of the Euro conversion boom. It has been an arduous uphill battle of getting onto projects where I could learn the valuable skills necessary to become current.

    Now, 10 years later, I’m looking for a new job (I am currently employed) to stay current. I’ve been looking for about 5 months and am extremely frustrated and worried that I’ll never have a decent career. I watch my friends all get their break in their related fields and I feel that I lack the opportunity to shine. I feel incredibly capable and am extremely respected by my colleagues and superiors. The projects in my current company are currently not available due to the downturn in the economy and finding another job seems to be a daily failure. Hence my curiosity in an MBA program with an IT focus.

    I love to code but more importantly I love to create and build. I also love to write and think creatively so programming seems to be the best right/left brain fit for me. I wouldn’t consider myself a hard core techie. Rather, like I said, my love for coding comes from a love to create.

    Do you think I can benefit from an MBA? Can I put my creative talents to good use in management?

Leave a Reply

Your email address will not be published. Required fields are marked *