How DBAs Can Adopt the Craftsman Mindset

The job of a DBA requires a fusion of skill and knowledge. To acquire this requires a craftsman mindset. Craftsmen find that the better they get at the work, the more enjoyable the work gets, and the more successful they become. Deliberate practice, Specialization and an appetite for overcoming difficulty are good habits to deliberately adopt to successfully grow those craftsmanlike skills to the point that you become "so good they can't ignore you".

Introduction

Recently I finished the book So Good They Can’t Ignore You, by Georgetown computer science professor Cal Newport. While the book is certainly not specifically targeted at database administrators, I found that many of the points were very applicable to the paths I’ve seen several highly successful ones take. For example, Newport makes the point that the “follow your passion” advice is largely flawed; rather, by honing our skills and getting good at what we do, we find that very passion.

“In most jobs, as you become better at what you do, not only do you get the sense of accom­plishment that comes from being good, but you’re typically also rewarded with more control over your responsibilities.” 1  Newport, Cal. So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love. Hachette Books (2012).

What Newport is essentially saying is that it’s by getting good at what you do that you gain the autonomy and mastery that fuel passion, not the other way around. This made me think about something I heard several years ago from someone of high standing in the SQL Server community. It was in the speakers’ waiting room at SQL Saturday in Philadelphia, and the person doing the speaking was current MVP Mike Hillwig, and to (hopefully not too roughly) paraphrase him, he said “When you want to move up in the SQL world, think about doing more of the things you like, and less of those you don’t.” (I’m not sure but I think he may have attributed the wisdom to another current MVP, Thomas LaRock.)

I’ve found this to absolutely be true; it’s only by getting really good at our jobs that we are able to filter out the parts of the job that we don’t like. If we are valuable enough, we can negotiate with our employer to let us focus more on the things we enjoy; if they choose not to agree to this, then we can go elsewhere, because highly skilled database professionals are always in demand.

This being the case, another idea from Newport’s book seems very appropriate: that of the mindset of the craftsman. He defines this as one who works tirelessly to improve his or her skills, which if done properly, results in us obtaining what Newport calls “career capital”. This idea, borrowed from basic economics, is that to get the things we want (autonomy, for example), we must have something valuable to offer in return, namely our skills.

I’d recommend the entire book to anyone interested in furthering their career, but for now I want to pick three specific habits that Newport identifies with this craftsman mindset, and apply them specifically to the work of a DBA. In each case, I’ll give you specific useful takeaways that will help to further your journey towards becoming a craftsman. Let’s get started.

Habit 1: Deliberate Practice

One of the first things that Newport identifies as a foundation of the craftsman mindset is the idea of deliberate practice. How do we define this? Newport cites a phrase coined by psychologist Anders Ericsson, which defines deliberate practice as “activity designed, typically by a teacher, for the sole purpose of effectively improving specific aspects of an individual’s performance.”  2  I would add to that that deliberate practice must:

  • Involve extended periods of focus.
  • Target specific areas of knowledge.

Throughout my career I’ve witnessed the importance of systematic, methodical practice of the craft of database administration. When I first started, I wasn’t even allowed to have full access to the systems until I could prove knowledge on some basic tasks. Beyond that, I was made to follow strict guidelines and practice our procedures rigorously, such that by the end I could do things without even glancing at Books On Line for reference. And don’t even think about clicking through things in the Management Studio GUI!

Here are some ways to incorporate the habit of deliberate practice into our work as DBAs.

Drill, drill, and drill some more

As DBAs we face a dizzying array of different tasks and problems. Often times these are presented in high pressure situations, where there could be a lot at stake. How can we prepare for these? By taking a page from emergency preparedness and doing drills. Pick a number of different scenarios that you might encounter, then practice walking through the steps necessary to resolve them. Here are a few examples of good things to practice:

  • Restoring databases, including file group and page level restores and point in time recovery
  • Manual failover of clusters, mirrored databases, and availability groups
  • Handling transaction log full errors
  • Responding to common automated alerts
  • Troubleshooting performance problems

Mind you, I don’t mean to imply that you should be doing all these from memory; quite the opposite, a checklist is often a DBA’s best friend. But even still, if you practice these steps frequently, you will not only improve your valuable skills, but better prepare yourself for the inevitable emergencies as well.

