Direction, Questions and Values
11 years ago I’d taken a short term job in hardware and logistics at a technology company – it was supposed to be a temporary thing until my next road gig worked out. I quickly started down the hardware route – getting A+ certified, and was about to dive into studying for MCSE. I wasn’t satisfied, though. I was tired of building incredible machines for other people, and never getting to *do* something with them. I quickly transitioned into writing Cold Fusion web applications. Realizing I loved development, could make a decent living at it, and it would allow me to pursue original music on my own terms, I decided to not go back on the road.
3 years ago I was team lead, travelling more, spread across legacy asp, ASP.NET, SQL, Data Warehousing, windows services and middle tier. On the surface, I had the ideal job. Good pay (with a raise on the way), travel and the accompanying benefits, working from home, flexible schedule, a great boss and good teammates. But I was still unsatisfied. I’d been reading up on architecture, development methodologies, good C# practices – anything I could get my hands on. Many at work seemed ok to just coast. Our SQL 2K databases were ancient at that point – we’d barely started migrating to 2005 – but it didn’t bother many. I wanted to be on a team that challenged me – and not just be the challenger. Soon after, I left the safest job on the planet, took a pay cut & added a commute to work on a team that seemed to hold all the promise of challenging me more than I’d ever been.
Ten months ago I was about to lose my job thanks to a low-life-embezzling-CEO who brought his company down around him in flames (and, in the process, breaking up the most talented team I have ever had the pleasure of working with). In my short time there I’d learned more about distributed architecture, messaging, ORMs, WPF, NoSQL – and much much more thanks to guys like this – than I could have hoped for going into it. Then the IRS and FBI raided our building (thanks a lot, Brian), and the process of scrambling to find new work kicked in.
These things are running through my mind tonight – as I sit outside a coffee shop on the banks of the Tennessee River in Chattanooga. I would’ve never guessed I’d land here. I miss my old town (Nashville), but more than that I miss the friends I made there. I heard a quote recently: “If you only learn the skills related to your day job, then your skills are at the mercy of the one who pays you.” Nine months ago I had slipped into the nasty habit of only focusing on the “here and now”. When the rug was pulled out from under me, I swore that I would never allow myself to fall into those habits again.
This is the tough thing about our industry. Unless you’re fortunate to work at a company like Google – where you can take 20% of your on-the-clock time to pursue personal ‘innovation’ projects – then learning and study happens in between work, family, kids, working out, sleep, doing the dishes, walking the dog, fixing your car and the myriad other responsibilities we all bear. Tough choices have to be made. I’m still a musician to the core – always will be – but time for recording projects is virtually nil at this point in life. I think I’m beginning to learn how to better approach this, however.
At first I thought of it primarily as an exercise in time management. Time doesn’t scale, though – after all, there are only 24 hours in the day, and you can only go without sleep for a finite amount of time before it plunges your effectiveness. To use a budget analogy – this is like a married couple trying to squeeze every penny out of their budget, while stuck between the large house note and medical insurance bill. Those two items tend to be the most non-negotiable-large-sum items in the budget (and you can only tweak the smaller categories so far until you bump into Tesler’s Law).
A huge improvement to the situation is to find the right kind of company to work for. This requires you to be on your toes – not only in your job search, but as you spend time at a company. Ask yourself – are the values being expressed in action – not just words – the values you can get behind? Are they open to new ideas? Do they promote innovation, or do the curmudgeons rule the roost? Does your management have credibility with you and your team? Does your team have credibility with your customers? Are you encouraged and supported in your career growth, or are you simply a warm body, code-it-this-way-who-gives-a-crap-what-you-think-and-shut-up-thank-you-very-much developer? To continue the budget analogy, finding the right place to work is like finding the right place to live – with a mortgage payment you can afford, and which offers better flexibility to the other smaller-sum categories.
But what about the “medical insurance bill”? How does one maintain and promote the good health of their career, in the midst of learning and finding the right place to work? If we’ve tweaked the smaller categories, and found a more affordable mortgage, how do we lower the other non-negotiable cost? While this isn’t the only aspect, I’ve come to strongly believe that the choice of technologies (and especially technology frameworks) drastically affects your career health more than you realize. I’m not necessarily talking about languages – this isn’t a C# vs. Ruby vs. Erlang debate. However – you need to ask yourself questions like:
- “Am I getting locked into a vendor toolset?” (If the answer is yes, then ask “Does this vendor support open standards?” If the answer is no, run.)
- “What is this framework abstracting from me that I might need to know about – even if the knowledge simply helps me understand (or appreciate) the framework more?”
- “What is this framework abstracting from me that is hurting my knowledge and programming theory?
- “What is this framework abstracting from me that is hurting the performance, extensibility, usability or interoperability of my application?”
Making time to study is vital, but equally so are picking the right things to study, and working in a company whose vision is one you can get behind. The latter two make the former more effective than it can ever be on its own.