Before my current job, I worked at a major financial institution. Much like you now, I was working way more than a 40-hr week on a regular basis. My health and motivation suffered. Life sucked. But that was pretty much my experience ever since I started getting paid to write software. Then I was rescued by my current manager. In over two decades of working as a professional software developer, I've never stayed with any one company for more than three years. That changed with my current company. I've been with this one since 2006 and I have no plans of leaving soon either. I get calls from recruiters at least once a month or so, asking if I'm still satisfied with my current situation. The answer is always a resounding "Yes, I'm good where I am right now."
I still work a crazy number of hours per week but now it's by my choice. In fact, I don't even consciously choose. I just kind of do. My boss, on many occasions, has even IM'ed me at 2 or 3am and told me to stop working. We usually have an IM
exchange that goes something like this: "Hey, why are you still up?" "Well, what the heck are *you* doing still working?" "I'm just finishing up something. OMG, you need to take a vacation." "Oh yeah, look who's talking." "And no laptops." "Yeah, you wish." "No, seriously, I mean it. Leave your laptop." "I wish it were that easy." "k, I'm out." "k" ... (pause for a while) "You're still there, aren't you?" "Go to bed already, you're not my mom!" ... and so on. And yet, I don't feel stressed or that I neglect my family and outside-work life (my wife and kids might disagree somewhat but that's a different story).
I get to work whenever and wherever I want. I set my hours and for the most part my commute is about as long it takes for me to walk upstairs to the room above my garage because my company lets me telecommute every day. I go in to our local office maybe twice in a quarter, if that. Today, I worked from the local library for a few hours while my kids were volunteering there. If my local pool had WiFi, I could probably get by working from the poolside, except when I'm doing TDD and code reviews with my teammates over the internet--which I do about 2-3 hours per day--the noise at the pool can be a problem.
How the heck did I get my dream job? My manager might say it's because I'm good at what I do. I will say that it was by the Grace of God, Perseverance, Luck, and Agile. Yes, Agile.
If you can find a company or even just a team that is not only managed but
led by someone who truly understands and supports the principles and values of Agile software development, do whatever it takes to get on that team. True Agile teams have the kind of attitudes toward work discussed in this video:
and they are led by people who understand this, knowingly or otherwise.
In 2000, when I first read Kent Beck's manifesto on XP, his book "
Extreme Programming Explained: Embrace Change," and Martin Fowler's "
Refactoring: Improving the Design of Existing Code," I predicted to as many colleagues who would listen to my manic ravings that XP was the way of the future. I even wrote this on the inside cover of my copy of the XP book: "
+5 years from now, this is the way most successful S/D projects will be done." Signed and dated February 2000.
When the Agile Manifesto was made public in 2001, I set off on a quest for a team or company that would actually
force me to limit my work hours to 40 hours per week, that respected my rights as a developer and trusted me enough to let me do my job without telling me exactly how to do it. I also set out to learn as much about Agile and agile development techniques as I could so that when I did find the right place, I would be just the right person for them. That's where Perseverance came in because it took me over five years and about as many different jobs to find the right place for myself. During those "days of wandering in the desert" as I like to call them now, I almost got fired, got hospitalized for depression, lost a lot of hair, sleep, and goodwill towards managers. But that's all in the past and now I'm happy, sleep better, more tolerant of managers, and love what I do. Unfortunately, there's not much I can do about the hair so I just sport a #0 buzz cut.
By the estimations of many industry watchdogs and practitioners alike, Agile has crossed the Rubicon and is rapidly becoming the more successful way to do software development in large companies like Intel, IBM, Nationwide Insurance, Huntington Bank, and many, many more. It took a little longer than I predicted back in 2000 but even at the large financial institution from which I was rescued by my current manager, they are actually becoming a lot more serious now about Agile than they were when my former teammates and I started doing it there back in 2004.
Caveat: All "Agile" teams and companies are not created equal. In fact, in my company there is a wide range of teams with different levels of maturity in Agile and many more who still cling to "Ye Olde But Familiar Waterfail[sic] Ways." The nice thing is that the overall corporate culture allows these two types of teams to peacefully coexist. Well, maybe it's more of a mutual, circumspect tolerance for the other. Anyway, I'm just really lucky to be with my current team and manager because for the most part, they
get Agile. (See my Bartender bio if you want more hints about some of the entities I mentioned)
Well, that's my story of hope and inspiration. Good luck in your own quest.
BTW: If you haven't already, I highly recommend that you read Robert Martin's "
Clean Code" and "
Clean Coder", "
The Pragmatic Programmer: From Journeyman to Master" by Andy Hunt and Dave Thomas, and Pete McBreen's "
Software Craftsmanship: The New Imperative" for starters. And thanks for
your perseverance if you got through this post without falling asleep or going numb.