Should you get certified?

There was a long discussion on Twitter yesterday about whether you should get certifications or not. While the answers were all over the place, there were a number of common refrains. The general consensus was that experience is always better when possible, but that a certification is better than nothing.

This being a complex topic, I thought I’d lay out the various factors to give a more comprehensive answer than you can easily fit in a tweet.

So the first two questions we need to answer are “Why do certs exist?” and “Why do people take them?”. Without these, we can’t give a good answer to whether you should take them. Certifications often exist for reasons that have nothing to do with your personal best interest. It is necessary to understand that fact.

Why do certs exist?

A vendor like Microsoft does not create a certification as an act of charity. Certifications are an expensive thing to create. I wrote all of the questions for the Pluralsight Power BI skill assessment and it was grueling process. I was asked to write at different level of understanding and to try to have plausible distractors as wrong answers.

While they do charge money to take a certification exam, I suspect Pearson takes most of that money and Microsoft likely breaks even, if anything. Oracle, on the other hand, charges quite a bit for their certifications. So we have to ask, why would Microsoft or another vendor create a certification? These driving factors will shape the content inside a certification, so it is important. A few reasons come to mind:

  1. Marketing
  2. Business/partner relations
  3. Technician adoption
  4. Market driver

Now it’s worth saying that these reasons apply specifically to a third party vendor. Platform neutral companies like CompTIA are trying to act as an accreditation body and have different motivations.

Marketing

Certifications are a marketing tool. They are a way to highlight new features in a a new version of SQL Server, for example. That highlighting is also done out of necessity, so that people can’t auto-pass the latest version of a certification.

Additionally, having certifications looks good on a company and is an indicator that the technology is fully-baked. I remember years ago looking into Vertica, a niche columnar database engine way before the time of Power Pivot. I remember looking into getting certified in the technology and thinking “Okay, they are pretty niche, but they have a certification path, so there must be something here.”

Same thing could apply to Microsoft and newer technologies like Power BI. It took a number of years for Microsoft to come out with a certification for that technology, in part because it changes so quickly. I could easily see an IT manager that is considering adopting Power BI using the existence of certifications as a sign that a) there is a path forward and b) Microsoft has made an investment and is unlikely to dump the technology.

Business/partner relations

Businesses need a way to assess the skill level of job applicants as well as growing employees. Certifications, along with college accreditations and years of experience are ways to measure someone’s skill level. Now, certifications aren’t necessarily a good way of measuring skill level. Often they measure memorization skills, certifications can be cheated, and sometimes certifications are out of date with the real world. But they are quick and easy from a business perspective.

At my last job, if I recall correctly, to get to level 2 on the help desk you had to pass the CompTIA A+ exam. This served as a clear bar of entry, and because turnover was so high on the helpdesk, reduced the amount of work assessing the skill of people who were likely to be gone in a year anyway.

Microsoft has a similar problem with Microsoft partners. Microsoft wants as many partners as possible, as long as they are competent and credible. So, how does Microsoft give a partner their stamp of approval without going through and an expensive auditing and assessment process. They use 3 criteria:

  1. Social proof. To become a Microsoft partner, you need 3 customers that will vouch for you.
  2. Certifications. You are expected to have 1-2 people with certain Microsoft certifications.
  3. Capital. You need to pay a certain fee to become a Microsoft partner.

Technician adoption

It is in Microsoft’s best interest for there to be a clear path forward for people to learn their technologies in order to increase technician adoption. If they want technicians to start using Azure for example, there needs to be a smooth path from remembering to understanding to application.

Certifications represent a small piece of this, along with training materials, Microsoft conferences, evangelists and so on. In theory, certifications represent a stepping stone to becoming an expert in a new technology.

Market Driver

Did you that Microsoft desperately wants you to learn PowerShell? They likely see it as a key differentiator and a way for them to stay relevant in the age of devops and infrastructure-as-code. So, let’s say that you are an executive at Microsoft and you want more people to use PowerShell, how do you accomplish this?

Well, one option is to add it as a requirement to many of your IT Ops certifications. And that’s what Microsoft has done. If a vendor has a large enough base of people taking exams, they can drive what people have to learn via the certification requirements.

Why do people take certification exams?

There are two reasons people take certifications:

  1. Accreditation
  2. Learning a technology

The important question is are they good for either of those?

Accreditation

