Eight Ways To Avoid Retaining Top Talent
To say that I was dissatisfied with my previous job is like saying that the surface of the sun is slightly warm. When I resigned, I resisted the urge to blog about it right away, figuring it would be much better to take some time and reflect on it first. A year sounded like a reasonable amount of time, and I left there in May of 2011. Over the past year, some of my feelings mellowed while others didn’t, but I’m still every bit as grateful to have gotten out of there. If you’re in management, lead a team, or are considering that path, here's a few things I recommend you avoid doing:
Prevent candidates from interviewing with their potential team.
I smelled something funny from the very beginning, but didn’t act on it as much as I should have. My interview there wasn’t technical at all. It was held with one person, a director who started off by saying they knew next to nothing about SQL Server, though they were an Access developer many years ago. They said my resume looked very impressive, and basically just asked me to elaborate on a few of the projects I had worked on. Not a single technical question. Even with all the questions I asked them on things like training opportunities, my community involvement, twitter, speaking, and my upcoming wedding, I distinctly remember being out of there in about 45 minutes. I was completely dumbfounded when HR called to offer me the position the next day. I reached out to the community asking for guidance as to if this was normal or not, and Jen McCown (blog | @JenniferMcCown) was kind enough to do an informal poll on her blog about it which yielded a wide range of results. After that I went back and asked if there was any way I could sit down with potential co-workers, but they said it wasn’t necessary. “
Don’t talk to your team.
My team was highly distributed, with my manager and a majority of the members in Eastern Europe. There was one fellow DBA who worked in the Chicago office with me, though. One might think this would mean I’d get some good one-on-one time and instruction from the only co-worker on my team in the office, but not the case. The best way to describe this guy’s personality is to compare him to a jar of mayonnaise. He would say “hi” when he walked in, I’d say “bye” when I left, and there was maybe an hour’s worth of conversation between us the entire year I worked there, no matter how hard I tried. Whenever I came to him with questions about a process or how something was set up, I’d usually get one-word answers, or the occasional four-word “go read the document”, and then be emailed a Word file full of screenshots with little to no descriptions. There are a few friends from there from different teams that I still speak with, but in general I never thought it possible to feel so alone in an office full of people.
Don’t listen to your team.
Part of the company’s “database standard” was that every query was required to use the NOLOCK hint. Every query. No matter what. The irony here is that some queries were returning bad data and nobody could figure out why. When the official error report came out with instructions for reproducing the issue, it was evident that dirty reads were the culprit. When I pointed out that NOLOCK was to blame here and that removing it would fix the problem, I was told that NOLOCK was part of the coding standard and must be used. Despite my attempting to explain how NOLOCK works and citing BOL and various blog posts showing that dirty reads can and will occur when using NOLOCK, they refused to believe it was to blame. To me, this was like ordering a cheeseburger and then complaining there’s cheese on it. I actually got an email from the lead DBA telling me that both Microsoft and I have no clue what we’re talking about when it comes to transaction isolation levels. When I asked if they could then please explain it for me, I was told it was “too complicated” and would be way over my head.
Give your team nothing to do.
I’m not sure they ever had a plan for what I would be doing. The whole time I was there I probably had 2-3 weeks of actual work they let me do. The rest of the time I would ask what I could do and I was told I could read, play games, mess around in the test environment, surf the internet, or do whatever I wanted to fill time. This may sound awesome, but it was really quite boring. I would have felt much better with a heavier workload, but without one, I decided to dedicate my time to professional development and the community. I got my twitter on and started this blog, which I consider to be a pretty wise investment of said time. Judging by the number of science fiction novels on people’s desks and the countless online poker games (for real money) I’d see on their screens, I’m guessing there were a few others would could have used some more work too.
Make your team reinvent the wheel.
One of the few projects I was given was to develop a view or procedure that would show all the active processes on a server, their current wait types, and statistics such as the number of reads and writes they’ve performed. When I heard this I realized that Adam Machanic’s sp_whoisactive script would be a shoo-in, as it did everything they were asking and much much more. I forwarded information about it to my superiors, noting that it had been in development for years, is used by thousands of DBAs worldwide, and best of all is free. Their response was that all development must be done in-house, and we could never have code on our servers that was written by “some guy from the internet”.
Deny opportunities for training and professional development.
I blogged about this last year, but to summarize, at the interview I was told there was a budget for appropriate training events. When such a training opportunity appeared, they refused to help pay for training or even give me the time off to attend, because they felt I was “good enough” and didn’t need training. I ended up going on my own time and my own dime, and it was worth every penny.
Play games with vacation time for major life events.
When I interviewed for this job in April of 2010, one point I made sure to bring up was my wedding which was taking place in August of 2011. I was assured there would be no problem taking 2 weeks off to get married, provided my manager approved and I had accrued enough vacation time. I filled out the PTO request on my very first day there and was promptly denied. I was told it was too early to request it, and try again 1 year from the date. Ok fine. When August rolled around I submitted another request and was again denied. My manager told me to try again once I had accrued the 2 weeks of vacation time. When I had 2 weeks of vacation built up (this was probably December at this point) I tried again, and was told to wait until February, when it would be 6 months away. In February (which was 6 months out) I submitted another request, and was told “possibly”, because they had just approved another member of the team for vacation during that time and they didn’t want too many people to be gone at once. WTF?!? I was trying to decide if I would just quit my job before the wedding, or simply make sure nothing of value was left at my desk and not show up for two weeks. Fortunately I found a new position and didn't have to worry.
Conduct exit interviews in full view of others.
When I announced my resignation, my exit interview wasn’t held in a conference room or other private place. Instead the director opted for the lobby, with the receptionist right there and other people coming in and out. I later received a follow-up questionnaire from central HR which asked some standard questions as well as some very interesting ones about pay in the workplace. I’m all for written communication, but in lieu of a face-to-face HR meeting, a phone call with them would have worked wonders. At the very least, it would have showed they were trying to make it look like they care why someone’s leaving. But I’m pretty sure they didn’t.