Monthly Archives: December 2018

First impressions: SQL Server 2017 Administration Inside Out

I recently had the pleasure of reading SQL Server 2017 Administration Inside Out by William Assaf, Randolph West, Sven Aelterman, and Mindy Curnutt. I love this book. While I haven’t finished reading it yet, I wanted to post my first impressions. I’ll update this post once I’ve finished the book.

I recommend this book for accidental DBAs, junior DBAs, and senior DBA’s with a sense of impostor syndrome. I would NOT recommend it for people with no experience with SQL Server or for senior DBAs looking for a deep dive. This books aims at breadth not depth.

To emphasize that point, take a look at the table of contents below:

  1. Getting started with SQL Server tools
  2. Introducing database server components
  3. Designing and implementing a database infrastructure
  4. Provisioning databases
  5. Provisioning Azure SQL Database
  6. Administering security and permissions
  7. Securing the server and it’s data
  8. Understanding and designing tables
  9. Performance tuning SQL Server
  10. Understanding and designing indexes
  11. Developing, deploying and managing data recovery
  12. Implementing high availability and disaster recovery
  13. Managing and monitoring SQL Server
  14. Automating SQL Server administration

That is, without a doubt, a lot to get through. Each chapter could easily be its own book. Instead, I see this as a book to fill in the gaps. The text is perfectly suited for that middle level of complexity, where you have heard of a concept, but it doesn’t click yet. This book made things click for me.

As an example, let’s take look at chapter 2. In this chapter they run through the core components of a computer: memory, CPU, storage and networking. They are fundamental concepts for any IT worker. How easy would it be to say “Everyone should know this.” Despite how basic these concepts are, the authors neither condescend nor assume prior knowledge.

For example, when there are complex concepts such as RAID or NUMA, they take the time to explain what these things mean, why they are important and why are DBA would care. Reading these sections, I felt a sense of gratitude because use when people talk about these concepts, I never quite get it. Reading this book, I felt like I “got it”.

So, you may be wondering why I wouldn’t recommend this book for people without SQL Server experience. First, It’s big. It’s over 704 pages long. Second, the book is very good at filling in the gaps of an existing mental model. It would need more detail and information if you were starting out with almost no mental model, such as a college student.

Regarding tone, the book is quite technical and detailed at times. For example, it explains each and every column in components of the Activity Monitor. That being said, the authors do try to inject a bit of humor here and there. They also aren’t afraid to call out worst practices, such as running Database Tuning Advisor in production. I appreciate a book that a little bit opinionated.

One last comment on the book: I appreciate that it is a book about modern database administration. It acknowledges the realities of Azure and PowerShell, two tools required for any dba moving forward.

So, is this book worth buying? I would say yes, with some conditions. First, there is no question regarding the quality of the content. It is well written and the authors are experts in their field. The first condition is to make sure you are actually going to read it. It’s a long book and adds more value as a whole, not as individual chapters.

Second is a matter of your skill level. If you are looking to fill in gaps in your knowledge of SQL Server overall, you will fall in love with this book. If you are either very junior or very senior, you will feel quite frustrated. This is very much a “Goldilocks” book: not too deep, not too light, just right.

Lessons learned from being self-employed, 3 months in

Back in September, I quit my job to work for myself. While I don’t have any regrets, I’ve certainly been doing a lot of thinking. I’ve been thinking about what this job means for me and where I’m going next. Being self-employed has been full of surprises. This recent comic by Alex Norris sums things up well:

image

So what have I learned  so far?

You are soft, squishy and frail

I quit my job for a number of reasons. Partly because I felt like I was stagnating and busy supporting legacy applications. Partly because I was feeling stressed out and overworked. My weight has been steadily increasing for the past year as well as my A1C. It was time for something to change.

I mention this because trying to jump from one stressful situation to another can compound issues. Changing jobs is one source of stress. Working for yourself is another source of stress. Working from home for the first time is another source of stress. When you add these all up, the biggest hurdle I’ve run into is acknowledging my own limitations. When you work for yourself, self-care and self-management become the most important skills you can have.

I’ve never been good about acknowledging my own needs. I hate the phrase “self-care”. To me it evokes images of decadent bath soaps and floral scented candles. But a lot of it comes down to sacrificing the immediate for the prudent. Exercising, sleeping, taking breaks, eating health, etc. It involves being humble enough to acknowledge that having needs doesn’t make you weak. It involves acknowledging that you are soft, squishy and frail.

The consequences of not taking care of yourself are amplified when you are self-employed. When you have a normal job, you have to get dressed and go to work, whether you feel like it or not. In contrast, if you have a bad day working from home, you might feel demotivated and get less done the next day, and so on and so on. When you work for yourself, all the guard rails come off.