In terms of accreditation, certifications are a mixed bag and can even be a negative indicator. By definition, the things that are easiest to write for standardized tests for fall near the bottom of Blooms Taxonomy. And so despite a decent variety in the types of questions Microsoft uses, test are naturally going to cater more toward people who are good at book learning and memorization.

image

Another issue is that is often easy to cheat on a certification. Testing centers do a good job of watching your conduct and verifying your identity. So in-person fraud isn’t an issue. However, it’s pretty easy to find dumps of the exact questions used on an exam. I once had a co-worker that had accidently used a dump to study and was asking the team about the right answer on a question. I pointed out to him that that was a verbatim question from the exam I had just taken.

Microsoft is making strides to address these two issues by introducing labs into their new role-based certifications. This will address the roteness and the cheating.

Compared to what?

An important piece of this is compared to what. The general consensus was that real, hands-on experience is almost always better than certifications. But for many new to the field, especially if you don’t have a bachelor’s degree it can be a catch-22. You need experience to get a job and you need a job to get experience. Certifications can be a way to break this paradox, along with internships, bootcamps, MOOCs, home labs and side projects.

Another issue is if you are settled in a job and want to pivot in another area. For example, let’s say you are a DBA that wants to pivot into Machine Learning. Part of the challenge is you are likely not gaining direct experience in your current position. Getting a certification in machine learning could help show that you have enough knowledge to make that transistion.

If you have the option to do an internship or a real project, I would recommend that over getting a certification. But lacking that, a certification is a decent option and much better than nothing. Just be aware that the content can be skewed and not always in line with the latest best practices.

Who is looking at them?

Another thing to consider is who is going to be looking at the fact that you have a certification? Like I said, they can be a bit of a mixed bag and I believe that IT managers understand that fact.  However, in many organizations, it isn’t IT who is the first pass but HR. HR, by not being domain experts, are more likely to lean on easy metrics and more likely to value certifications. In a pile of resumes, a certification could be what gets you past the first filter.

Learning Path

The other reason people get certifications is as a way of learning. The general opinion on this is decidedly negative.  Much of this is because of the skew we talked about towards new features and memorization. An ideal certification exam would give you a real problem and force you to solve it with the tooling. The second half of the Microsoft Certified Master was like this and was very well respected. It was also expensive and cost thousands and thousands of dollars to take.

Additionally, if you are just looking to learn, there is a vast set of free and cheap resources to learn. Often times you would be much better off with a technical book and a home lab, just banging away at real-world tasks.

But that being said, I have a much more positive opinion of certification exams. I think a lot about a quote by Donald Rumsefeld:

Reports that say that something hasn’t happened are always interesting to me, because as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know.
But there are also unknown unknowns—the ones we don’t know we don’t know. And if one looks throughout the history of our country and other free countries, it is the latter category that tend to be the difficult ones.

When you are just first starting with a technology, it is utterly overwhelming how many moving pieces there are. I find certification invaluable in getting a lay of the land and addressing those unknown unknowns. Certifications can be a way of getting past impostor syndrome and feeling like you understand a technology.

Are certifications skewed and sometimes wrong? Yes, absolutely. But they are also generally comprehensive and touch upon a wide swatch of subjects. I think a lot of when I got my second certification, specifically on SQL Administration. I remember reading about high availability and thinking “I don’t need to know this, we have like 2 SQL servers.” Which was true, until I accidently became a consultant and was configuring mirroring for customers.

Summary

Certifications are a flawed tool, often skewed toward certain subjects, outcomes and types of learning. But despite all of their flaws, they can be a way to get your foot in the door somewhere, or get a broader understanding of a technology. They shouldn’t be your first choice, but they shouldn’t be ignored either.

Create a Power Query custom data connector in 10 minutes

Getting set up

When I heard about custom data connectors for Power Query, I had assumed there would be a lot of work involved. While there is definitely quite a bit of work in implementing advanced features like query folding,  creating your very first connector is simple.

So, first you need Visual studio installed and the Power Query SDK installed as well. Once you do that, you will see Power Query as an option when creating a new project. Visual studio will also have support for .pq or Power Query files.

image

Once you create a new data connector project, you are presented with two main Power Query files. The first one, is simply a test query you can run on demand to test your connector.

image

The other file is your data connector. It has a bit of boilerplate to specify the types of credentials it accepts and publishing details such as beta status. Otherwise there is just a little bit of code defining the actual functionality. In this case we are defining the Contents function, which acts as a hello world:

image

If we run it as is, our test query will be run and we’ll see the results in a testing program.

image

Adding a function

So now, what if we want to add some more functionality? Say maybe a function to square numbers. First, we’ll add a SquareNumbers.Squared function to the main file:

shared SquareNumbers.Squared = (x as number) =>
let
y = x * x
in
y;

Then we update the sample query to call out function:

let
result = SquareNumbers.Square(7)
in
result

And it works as expected:

image

Exporting the connector

Once you have the connector working the way that you want,  run a release build in visual studio. This will create a .mez in the bin/Release folder of your solution. Copy that file to the [Documents]\Power BI Desktop\Custom Connectors folder. You will likely have to create that folder.

Whenever you open Power BI Desktop, it will recognize the connector but won’t let you use it because of security settings.

image

To get around this, go into the options for Power BI Desktop and then security. Under security, select “Allow any extension to load without validation or warning.” Then Restart Power BI Desktop.

image

Now we can see it is available in our list of connectors.

image

By default it will call the Contents function:

image

But we can easily modify the M code to call our squared function as well.

image

Which will give us the output we expect.

image

What next?

If you are interested in going deeper with Custom Data Connectors, such as adding a navigation view or  query folding, check out the TripPin tutorials.

T-SQL Tuesday #111 – What is your why?

For this T-SQL Tuesday, Andy Leonard asks us, “What is your why?”, why do you do what you do?

Many of the answers from others are heartfelt and admirable. Mine are not. Most fall under the category of either dumb or dumb luck.

Starcraft and Scholastic

My very first taste of programming was back in first grade or so with LOGO. I thought it was a lot of fun but never did any significant after that. I first got my second taste of programming with Starcraft custom maps. The year was 1999. I know this because my username was eugene11.  I’ll let you do the math. Starcraft had a scripting logic that was basically a simple if/then system.

But the day I became a true programmer was when looking in the back of a scholastic catalog, I found Interplay’s Learn to Program BASIC! The description promised to teach me how to make video games.
Interplay's Learn to Program Basic - Junior High Edition (Windows 95/Mac OS Required)

It was pretty easy to follow along with the lessons, although I didn’t truly understand what I was doing.  I could make small modifications to the games they provided but didn’t understand half of the logic therein.

In high school I would make video games on my graphing calculator, because I was bored. I also participated in a game jam called PyWeek.

Brothers and ex-girlfriends

When I went to college, I figured I’d either be a programmer or a professor. I went to Penn State beaver because it was close, cheap and my brother graduated there, so I already knew one of the professors.

In my senior year, I needed to take an elective in my major. I took Business intelligence, because the other option didn’t work with my girlfriend’s schedule. Remember when I said some of the reasons were dumb?

Later on I asked the professor for a job. He worked full time as the head of Business Intelligence at Bayer Material Science. He hired me and I worked there for a year. Ultimately, though, it wasn’t a good fit.

My next job was labeled .net/SQL developer. But after I was accepted I realized it was 90% SQL and suddenly I was a DBA and the new BI department. This part falls under the dumb luck, and it was lucky. I was in a role that I could grow into and over the years ended up working as a BI consultant within the company.

While much of the path to BI was an accident, I’ve stayed with it in part because of the strong community and the friendships I’ve made. I really wonder if I’d find a community as strong and giving as #sqlfamily in a different field. But also, if I’m being honest, because the opportunity cost is high and this is a well-paying profession.

Mom and my new adventures

My career for past 7 years has largely been an accident. I’ve always loved computers and thinking, but I can hardly say I chose this field. But back in September, I quit my job to work for myself. I did this to work on my physical health, my mental health, and have more control over my career.

And honestly, why not? Worst case I have a gap year on my resume, and I go back to get a regular job, right?

I’ve written about the lessons learned so far and more recently, I’ve discovered another why. Working for myself allows me the flexibility to take care of my mom. And so why not becomes much more of a why.

The real reason to become self-employed: being a caretaker.

Normally, I’d spend a few hours writing some eloquent 1,000 word blog post, with a dozen sub-headers and very mild puns. Today is not one of those days, as much as I want to make sure I do the topic justice. I’d rather get this written than push it out.

My rickety raft