Takeaway: make a list of common tasks that you need to complete, especially those often done under pressure. Then, practice them repeatedly, making sure conditions are as realistic as possible.

Find the gaps in your skills, and focus on them

As DBAs we are often expected to be like Swiss Army knives: competent in all things related to SQL. As a result, it’s in your interest to have at least some level of skill in most of the basics of SQL Server. Take me, for instance: I am by no means a guru when it comes to SQL Reporting Services, but I can make a serviceable report and understand the basics of putting them together and deploying them. This is largely because I’ve made it a point to use SSRS whenever possible in the delivery of my work, thus requiring repetitive practice of fundamentals.

Take a look at your competence in the following core areas of SQL Server, then make an effort to do some work in whatever you feel your weakest area of knowledge is.

  • SQL Database Services
    • Creating and maintaining SQL databases
    • Installing and configuring SQL Server, including advanced configurations such as clusters and AlwaysOn availability groups
    • Security in SQL databases
    • T-SQL programming
  • SQL Reporting Services
    • Installation and configuration of SSRS, including advanced configurations such as load balanced / scale-out
    • Development of SSRS reports, including tabular, matrix, and graphical styles
  • SQL Analysis Services
    • Installation and configuration of SSAS, including advanced configurations such as those supporting PowerPivot and near real-time analytics
    • Use of scripting languages, including XMLA, DMX, and MDX
  • SQL Integration Services
    • Moving data between various sources, such as SQL Server, flat files, and possibly other RDBMS systems such as Oracle
    • Use of transformations such as pivoting, lookups, and others
    • Deployment of SSIS packages to SQL Server

Takeaway: Find one or more areas of basic SQL Server knowledge in which you are deficient, and make a point of spending some time in exploring them. You don’t need to be an expert, but basic competence would be good.

Make practice a priority

All too often I have heard the excuse of “I just don’t have enough time to practice my skills.” I sympathize with this, because I know what it’s like to be stuck in the weeds, spending all your time on mundane tasks and putting out small fires. But at the same time, you simply aren’t going to get ahead unless you start finding the time to improve your skills.

Talk to your boss about dedicating a small amount of time every week to this, and if necessary book yourself a conference room and shut off your e-mail. Your practice time needs to be focused if is to be effective, so eliminate any and all distractions. If you still find it difficult to be successful, you should consider as a last resort doing what I suggested in my initial post in my ‘Mindset of the Enterprise DBA’ series, and using some of your own time to complete your practice. It’s not ideal, but consider it a solid investment in the future of your career.

Takeaway: Schedule recurring times for practice on your calendar, and do everything possible to protect that time as sacred.

Habit 2: Specialize

“Wait,” you say, “didn’t you just say that DBAs are expected to be generalists?”

Why yes, I did, and I stand by that comment. But at the same time, I think the best DBAs tend towards developing one or two more narrowly focused areas of excellence as they progress in their careers. For example, I would say that someone like perennial SQL Server MVP Adam Machanic’s knowledge of parallel SQL query processing is second to none, and if you’re looking for someone who knows how to squeeze every last drop of performance from a virtualized server, Brent Ozar is most certainly your man.

To go back to the theory of career capital, the skill of being able to offer highly specialized expertise in a particular area is a very valuable to have in your toolbox. It will help you stand above the masses of generally competent DBAs, while at the same time enabling you to focus more on those areas that you enjoy.

So how does one become a specialist?

Figure out what you like

We all have areas of SQL that we enjoy more than others. I, for example, happen to love tuning SQL queries and understanding how to make them go faster. There’s nothing like that feeling of satisfaction I get when comparing the before and after numbers of a query and seeing that my work has had a visible impact. Over time I discovered this by taking stock at the end of every day of what I had done, what I enjoyed, and what I did not. Not only did this help lead me down the path of specialization, but it also helped me determine what, as our friend Mike Hillwig noted, I wanted to get more of and conversely get less of in my career.

Takeaway: Keep a journal (or a blog) of what you accomplish in your daily work, and make note of what you particularly enjoy (and also what you don’t).

Follow those who are where you want to be

