Category: Editorial

  • Hiring Heterogeneously

    This editorial was originally published on Jul 22, 2013. It is being re-run as Steve is on vacation.

    I wrote recently about tech interviews and hiring, and even on an interesting interviewing technique for senior people. However we need to hire more than just senior people. We need to hire junior people, and intermediate people. Those roles are important for both growing the experience of your staff, and not getting caught with a “” as a bottleneck or single point of failure. No, that’s not Brent Ozar, though someone with his talent might be the single point of failure in many organizations.

    Not everyone can be a superstar-expert-architect that decides how the system is built. Not all architects should spend time coding basic insert/update/delete code or adding clustered indexes to tables. We need a variety of talent levels that can get complete different types of tasks. There is tedious administrative work, supporting roles, necessary, though unexciting work like reviewing security, logs, audits, and more. While you can automate much of this busy work, there are still tasks that we must assign to people.

    There’s another consideration as well in hiring that all too often people overlook. Hiring too many people that are too similar, who may think alike, who may view problems the same way can lead to an environment that doesn’t grow and expand, that loses it’s creativity over time. There’s a great quote that says “Where all men think alike, no one thinks very much” (Walter Lippmann). It’s important to have a diversity of opinions, and when you hire new people, you should consider this. You want talented people, and people that get along, but not necessarily all thinking about problems in the same way.

    The world is a richer place for the diversity we have, and varying opinions, thoughts and ideas. We don’t all get along, but many of us can work together with mutual respect, considering each others’ viewpoints as we work to build solutions to the problems we face.

    Steve Jones

  • Hiring Guitarists

    This editorial was originally published on July 1, 2013. It is being re-run as Steve is on vacation.

    Hiring good people is hard, though in some cases it might not matter as much as others. If I am hiring entry level developers or DBAs, I have a lot of candidates, I’m not investing a lot, and I shouldn’t be too concerned if I have to let someone go and find a new employee. Given the fact that the people are often unproven in this case by definition (they’re junior levels), I should be prepared as a manager to make more mistakes at this level.

    However at the senior level, hiring needs to be done more carefully. The high costs, the limited number of candidates, the responsibilities I give senior people, along with the trust I need to bestow upon them means that I can’t afford to make the same percentage of mistakes at the senior level. Most importantly, I don’t want to hire expert beginners instead of experts at this level.

    I ran across a post on a way to hire senior developers that I thought was very interesting. In particular, I was struck by the analogy of hiring a guitar player. For the most part, I’d agree that if I wanted an experienced guitar player, I’d want the expert, not the expert beginner. If for no other reason than I don’t want to argue with an employee that does things my way, including making the same mistakes I’d make, and then explaining to me this is how I had specified things to be. I want a senior people to warn me, and influence me to do better.

    I’m not sure how I’d devise a similar level of test for a senior level DBA, though I do like the idea of giving them some scenario or simulation that has flaws or problems and seeing if they’d correct them, point them out, or leave them in place as they moved on to “play” the scenario. I’m sure there’s a way to do this, and a balance between how to evaluate the responses.

    Ultimately I want senior people to fix things, make them better, and provide a smooth path to increase quality. I want them to point out flaws, and warn me about issues. If I insist on making poor choices, I want their support, but if they can influence me to do better, I’d prefer they did. That’s one mark of a senior person.

    Steve Jones

     

  • Accelerating Your Career

    This post was originally published on Apr 23, 2013. It is being re-run as Steve is on vacation.

    I ran across an article on ways to accelerate your career and for the most part I think these are good ideas and suggestions. Networking, finding a mentor, and more will help you no matter what business or field you are working. Some of the advice is geared towards those people looking to climb the corporate ladder and move into management, which is not necessarily what many of us want. If that’s the case, ignore those items. There was one item, however, that I thought was particularly interesting for data professionals.

    The seventh item on the list notes that you should spend 10-15% of your time working on a project that’s outside of the scope of your job or team. That might sound crazy, and even dangerous, but it’s a good idea if your boss isn’t opposed to it. Having knowledge about the way your business works, the way they use data, or solve a problem, could be valuable in your existing job. You might notice a pattern or way in which you could improve either your job or someone else’s. Over time, helping in a variety of departments builds friendships, increases your networking, and might show your boss you deserve a raise.

    Many of us end up working with data as a widget. The job of a developer or DBA is writing code or managing data, and sometimes don’t often think much about the actual industry in which we are working. Gaining deeper knowledge of the way your particular business works means you can better understand why you are asked to solve a particular problem. That knowledge can lead to a better solution. It might also make your job just a little more interesting.

    For the typical US worker, that’s 4-6 hours a week. For the IT person, that might be a little more time, but I think it’s worth the investment. I wouldn’t be overly driven in this area, and if I were working on extra projects at work, I’d eliminate (or cut down) on the time I was spending learning new technologies. Life requires balance, and if you tackle something new in one area, make sure you know what you can give up.

  • Learning through Puzzles

    A few years ago I ran across the Advent of Code challenge. It’s an interesting set of puzzles that you are asked to solve. Most are at a scale that wouldn’t be practical to solve manually. Once you solve a puzzle, there is usually a second part that’s unlocked (you must put in the solution) and then your progress is tracked on the site. A new puzzle is released every day leading up to Christmas, but you can skip around and solve puzzles as you like after that. I had fun in 2016 working through puzzles in T-SQL, PoSh, and Python. I need to go back and work the 2017 items.

    Recently I was trying to brush up on some Python skills and ran across the PythonHow challenge. Before going on to rework some exercises and coursework, I decided to see what I remembered. The  puzzles are easy, but one leads you to the next. In other words, you start with pythonhow.com/start, when you solve the puzzle, you get a letter, say “r” (that’s not right). You change the URL to pythonhow.com/r/ and you get the next challenge.

    That’s a neat way to get build a flow. I could imagine that as a way of teaching someone new skills. Maybe you want to help someone learn R (currently our Wednesday Questions of the Day) or window functions. Give them a problem, and once they solve it, the answer leads them to the next puzzle. A puzzle game, but one that paces you according to your understanding of a topic.

    I wonder how many people might like learning like this, or perhaps might be frustrated when they can’t solve something. Maybe this is a nice addition to something like a Stairway Series, giving readers a chance to practice skills. Do you think this is a good idea? Not a super hard, challenge the experts, but maybe a way to help those that are beginners or intermediate SQL people learn to code better.

    Maybe some of you would like to build some small puzzles in T-SQL that we could link together? This might be a fun way to set up a T-SQL Advent calendar one year. Feel free to submit some to me.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.0MB) podcast or subscribe to the feed at iTunes and Libsyn.