If you are looking to become an independent consultant for the money, welll I’d advise against it. I wrote before about lessons learned and while you can make a lot of money, it’s a big slog and a big stress. I would compare it to trying to build a big wooden ship, from a rickety raft while you are using the raft.

Only now, about 5 months in, are things stable enough that I can relax. Our finances are solid for the next 3 months and we’ve finally gotten some walls on our raft. It’s still ricketey, but it’s going to take more than any single wave to topple us. It will likely take the rest of the year to get things completely stable.

If I was looking to make more money, the smart move probably would have been to take a job with “Senior” in the title and get a 20k pay bump.

The real benefit

There are a handful of reasons why I made this leap. I was tired of feeling overworked, I wanted to give this a shot, I wanted to work less hours, I wanted to travel more and give more presentations, etc. But a least a third of it, was knowing that in 5 years, or 10 years stuff was going to hit the fan with my mom.

I’m currently the primary caretaker for my mom. She lives independently and gets a lot of services from a Medicare replacement program, called Life Beaver County. I usually describe it as adult daycare meets medical center. They clean her place once a week and have nurses make sure she takes her medicine. For a while, my responsibilities were just grocery shopping every week and occasionally taking her out to go shopping.

But in the back of my mind I knew that as some point those needs were going to escalate. I knew at some point down the road there was going to be a year where she wasn’t well enough to live totally independently but not ill enough to go into assisted living. And very recently, I’ve gotten a, ahem, new commute.

My new commute

Things had escalated recently to the point where I knew that if my mom didn’t get more care, her physical and mental health were going to deteriorate. And so, somewhat reluctantly, I decided to start driving my mom to Life Beaver County every morning.

I am utterly blessed to be able to do so. While it’s a pain to spend 60-90 minutes every morning waking up my mom, getting her ready, taking her in; I am truly lucky to have it as an option. Right now I’m optimistic that her physical and mental health are going to greatly improve and that this could be the difference between being in a home in 10 years instead of 2.

Working for yourself is an utter pain. It requires a whole new set of skills as difficult as learning to be a manager, in my mind. But it also brings some options that just aren’t available with most jobs.

T-SQL Tuesday #110–Automation is relative

T-SQL-Tuesday-Logo

The theme for this week’s T-SQL Tuesday is “Automate all the things”. We are asked to talk about a project we automated or future plans to use automation. The problem, is… well, what counts as automation? I’m not sure, but I have a guess.

I’ve set up nightly ETL just with SQL agent and stored procedures. Is that automation? I mean it happens automatically, but it doesn’t *feel* like automation. Does it become automation if I use SSIS? Does it become automation if I add in BIML? How abstract does it have to be to count?

Are maintenance plans automation? Is it still automation if it’s built in to the product? I feel like anyone would laugh at me if I called them automation, but maybe if I used Ola’s scripts or dbatools, then it would count.

I think the problem is that automation is relative. Automation is whenever you make a process repeatable and it would normally be a manual process. So automation is relative to what you are doing manually today. Power Query could be automation if you are manually manipulating data in Excel every week.

Automation is really easy to accomplish the more inefficient you are! When I wrote about the biggest failure of my career, I wrote that I would have automated things more. What was that automation? Nightly ETL with stored procedures, maybe SSIS + BIML if I was smarter. If I was doing the project all over, it’d wouldn’t be called automation it would be called best practices!

So, what project would I definitely call automation that I have done? Well I can only think of one project, and it’s pretty silly. 4 years ago, I was using the Raspberry Pi as my main computer. Over the past few years I’ve tinkered with the Raspberry Pi and I’ve built some dumb BASH scripts to install and configure a new install of the OS.

It’s not fancy or impressive, but it makes my life easier and I’m happy with it. In the future I’d like to do something similar with windows so I can spin up a whole Hyper-v lab without any work.

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 net 30. This means for the course 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.

Why is Power BI Free?

Something that some people search for is the question “Why is Power BI Free?”. Power BI is free because it benefits Microsoft to have an easy on-ramp to Power BI and to attract as large an audience as possible. It is in their financial interest.

If you are wondering what the catch is, the catch is that the free version of Power BI has very limited sharing capabilities, among other features.

In this post, I’m going to cover some reasons why Microsoft would make Power BI free. But before we can elaborate on all of that, we need to clarify what we mean by “free”. Read my post from last week for more details.

So why is it free?

So why would it behoove Microsoft to provide a limited free version of Power BI? Some ideas come to mind:

  • People can learn for free. This is important since Microsoft is aiming for a broader audience instead of a deeper one. The main target audience for Power BI is the everyday business user, not BI developers.
  • People are skeptical. It can be hard to convince a business to make a large investment in a BI product. By having a free version, a small group of people can do a pilot project without spending any money.
  • Razors-and-blades sales model. Companies will often sell products at a loss or give them away for free, if there is a paid compliment needed to take advantage of that product. Think about how cheap printers are, but how expensive ink is, for example.
  • SaaS is where they make their money. Related to the previous item, Microsoft makes a lot of their money these days from subscriptions. It used to be that they primarily sold software as standalone packages. But in the last few years, they are making more and more money from  Saas like Office 365, or cloud computing like Azure. Power BI fits neatly into that space.
  • Free dashboards are good marketing. Some people will make really cool and innovative dashboards and then share them publicly. This doesn’t detract from Microsoft’s business model at all. Free users are free marketing.

Overall, Power BI is free because so much of the real value comes from the enterprise collaboration and sharing. You can make beautiful visuals with a lot of tools, but few compare to the IT Governance story that Microsoft has.

Is Power BI free?

Power BI Desktop, the authoring tool, is completely free to use. Users can also create free accounts on the Power BI service, with a number of restrictions. In short, Power BI  is free to get started, but if you want to do any serious professional work you are going to have to pay for a license.

Some pieces of Power BI are free and some aren’t. Parts that are available for free:

  • Power BI Desktop
  • Power BI Service (with limitations)
  • Power BI Mobile

Parts that are not available for free:

  • Enterprise sharing and collaboration
  • Power BI Report Server
  • Power BI Premium

Which parts are actually free?

Power BI Desktop

First there is the report authoring tool, known as Power BI Desktop. This tooling is completely free to use.

image_thumb1

(PBIX file credit of Microsoft. Available here.)

You will have to either create an account or deal with some mild nagging about signing up for a mailing list. You can disable that nagging with a registry change.

image

While Power BI Desktop is a great authoring tool, it is a terrible collaboration tool. If you were to live entirely in PBI Desktop, you’d have to pass around PBIX files which is incredibly clunky.

In my opinion, if you are going to look at using an on-premises, self-service tool you are better off using Excel. You still get a lot of the same capabilities with Power Query and Power Pivot, but inside of a tool people understand, and a tool Office 365 can render online.

Power BI Service

The Power BI Service, think powerbi.com, allows for free users. These free users can create reports and upload them, but with a significant number of limitations. The biggest is you only have one way of sharing content to others. Specifically with Publish to Web, which essentially makes your entire report free to the public.

You also only have one way of privately consuming other people’s reports, and that’s if someone places content in Power BI Premium. Otherwise, other users can’t share their reports directly with you. Power BI Free users are truly and island to themselves.

One other thing worth nothing is that you can’t sign up with a personal email. David Eldersveld has a good blog post on the issue. As of this writing, the uservoice request to change this has 2,800 votes.

See here for some more limitations of the free version of Power BI.

Power BI Mobile

Power BI Mobile is a way to consume Power BI Reports on Apple, Android and Windows mobile devices. Here is a picture of Power BI Mobile on my phone.

Screenshot_20180917-111943

Which parts aren’t free?

Enterprise sharing and collaboration

Power BI is, by design, a collaboration tool. It is designed for people to publish and share their reports. If you want to take advantage of content curation using app workspaces, you’ll need to pony up and pay for a Power BI pro license.

If you are doing any real work with Power BI, you are going need to pay for a license for yourself as well as any report consumers.

Power BI Report Server

In addition to Power BI Pro, there is Power BI Report Server, which is the on-premises solution for hosting Power BI Reports. If you decide to go with Power BI Report server instead of making use of the Power BI Service, then you are going to need to pay for SQL Server Enterprise as well as Software Assurance. Alternatively you could pay for Power BI Premium.

Power BI Premium

Power BI premium is an alternate licensing model where you are licensing the content instead of the users. Once you have 500 or more users, it starts to make sense. Until then, the $5,000 per month is pretty pricey.  It has other benefits as well, such as paginated reports and incremental refresh.

Summary

Some parts of Power BI is Free, but once you want to share with others, use more advanced features, or alternate deployment options, you are going to have to start paying.