Once you figure out what areas you enjoy the most, find people in the community who are already experts in that, and follow them. Read their blogs, their books, and try and interact with them whenever possible on Twitter or if you’re lucky enough to see them at conferences or other events. For example, when I determined I wanted to become an expert in SQL performance, I made it a point to read through Grant Fritchey’s (still the best in my opinion) book SQL Server 2012 Query Performance Tuning, as well as subscribe to Grant’s blog. As with most members of the SQL elite, he’s incredibly forthcoming and giving with his knowledge. And while I haven’t had the pleasure of meeting him yet, you can imagine my surprise and glee when I found out he was tech-editing (and actually liked) one of my first articles published here on Simple-Talk (there might have been some rather embarrassing squee-ing involved).

Takeaway: find at least two or three people in the community who are experts in your chosen field and make it a point to follow them.

Prioritize and seek out work in your specialty

We all have a limited amount of time in which to conduct our practice, so while it’s important to not pigeon-hole yourself too much, it’s equally important that a majority of time is spent focusing narrowly on your chosen specialty. Make a map of the skills and areas of knowledge necessary to become a veritable rock star, then methodically pursue each one.

A great way to accomplish this while still remaining productive is to let it be known that you are actively seeking the kind of work that will help you on your way towards specialization. Sticking with my own example of performance tuning, I worked with the development teams to proactively tune their queries as much as possible, and often volunteered a good bit of time to mentor and help those developers writing the queries. Not only did this help expose me to a lot of real-world examples of poorly performing SQL, but it also built up a lot of good will with those I worked with.

Takeaway: figure out the kind of work that will best help move you towards specialization, and seek out more of that while also dedicating more practice time to it.

Habit 3: Embrace the Difficulty

In their excellent 2014 work Make It Stick: The Science of Successful Learning, authors Peter Brown, Henry Roediger, and Mark McDaniel talk about the importance of what’s known as “desirable difficulty” in both increasing skill and helping aid retention of knowledge. They use the example of an elite military training program for paratroopers, where “you are not allowed to carry a notebook”, “testing is the principal instructional medium”, and you either “get it right or get the boot.”  3  Far be it for me to compare the rigors of army jump school to the work of a DBA, but nonetheless we can learn something here: learning and practice should be hard.

SQL Server is an immensely complex product, with many nuances and subtleties to its operation. Sure, one can become competent by only scratching the surface, but where’s the fun (or value to your employers and your career) in that? To get the most out of SQL, we must dig deep and understand the internals of what makes it tick.

When I first began working as a junior DBA, I had the fortune to work under someone who embodied this notion. For ease of reference, we’ll call him Frank. Frank was a senior DBA with well over a decade of experience, and he certainly understood the importance of what Newport calls “deep work”. So, I’d like to use him here to illustrate ways that DBAs can leverage (and even embrace) the difficulty of learning their craft.

The more difficult a problem, the better it is to solve

Frank could often be seen, glasses perched at the edge of his nose, squinting at the monitor in front of him. His brow would be furrowed, his mouth turned ever so slightly downwards in a grimace. He would tap things out on the keyboard from time to time, then mutter some curse at the great gods of SQL for frowning upon him. But every so often, he would nearly shout for joy at having found some solution to a difficult problem. He did this day in and day out, repeatedly, and as a result built up an immense amount of practical knowledge about solving problems. So good was he, in fact, that I dare say he became “the man” for troubleshooting anything and everything related to SQL, without question, in the entire organization. People sought him out constantly for his advice and opinions (perhaps even to detriment of his productivity). You could see how he craved challenge and adversity, because he knew that it was only through persisting through these scenarios that he progressed as a DBA.

Takeaway: When you find yourself having difficulty solving a problem, don’t shy away from it; push forward, knowing that it will be hard, but that you will benefit immensely in the end.

Read often, and read what challenges you

