T-SQL Tuesday #028 – Specialist? Generalist? Or Both?

by Greg M Lucas on 13 March 2012

TSQL Tuesday 14-Mar-2012

This month’s T-SQL Tuesday is hosted by Argenis Fernandez with a theme of “Jack of All Trades, Master of None?”.  As Argenis asks, are you a generalist, a specialist, or both? Can you even be both? In this post I will look at what those terms have meant and do mean to me.

I started my career in IT twelve years ago after a number of years in the service sector and having always been in very people-centric roles. Having decided on a fairly major career change, in 1999, I started studying for an MCSE on NT4 juggling a sixty hour work week with evenings and weekends studying and using all my holidays up attending courses. Any thoughts of specialisation were far from my mind then, I’d always enjoyed playing around with computers and bought into the concept of “MCSE” as a career – whatever that meant. My first job in IT started off on helpdesk for a small software house. This worked well for me as they expected to have to train staff up on their own software anyway and helpdesk was still very customer-facing which meant I could make the most of everything I’d learnt about people in my previous career.

It wasn’t long before I was managing the helpdesk team and also looking after the company’s internal systems as well as the usual customer support activities – definitely a Jack of All Trades role. However, by this time a pattern was beginning to emerge. It always seemed that any activities involving database changes (usually data updates, occasionally code or schema changes) always seemed to end up on my desk. I thought this might have been because I was the only person who had the patience to manage Sybase changes over a 9Kb modem link. But no, it was because SQL scripts have no undo button. Most of the support engineers I worked with had a healthy fear of fiddling around in a production database in some hospital half way round the world modifying life or death patient data. Don’t get me wrong, I certainly wasn’t blind to the risks – but my OCD-like tendency to double-check everything before pressing CTRL + E meant that I was happier doing this than some of my colleagues.

This was my epiphany!

I had originally planned to do Exchange as my MCSE speciality but could never quite get my head round it.  But I “got” databases in a big way, T-SQL was a lot more like English than other languages I had to dabble in such as perl; and tables, keys and working with sets of data just “made sense”. I gave up on Exchange and did the two SQL Server 7 exams to give me an MCSE and MCDBA. Pretty soon, I was doing most of the on-site data work for customers and looking after the internal SQL Server boxes. I remember spending ages learning how to write triggers so I could implement some custom functionality in the company’s PVCS bug tracking database.

I then moved on from that company into my first DBA role with another software house (and hosting provider), this time in the financial sector, doing both production support and database development. The rest, as they say, is history. My specialising in SQL Server was just a lucky accident but I love what I do and SQL Server development is now my primary skill by design.

The point of this post is that the perception of specialisation and generalisation have changed over that period.  When I started on the SQL Server path, most development shops operated some kind of waterfall methodology with, in larger companies, teams split along functional lines. So there would be a database development team, a web team and a test team plus a few others. Whilst there were always generalists, the perceived wisdom, as pointed out by Argenis, was that the secret to career success was to specialise. Back then, SQL Server was a relatively simple beast and some features such as the ETL and BI tools were still in their infancy. So it was possible to become a SQL Server “specialist” with pretty good levels of expertise right across the SQL Server tool set although even then people tended to specialise in development or production, rarely both.

Today, SQL Server is actually a huge application suite which incorporates a range of mature products covering OLTP, OLAP, ETL and other features which are suitable for, and are used in some huge companies with very demanding expectations in reliability, scalability and extensibility. The latest versions of the tool we know and love delivers on all these fronts but the complete product suite is so broad and complex, that I don’t see how anyone can be a specialist in all these areas. I do accept that someone might have broad knowledge of the entire SQL Server stack but surely then they are a generalist, not a specialist.

We now live in an “agile” world where most teams are cross-functional and the code (regardless of language) is owned by the team rather than individual programmers. This has led to the term “generalising specialist“, where each member of the team is expected to have real expertise in one area but also mid-level skills across all or most of the other technologies in use by that team. This can perhaps work well in a fully functional team where each expert is happy to pair and share with other team members but not all teams play as nicely as that together and the generalists may have to just muddle through.

The other thing that has changed over the last ten or twelve years is job ads. Look out for ads like “Must have at least 5 years experience of SQL Server 2012 and be an expert in T-SQL, MDX, SSIS, SSRS, SSAS and any other SSxS we haven’t thought of. Candidates with guru-level DBA experience of Oracle and Sybase will be preferred. Salary: competitive”  You just know that job description was written by someone in the Human Remains dept. who once read an article on hot skills in the Microsoft BI stack. Should you be lucky enough to get through the key word resume search filter, at interview you find out that they have one Visual FoxPro and two Access databases plus a couple of experimental DTS packages against a SQL 2000 database. But they are definitely planning to upgrade to SQL Server 2013 (sic) before the CEO’s grandson reaches retirement age. Oh yes, and for all these skills? The salary is actually competitive with the minimum wage, just.

Ok so maybe that is an extreme example but it does beg the question, what is a specialist? And can you really be a specialist in more than one area? Honestly now, does the person in that job description even exist?

I always tell people that I am a Development DBA, which means that I specialise in database design and development. For me that requires in-depth knowledge of logical and physical design, T-SQL, CLR, query tuning and database change management. To do this job, I also have to have broad knowledge of other areas including SSIS, .Net, current application architecture practices and the SDLC. I love what I do and put a lot of time into staying on top of technology but I also have a life outside work. I would love to learn and become more of an expert in other areas, especially the BI stack but if I spent time on that, I would have to sacrifice other skills.

So does that make me a specialist or a generalist, or both? I like to think of myself as a specialising generalist, which is good because that seems to be what most projects want these days 🙂

I will leave you with one last thought, if you chose to take those all-encompassing job descriptions on JobServe or Monster too seriously, you might end up feeling somewhat inadequate. Those kinds of candidates don’t exist so you can’t possibly measure up to them. Think about the experts and MVPs whose blogs you read regularly or who you follow on Twitter. I can’t think of one who would claim to be a specialist or expert in all areas of SQL Server. These are the people we look up to, that we aspire to be like technically, but they didn’t reach that level by trying to be an expert in all things SQL Server. And neither should you, find what you love doing and focus on that, and people will naturally begin to see you as an expert in that area.

{ 1 comment }

Argenis Fernandez March 13, 2012 at 16:24

Thanks for posting, Greg!

Comments on this entry are closed.

Previous post:

Next post: