Hi. My name is Bob
Rench, and I've been involved in all aspects of software development since the
early 1980s. I started programming in
high school on an Apple IIe, and in college, wrote my first commercial program
in dBase II, running on an Osborne 1 luggable.
Since then, I have worked for huge, medium-sized, and tiny companies. I've worked for multinational corporations,
as well as for companies so small that we held all-hands meetings over lunch at
Olive Garden.
I have designed and implemented enterprise-level software,
both pre- and post-Internet; from old-school fat-client software applications
to web sites and web applications. I'm a
survivor of the OS battles of the 90s (hint: OS/2 lost, but shouldn't have),
the browser battles of the early 2000s (go Netscape … er … Mozilla ... er ...
Chrome), and the managed-code skirmishes between Java and C#.
I've seen a lot of things come and go in the last 30 years,
but, no matter what new technology comes along, somebody still has to support
the clients and maintain the software.
Support and Maintenance.
Ugh. (I heard you.)
It’s a necessary job, and isn’t glamorous. Sometimes, it can be extremely frustrating dealing
with all kinds of headaches, from systems that just stop running, to data that
gets corrupted, to users who don’t know how to run such well-crafted,
thoughtfully-designed, well-engineered software. If you are lucky, you only have to work on
one issue at a time, but typically, it’s more like playing Whack-a-Mole. On a machine that doesn’t register the hits. While drunk.
Some days, things can be so quiet, you might say to a
friend, “You know, things are really going great! My queue is empty, so I’m going home early to
relax.”
And when you come in the next day, you wish you had not
tempted the software gremlins; before you know it, three weeks have gone by
with no end in sight.
Even if you love solving problems (admit it: finding a
solution when everybody else has failed can be such a rush!) Support and
Maintenance roles can often feel like a soul-sucking swamp, and you can’t wait
to find another job — any job!
If that is how you feel, then I think you’ve come to the
right place.
Maybe you’ve been slogging through the swamp for a while,
wondering if you’ll ever get through it to firmer ground.
Maybe you’ve just started your career, and somebody had the
brilliant idea of putting you on the Support or Maintenance teams to learn the
software, but dealing with legacy spaghetti code is driving you crazy.
Maybe you have a tough support issue and need some lateral
thinking.
I know how you feel, because I have been there many times in
the past.
Recently, I was asked to take on support for a large, legacy
website. Maybe I had forgotten how much
I disliked support in the past, so I said, “Sure, why not?”
Perhaps I’ve matured, or maybe it’s because I love being
challenged by multidimensional puzzles, but I can tell you that I don’t feel
like I’m stuck in a swamp like I did on my last Support gig. Instead, I have found that a Support and
Maintenance role can be satisfying.
I currently work at the world’s largest digital-marketing
company; a company whose clients include some of the biggest names in the
airline, fast-food, beer, sports, and financial industries. I am privileged to be providing support and
maintenance for a Fortune 100 company, managing an international website, and supporting
content editors who are working in nine languages, including French, Germany,
and Chinese.
Like any living, breathing system, our website has evolved
over the past few years. That evolution
and growth has required providing creative solutions to meet new business needs,
while at the same time, making sure the old business needs are being met, and
all the business rules are followed.
But, no matter how well-planned the changes, no matter how
creative the solution, no matter how disciplined the developers, no matter how
thorough the testing, things happen; things break.
When things break, my job is to fix them. But I don’t want to just fix them; I want to
take the steps to make sure they don’t happen again.
After thirty years, I’ve grown weary of stumbling across the
same problems project after project. And
no, I didn’t create all those problems. Most
problems I encounter were created by a combination of poor design, changing
requirements, creeping scope, and shrinking budgets.
But, we all know there are better ways of doing things. Lately, the development landscape has been
shaped by powerful forces, such as:
- The Pragmatic Programmer by Andrew Hunt and David Thomas;
- Clean Code by Robert C. Martin (“Uncle Bob”); and
- Development philosophies such as Agile, using Scrum, eXtreme Programming, Kanban, or Test-driven Development.
These are great tools to have at our disposal. But, there is a lot of legacy code around that
was not developed cleanly. Or, how many
times have we known that there was a right way to do something, but were forced
by budgetary or time constraints to just get it working, and then fix it later?
Usually, “later” never comes. And, once again, we’ve made the same mistake our predecessors did.
It’s like playing a video game where we have to kill the monsters in a particular room. We enter the room, turn left, and get pounded by the monsters. We re-spawn, re-enter the room, turn left, and die once again. We keep losing the game because we keep making the same mistakes.
Let’s start doing things the right way.
I want to become better at my craft. I want to become more disciplined as a developer and more creative in my problem-solving. I want to improve.
I want to provide outstanding service to my clients; after all, they allow me to have two things that I really enjoy: sleeping indoors and eating.
We can do this.
Let’s start Winning Support.