Frank’s book shelf was a veritable personal library of books relating to SQL Server, especially those containing details about the internal workings of the product. It was not uncommon to see him working with Kalen Delaney and Paul Randal’s Microsoft SQL Server 2008 Internals (the more up to date 2012 version is seen here) on one side, and Itzak Ben-Gan’s Inside Microsoft SQL Server 2008 T-SQL Programming on the other. The man devoured these books, and was always on the lookout for newer ones. He made a point of following some of the most difficult and in-depth SQL blogs out there, such as Paul White’s and Benjamin Nevarez’s, and routinely applied their teachings to his daily work. As a result, I would say his knowledge of the internals of SQL Server, especially around optimization and execution, are nothing short of excellent.

Takeaway: Make reading highly technical and difficult works a regular part of your practice, and make sure you apply the knowledge from them in your daily work.

Forget the GUI

Frank once caught me trying to use the SQL Management Studio graphical interface to do some kind of routine task. What it specifically was I can’t remember, but what I do remember was his near Sergeant Hartmann level response (well deserved, no criticism intended) at the very idea of clicking through a bunch of screens or using something called a “Wizard”. He insisted that I use nothing but T-SQL to complete my work, and while it was difficult, I’ve benefitted immensely from it. Doing our work in T-SQL forces us to think through what we are trying to accomplish, then carefully construct instructions for the computer to complete it. In addition, it has the benefit of better enabling future automation, since it’s far easier to run a script than fake a bunch of mouse clicks.

But even beyond that, Frank’s ability to complete complex tasks without any reference to Books On-Line was amazing. It was like he had the entire dialect of Transact SQL stored in his head, carefully indexed for retrieval. Going back to the book Make It Stick, this makes sense, given that practiced recall without cue is one of the most efficient (and equally difficult) ways to encode knowledge into our memory. I’ve tried to follow that model, and my efficiency and skill has been the better for it.

Takeaway: use the graphical interface as little as possible during your work, and try not to use reference guides as much as possible, even if it means making a few mistakes (you do test your scripts, right?).

Conclusion

In closing, I challenge you, dear reader, to adopt this craftsman mindset in your daily work. Practice your profession in a deliberate manner, even if it means spending some of your own time doing so. Find what it is you like, then focus your efforts narrowly towards becoming a specialist in that area. Finally, recognize and embrace the challenge and inherent difficulty of mastering a complex subject like SQL Server. To be successful on this path, you must invest considerable time and effort. But as we’ve also seen, the results of doing so are quite appealing. By becoming (to borrow Newport’s phrase) “so good they can’t ignore you”, perhaps we can even gain that elusive and valuable thing Mr. Hillwig spoke of: the freedom to pick and choose our own course in our work as database professionals.

References

  1. So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love. Hachette Books (2012).
  2.  Ericsson, Anders K. “Expert Performance and Deliberate Practice,” http://www.psy.fsu.edu/faculty/ericsson/ericsson.exp.perf.html
  3. Make It Stick: The Science of Successful Learning. Brown, Peter C, Roediger, Henry, and McDaniel, Mark. Belknap Press (2014).
Tags: , ,

  • 11865 views

  • Rate
    [Total: 25    Average: 4.5/5]
  • Anonymous

    Well Done
    This article explains the path an exceptional DBA needs to take and think about.

  • David Caughill

    Absolutely excellent!
    Thank you Joshua – a great read with loads of wisdom sprinkled in!

  • Anonymous

    Itzik not Itzak
    Minor typo in Itzik’s name

  • vdberge3@telkom.co.za

    Thank You
    Hi Joshua thanks a million for your article. I like what you say about learning should be hard… Learning is like physical exercise, if you want to get results with physical training you have to train hard and smart. Learning is exactly the same only you are training your brain. Thanks for a very well written article. I really enjoyed reading it. This actually reminded me that I still need to finish reading the mind of the enterprise DBA series. 🙂

  • George Copeland

    Craftsmanship vs. professionalism
    Great points about the value of craftsmanship. Professionalism is how I describe it, which might be a little more encompassing.

  • GGH

    Excellent!
    I will have every student I work with read and study this article.

    Well done.

  • Ricky Lively

    something you might be interested in
    http://chimera.labs.oreilly.com/books/1234000001813

    from chapter one

    The concept of apprenticeship is based on the medieval craft model, where small teams of practitioners work together and inexperienced apprentices help the journeymen and master craftsmen do their work. One of our goals for this book is to inspire the people who love to create software to stay focused on their craft.