When I first made the switch, I found myself going into a depressive episode. My third course wasn’t paying out yet, I didn’t know if I would find work, and I was in a difficult contract negotiation with a potential client. Things are going much better now, but the specter still looms as the days get shorter here in Pittsburgh.

Working from home is utterly lonely

I’m naturally an introvert. If you and I have a conversation, it’s like a little taxi meter starts running. I may deeply, deeply enjoy the conversation and find it incredibly exciting, but it still taxes my energy levels. Small talk even more so. Imagine that every time someone chatted about the weather, you had to pay the same price as a Lyft ride to go 4 blocks. That’s how I feel about small talk.

That being said, we are still social creatures, and even introverts need human interaction. Especially so when you need to think through new situations, new problems. One of the things I realized attending PASS Summit is that I need social interaction to thrive. So now I spend a lot more time on Twitter and am part of a peer group of authors. I work down at the library whenever I have the chance.

Your brain is dumb and thinks you are at work

Working whenever you want is a terrible, terrible idea. While you, intelligent person, may understand the idea of working whenever you want, your brain is dumb and now thinks you are at work all the time. On top of that, now you have to make the regular decision “Do I want to work or take a nap?”. Set regular office hours and stick to them.

In addition to that, if possible get a separate office space. I have a separate room, but right now I use the same laptop for everything. Eventually I’ll buy a computer just for work. In the meantime, I’ve been trying to use my PS4 more and get out of the office when I’m not working.

It is important to make as many dividing lines between home space and work space as you can. Same for delineating leisure time and work time. If you don’t, it all becomes a blur and you feel this vague dissatisfaction.

You will work too much, too little and for long periods of time

Never underestimate the power of social norms and peer pressure. At a normal job, you are much more likely come and work for the normal set of hours. But when you work at home, it’s really easy to work a 6 hour day. It’s also easy kick yourself for doing this, and work on the weekends to try to compensate.

Some weeks you might work 30 hours and some weeks you might work 50. Here’s a recent 50 hour week.

image

This “flexibility” is at times convenient, but in the long run it isn’t wise. Because your success depends entirely on you, there is the temptation is there to work more and more. This is especially true when you are just trying to get things going. Again, setting office hours and sticking to them is important.

Another issue I’m running into now, is that I no longer have a good reason to take breaks. At my old job, I’d get up, walk around, get a drink, chat with coworkers. Because I was doing a lot of task switching, it was easy to find good times to take breaks.

Now, I’m working much larger chunks which means I have to force myself to take breaks. Currently I’m forcing myself to follow the pomodoro method, taking 5 minute breaks every half-hour whether I feel like it or not. This has helped me focus more and has made work less of a blur.

This goes back to the self-care and self-management thing. I feel utterly silly forcing myself to take breaks and walk around. Like some child that needs to be reminded, “Okay, now get up and stretch!”. But productivity isn’t a natural state of affairs, at least it isn’t for me. And if I want to be successful in my new job, I’m going to need to keep my ego in check.

Time is money and money takes time

When you start to work for yourself, you are going to think about money. A lot. And if you don’t, it’ll make you think about it. I’ve overdrafted on my bank account 3 times now, and each time I feel like an idiot. It’s not that we don’t have the money. The problem is we have 4 different bank accounts that need consolidated.

This was never a problem before. First we always had enough savings to cover any expenses. Second, I had a paycheck coming in every 2 weeks. Now that I work for myself, the expenses still go out monthly, but income doesn’t come in every 2 weeks.

Every dollar is a hustle and a hassle

The first reason you starting thinking about money more is because it’s no longer guaranteed.  I underestimated how convenient it was to have money coming in on a regular basis. It was so much easier to budget for the household and plan expenses. Now I have to bust out excel and do cashflow planning. You’ll notice how jagged the big spikes are.

image

That downward trend will keep happening regardless of what I do. But those spikes up only happen if I make them happen. It feels very much like this Sisyphean task of pushing our savings boulder up the hill and then it rolls back down.

People take forever to pay you

Not only do you have to think about doing work to get money, but you have to think about when it will come in.  $2,000 today can be worth a lot more than $4,000 in six months. On the one end of the extreme, I have a customer that prepays me for 40 hour blocks of work at a 20% discount.

At the other end of the extreme, my courses pay out quarterly plus I released in mid-October I won’t see any royalties until late January. When you are worrying about paying the bills today, this is a nightmare. But the courses are lucrative over the long term, so I need to make sure I keep making courses.

Another factor is unexpected delays. Delays with agreeing to a contract. Delays with agreeing to the scope. Delays with the customer changing their mind on a piece of work. You can never count on a future piece of income until the check is signed and in the mail.

The distance between action and result gets longer

When you work a 9-to-5 kind of job. You put in a certain number of hours every week and get paid a certain number of dollars every two weeks. Even if you are a salaried employee, the distance between inputs and outputs is pretty straightforward. When you are freelance, everything gets murky.

First, a lot of the work that I do has long term deadlines. If am making a course, I will work on that course for 4-6 months and not see any money until it is completed. If I’m writing a paid article, the cycle is shorter but there is still a delay.

Now, for customers that I bill time and material, it’s a lot simpler in theory. But the sales cycle to get that customer is still a numbers game. Everything in the sales cycle is like buying little tiny lottery tickets with your time and energy. You have no idea which one will pay off, so you buy a lot of lottery tickets.

To start with is marketing. Marketing is the act of realizing that most people, by default, have no idea who you are and don’t care. I spend an hour every week writing my newsletter. What’s the dollar value on that? No idea. When will it pay off? Maybe years down the road. Every newsletter issue is a tiny, tiny lottery ticket.

Once people know you exists, you have to deal with the sales process. First you have to talk with people that might be interested in your services, a.k.a. leads. Then you narrow them down to people who are actually interested in your services, a.k.a qualified leads. Finally, you have to scope the project, submit a proposal, and hope it gets accepted. Once you do the work, you go back and hope they have more work for you.

This cycle can take weeks or even months. Tiny, tiny lottery tickets. So much of sales and working for yourself is playing the marshmallow game. Do you eat one marshmallow now, or do you wait and hope for two later?

Your skillset and your job role get blurry

When I initially made the switch to freelance, I thought I was going to become a fulltime course author. As I picked up consulting work to help pay the bills, I’m realizing that a blend probably makes more sense. So I would use course authoring to provide a stable base of income and use consulting to stay sharp.

Off-brand consultants

If you are going to do consulting, you have to deal with another piece of marketing called branding. If marketing is making sure people know you exist, branding is deciding what you want to be known for. I’ve written before that people pay for specialization. This is doubly so in consulting. A recent customer told me, “If I’m going to pay you, I need to make sure you know more than my team.”

This has two consequences. First, is that any work you do that’s off-brand is time you could be spending going deeper on what you want to be known for. For example, I’m doing Xamarin development for my old employer. This helps pay the bills today, but is taking away from Power BI work I could be doing to grow my expertise.

The second consequence is that your training plan becomes more forward looking. In my prior job, my learning was heavily driven by my immediate tasks. At times this lead to a learning plan that was a mile wide and an inch deep. Now, my learning is driven by where I want to go as a person, as a business, and as a brand. For me that means learning more about SSAS, data modelling, and good report design. Not C#, not Docker, not PowerShell, not Kubernetes.

Don’t get me wrong, those are all exciting and powerful technologies that are going to be extremely important over the next 5 years. But as a consultant, the benefit of specializing is much higher than normal. Once you are established, then you can start to branch out more.

Learning soft skills is hard

But wait, it’s not so clean cut. We were only talking about technical skills. But when you work for yourself, there are an array of soft skills you need to learn. The first are business skills: reading contracts, marketing, sales, accounting. There are a ton of things you just never had to deal with as a regular employee.

The other set of soft-skills are what you normally think of: writing, communication, time management, etc.These become more important when you work for yourself. So much of consulting is being able to build relationships and communicate clearly. So much of working from home is being able to manage your time and your focus.

Summary

Like I said, I don’t regret the decision to work for myself. It gave me a soft landing from my last job and is giving me the time to think about what I want my career to look like. But it is a lot of new things to learn and is, at times, overwhelming. Right now I don’t know if this is something I’ll be doing for the next decade, or it is more of a gap year. We’ll see!

New Power BI skill assessment on Pluralsight

I’m quite excited to announce the new Power BI skills assessment on Pluralsight is in beta. This assessment is the result of me spending dozens of hours writing questions and some wonderful peer review by Gilbert Quevauvillie. Please do me a favor and take it. It will take 15 minutes and we need your help to calibrate it.

I’ve received feedback that some of the questions are a bit weird and not really core Power BI skills. For example, there are questions about R syntax, deploying to SharePoint, etc. That’s by design. The assessment is self-calibrating as people take it. Once it goes live, those harder, oddball questions will only show up when you’ve correctly answered the easier core questions.

The reason we need your help is we need to know which questions are easy, which questions are hard, which questions are correlated, which questions are too guessable. I appreciate everyone’s help in getting the assessment to be ready to go live.