The parable of Clark Kent and the performance review

Few people know this, but before he found a job working for the Justice League, Clark Kent worked for years as a kryptonite delivery guy[1].

DALL-E prompt: "superman, sick sad and depressed, carrying a glowing green cardboard box, pen and ink line art"

Try as he might, Clark never seemed to figure out this job. His coworkers made it look so easy, but Clark struggled every day. Some of his colleagues supported and helped him, but he knew others were frustrated and felt that he was letting them down.

Clark dreaded going to work each morning, and at the end of the day he felt sick, exhausted, and disheartened. He was determined to try harder and not give up, but when an interesting opportunity presented itself, he applied for a new position. Although it took him a little while to adapt to his new team, he soon found that in the right environment he could fly. Literally. The rest of the story you probably already know.

Even though this story is about Superman, it feels like it could be about me. Maybe it feels eerily familiar to you too… and maybe you feel like you still have a big box of kryptonite in your arms.

If you’ve seen my “Unplanned Career” presentation you’ve heard a version of this story already, but I spent 7+ years of my career at Microsoft delivering my own personal kryptonite. I tried extra hard and occasionally succeeded, but compared to my peers and my leaders’ expectations, I simply didn’t measure up. It wasn’t until I found my current role and team that I learned that I could fly.

If you’re in a situation, in a role, or on a team where the things you need to do are harder for you than they are for everyone else, or where the thought of going to work makes you ill, perhaps it’s time to look for your next role. I’m not talking about giving up – I’m talking about moving up.

Instead of falling prey to the sunk cost fallacy, why not step back and ask yourself these questions?

  • What am I good at – especially where am I strong where others are weak?
  • What gives me joy and energy when I do it?
  • Who has the problems that I am uniquely qualified to solve?

I’m not convinced I’ve articulated these questions as well as I should, but I’m going to keep pushing forward. Ideally your honest answers to these questions will start you thinking about the unique value that you can contribute, and that in turn can help you start thinking about where that contribution will be uniquely valued.

I’ve been thinking about this post for months, but the pieces didn’t feel ready to fall into place until today. Perhaps that’s because today I completed my end-of-year Connect[3], and I realized what an awesome year I’ve had. I kicked all the butt and took all the names, and then I forgot half the names when there was more butt that needed kicking. It was a very good year, in ways I could never have imagined before I found my amazing team.

It’s not only that I’m doing incredible, high-value and highly-valued work – it’s that it’s almost effortless.

Please don’t get me wrong. I work very hard, and I struggle every day. I’m pushing myself to learn and grow, and sometimes I fail. When I do fail, I think back to how I felt when I was delivering kryptonite every day. I’m doing things I’m good at, and which give me energy and joy. I’m doing them for leaders who recognize, respect, and value what I do. I may be flying against the wind, but I’m still flying.

If you’re not flying, maybe its time to ask yourself why not.


[1] I’m not sure why I can’t find the comics where this story was originally presented, but I swear on Batman’s mom’s grave[2] that the story is true.

[2] Too soon?

[3] The “Connect” is the self-appraisal part of Microsoft’s semi-annual performance review process. It’s designed to be a lighter-weight check-in between employee and manager, and an opportunity to evaluate progress and align on goals for the period ahead. The Connect that comes before the end of the fiscal year is a major input into the rewards process that determines things like promotions, raises, and bonuses. As you can imagine, completing my Connect is my least favorite task of the year, and it always seems to take me 10x as long as it takes everyone else, which feels very on brand for this blog post…

Roche’s Maxim of Community

Roche’s Maxim of Community states:

A community is defined by the behaviors it tolerates.

I played the “maxim” card already a few months ago, I think it’s time to play it one more time, because this is another succinct formulation of a fundamental principle, general truth, or rule of conduct that I need to share[1].

An AI-generated image of a diverse group of people attending a conference

As you read this you might be thinking about the recent change in leadership at Twitter, and how the new leadership is inviting in and promoting prominent neo-Nazis, insurrectionist leaders, and other extremist, anti-democracy, and authoritarian figures, and how more and more members of the technical community are turning their backs on this now-sullied social network. I’m thinking about this too, but I’m also thinking more broadly because any maxim needs to be broadly and generally applicable.

So let’s start with a few examples. If you’ve made it this far I hope you stick with me for the rest.[3]

I’m part of of the global Historical European Martial Arts (HEMA) community. I love training and fighting with swords, and I love the camaraderie that can be found through martial arts and combat sports. When your community activities bring with them a direct risk of serious injury, it’s important to be able to trust your training partner, your sparring partner, and your tournament opponent to keep your safety in mind.

Back in 2017 I competed in a tournament organized and by a HEMA club with an established “Cobra Kai” reputation. I attended with a clubmate who is a fantastic swordsman and all-around martial artist. I was competing in open tournaments. He was competing in the advanced invitational tournament that included the head coach of the organizing club. The invitational tournament was also refereed and directed by members of that club. Yeah.

During the match between my clubmate and the coach of the club running the tournament, that coach exhibited the unsafe and unsportsmanlike behavior that earned him and his club their reputation.

I was in my clubmate’s corner both coaching and taking video. At the end of the day I shared the video[4], and it started making the rounds on HEMA groups on Facebook. Even though “sharing tournament footage so fighters and clubmates watch and learn” is pretty standard behavior, this one caused some waves and started some difficult conversations. I don’t believe that the video showed anything surprising – this was the behavior everyone knew about already, and which they talked about behind closed doors. The video simply shone light on it, and made it harder to ignore, or to pretend you didn’t know.

I started avoiding events where this club was involved. I didn’t make a big deal about it, but when people asked me why I wasn’t going back to a tournament where I’d competed the previous year, I was honest in sharing my reasons. Fast forward to the HEMA event circuit starting back up in 2021, this club is no longer involved in multiple tournaments that they previously ran. Several of their most senior and prominent members have left the club, and started their own.

I’m a pretty small part of the HEMA community, so I doubt my personal actions had that big of an impact – but I know they were part of this positive change. I saw behavior I would not tolerate and I voted with my feet. Others did the same, and the community evolved and grew.

Progressive and inclusive HEMA clubs like Valkyrie Western Martial Arts in Vancouver, BC and London Longsword Academy in London, UK demonstrate this maxim in a positive and proactive way. I’ve already written previously about the aggressive inclusivity that pervades Valkyrie’s culture, so here I’ll focus on a few aspects of London Longsword Academy[5] and their Fighters Against Racism (FAR) initiative.

As the FAR page says, Fighters Against Racism is a reaction to the “unpleasant element” in the HEMA community. If a club displays a FAR poster or banner, people who are offended by anti-racist statements will feel unwelcome – which they are. If a fighter wears a FAR t-shirt or patch to a tournament, they’re sending a clear message to everyone there what they believe, and that they are confident that this belief will be accepted and welcome at the event. My FAR t-shirt[6] is pretty successful at attracting YouTube comments, but so far I’ve never been confronted in person.

A community is defined by the behaviors it tolerates.

If you’re reading this blog (and I have every reason to believe that you are) you’re probably more interested in data and technology than in swords. My next example is more recent, where in August of last year[7] there was an online discussion about the need for codes of conduct at conferences and community events. My tweets have since been deleted, so I’ll reproduce the thread here, starting with the same warning: foul language later on.

The phrase “doesn’t need saying” is a red flag for me when it comes to conversations about communities, events, and codes of conduct.

If it “doesn’t need saying” that certain behaviors are not acceptable, there is no need to not say it, because no one will be offended or feel targeted, right?

For example (here comes that foul language) it probably doesn’t feel necessary to have a “no shitting on the carpet” rule, because who would ever do such a thing? This just “doesn’t need saying,” does it?

But if there was ever one time when someone did shit on the carpet and no one did anything about it, you might start to reconsider. Maybe we do need to be explicit in saying “no shitting on the carpet” for the next event.

What if it wasn’t just one time? What if after your event people were talking about how someone shit on the carpet… they just weren’t talking about it in front of you because your inaction signaled that you were ok with that sort of thing? Might a code of conduct be in order?

Or would it be better to say “I didn’t see the shit on my carpet” or “I couldn’t smell it from where I was” or maybe even “it was just that one time, and the person who did shit on the carpet is an important member of the community”?

What if the idea of a code of conduct feels like a slippery slope? If we tell people they can’t shit on the carpet, what is next? Telling them they can’t shit on the hardwood floors? On the tiles? Telling them they can’t piss on the carpet? Where does it all end???

A community is defined by the behaviors it tolerates. If a community organizer says “this problem isn’t important” that sends a very strong signal – and not a virtuous one. It says “this behavior is ok and I will permit it to continue.”

A community is defined by the behaviors it tolerates. If a community organizer says “this problem doesn’t affect me, so it isn’t a real problem” that sends a strong signal too.

A community is defined by the behaviors it tolerates. If a community organizer says no, this is not ok, this is our code of conduct, and these are things that we simply will not accept, that sends a signal. A virtuous one.

This “virtue signaling” will be heard by the people who have a history of (literally or figuratively) shitting the the carpet, and they’re not going to like it. They might stop participating, and they might make trouble and noise on the way out.

Because the reality is that far too many events in far too many communities have allowed shit on the carpet for far too many years. We’ve just pretended that it’s not a problem, because the people doing the shitting are well-known for other things, and because the people who stepped in the shit generally left in disgust without saying anything. Does it really need saying that you’re not allowed to shit on the carpet? Yes. It does. Your code of conduct is an explicit statement about the behaviors you will tolerate.

You don’t need to be perfect, but being willing to change is a prerequisite to positive change. Admitting that there is a problem is the first step to solving the problem. FFS. /thread

When I wrote that thread in 2021 I was thinking about that HEMA tournament from 2017, where the community event organizers were complicit. Thankfully, the thread was in response to an announcement by the organizers of Data Grillen, DataMinutes, and New Stars of Data posting about their code of conduct. These folks (in this case it was the always incredible William Durkin) know what type of community they want to build, and they were unwilling to back down when a few dudes[8] took umbrage with the news.

Earlier this year, renowned C++ developer, consultant, and speaker Patricia Aas stood up and spoke out when her community continued to welcome an organizer and speaker who was convicted of serious sexual crimes. She made it clear that her community’s milquetoast response was intolerable to her, and she made her voice heard, even though it was likely that this would impact her ability to participate in a community she had helped grow.

Warning: There’s some additional profanity ahead.

I mention this example not because I was personally involved, but because it feels like a concrete canonical example of so many similar stories. There’s some guy. He’s been around forever, and has made serious positive contributions to the community. He’s use these contributions to build a clique, a power base, a center of social gravity and influence that’s about him, not about the community.

When it comes to light that he’s using his power and influence for ends that run contrary to the community’s stated goals and culture his clique stands up for him, often supported by the actions or inactions of those not directly harmed by the guy’s actions.

“Think about all that he’s done for the community,” comes the familiar refrain. “Think about how much good he’s done, and how much we’d lose if not for his contributions.”

Fuck that. Fuck that, fuck him, and fuck his supporters.[9]

Instead, think about how much the community has already lost and will continue to lose because of him. Everyone he has harmed, everyone he has driven away from the community, everyone who has considered joining the community but was repulsed by his behavior and the community’s acceptance of his actions. Think about what each of these people could have contributed.

A community is defined by the behaviors it tolerates. This is why codes of conduct are important.

A community is defined by the behaviors it tolerates. This is why it is important to speak up when you see someone behaving in ways that violate the community’s written or unwritten rules.

A community is defined by the behaviors it tolerates. This is why it’s important to hold the powerful to account, and to hold them to a standard that is at least as high as the one by which the powerless are judged.

A community is defined by the behaviors it tolerates. Your participation in a community is a statement of your acceptance of the behaviors taking place in that community. It doesn’t matter if you weren’t the abuser, if you weren’t directly causing harm, if you weren’t actively shitting on the carpet yourself.

A community is defined by the behaviors it tolerates. Your participation in a community is a statement of your acceptance of the behaviors taking place in that community. If you’re at a party and someone walks in wearing blackface, wearing a white hood, wearing a swastika armband, you get to choose if you leave or if you stay. But if someone wearing a swastika armband joins the party[10] and you do decide to stay because they’re not personally bothering you – congratulations, you chose to attend a Nazi party.

A community is defined by the behaviors it tolerates. What behaviors do you choose to tolerate in your community? Does your community reflect your values or is it time to leave and join/start something better before you get shit on your shoes?

Wow. This ended up much longer than expected. Thank you for staying with me until the end. As is the case with Roche’s Maxim of Data Transformation there’s not really anything new or unique here. I’m saying something you probably already knew, and which was completely obvious once written down – and I took 100 pages to say it. Despite this, I believe it’s important to put in writing, and important to think and talk about, especially these days.

A community is defined by the behaviors it tolerates. Why not find me on Mastodon?


[1] I also haven’t published a blog post since July. The more technical topics I’ve been fermenting aren’t quite ready to be served, and I don’t want the whole month to pass[2] without finishing something.

[2] LOL @ Past Matthew who wrote footnote 1 in August 2021 (and who wrote footnote 2 in December 2021).

[3] Each example is based largely on my personal real-world experience, but deliberately avoids any names or details that would be obvious to people who weren’t already involved. I believe there is a time and a place to “name and shame” but I don’t believe this post is the right place, and I don’t want to encourage any sort of pile-on.

[4] I’m not going to link to the video here, but if you’re motivated you can find it on my personal YouTube channel. It’s the one with the very high view count and with comments disabled.

[5] London Longsword Academy is run by my dear friend David Rawlings, who often reminds us that he is “not straight, but still a great ruler.”

[6] Yes, you can buy one too.

[7] Yes, way back when I started writing this post.

[8]  It’s always dudes, isn’t it? Do better, my dudes

[9] That was the profanity I warned you about. I’m done now. Ok, almost done.

[10] Particularly if they’re personally invited and welcomed by the host of that party.

The Unplanned Career

If you’ve worked in tech for 25 years, you’ve seen some stuff, and you’ve learned a lesson or two. On October 1st, I presented a new session at Data Saturday Atlanta, sharing the story of my unplanned career, and some of the lessons I’ve learned along the way. This was the first time I presented this very personal session; and I’m incredibly grateful for the full crowd that attended, and for their feedback after the session.

My primary goal for the session is to show that you don’t need a computer science degree to build a successful career in tech – and that our industry needs more people from more non-traditional backgrounds.

My secondary goal for the session is to share some of the sharp edges that are typically hidden when people talk about their careers. Everyone wants to share their highlights, but sharing your own pain and failures is harder. This is important, because too often we’re each comparing our own blooper reel against everyone else’s highlights… and nothing good comes from that.

The Data Saturday event was in-person only[1], but I’d had a bunch of people mention they wanted to attend, but couldn’t make it to Atlanta. So…I packed a camera and microphone and recorded the video on my own.

If you weren’t able to attend, please check out the recording, and please let me know what you think!


[1] Please understand that there is no criticism implied here. Organizing a hybrid event is significantly more difficult than organizing an in-person or online-only event, and focusing on in-person community produced wonderful results.

You are not the customer!

Unless you’re building a solution for your exclusive personal use, you are not the customer. If you are not the customer, you need to invest in understanding the customer’s motivations, problems, and goals. The right solution for you may not be the right solution for someone else – even someone you may think of as being “like you” – for reasons that may not be apparent until you look more closely.[1]

This is another post looking at problem domains and solution domains, and it’s inspired by a recent non-technical conversation over brunch[2] with some foodie friends. My wife and I had gotten together with friends who love good food – people who we’ve had over for dinner many times over the years, and from whom we’re always delighted to receive dinner invitations. These are people who know how to cook, and who have invested in their kitchens over the years, so they’re well-equipped to cook what they want.

Imagine my surprise when a friend who has a fabulous combi oven[4] in her kitchen kept talking about how much she loved her new toaster oven that was also an air fryer. Or when another friend who is more than capable of making wonderful meals from scratch waxed poetic about how Thermomix now allows you to use community recipes from any region so she can now make that dumpling recipe she’s been looking at… and about how easy it is to make toast in her June smart oven because it recognizes that she’s put a slice of bread into it and knows how dark she likes her toast…

My initial reaction was to point out how all of these toys were unnecessary, because they already had the real tools they needed to do all these things and more[5], but as the conversation went on I realized I was in a tastier version of a very familiar conversation. This was a conversion about pro and self-service tools, and  about persona-appropriate experiences.

Have you ever been in a conversation when someone suggests that “all you need to do” to solve a problem is to use some code-first tool or service, when all you really want is something lightweight and simple? You probably don’t have an environment set up already, and even if you did the proposed tool don’t solve the problem in the way you want to solve it… even though the tool is capable of solving the problem.

Have you ever built a report that gives its users all the information they need to answer their questions, only to find that your target audience doesn’t like or use the report, and instead keep building their own workarounds?[6]

Have you ever found yourself on the other side of that scenario, where someone has given you a report with all of the numbers, but none of the answers?

These are all variations on the same theme: the importance of persona-appropriate experiences. Delivering capabilities is never enough – you need to deliver capabilities via an experience that works for the people who will use it.

Building an experience people want to use requires a meaningful understanding of those people. What are their backgrounds, their skills, their motivations, their priorities, their preferences… as well as the problems they need to solve. There are lots of ways to build this understanding, and they all start with your acknowledging that you are not the customer, and your willingness to spend time understanding the actual customer’s problems before you start trying to solve them.

I’m confident that a commercial restaurant kitchen would have all of the capabilities you would need to prepare breakfast – and more. I’m similarly confident that you would prefer something smaller, less complex, and more familiar – like your own home kitchen – and that if you were only given a commercial kitchen you would soon start looking for alternatives or workarounds that work better for you.

The next time you’re working to solve someone else’s problems – whether you’re building a BI solution or a software product or service – pause to ask yourself if you’re giving a commercial kitchen to a home cook. While you’re paused, also take a minute to remind yourself that you’re not the customer.


[1] The admonition “you are not the customer” was included in some of the first training materials I read when I became a program manager at Microsoft. It took me a few years to understand why this is so important, but now it’s something I think about almost every day.

[2] This was December 2021, our first restaurant meal with friends since December 2019, right before the omicron wave arrived in the Seattle area. Who knows when we’ll be able to dine out again…

[3] Kind of like me. I’ve been cooking and baking as a primary hobby for over 30 years, and have a wonderfully-equipped home kitchen. It doesn’t have every tool or toy I might want, but it has everything I need, and quite a few specialized tools I might not technically need but which make common-enough tasks easier and less time consuming.

[4] A combi oven is an oven that combines convection and steam, and which allows you to precisely control both the temperature and humidity while you’re baking.  This simplifies baking lots of things, from bread to cheesecake, but they tend to be very expensive. They’ve just recently moved from high-end professional kitchens into high-end home kitchens. I don’t own one, but I definitely want one.

[5] Thankfully I had my mask on as we were waiting for our food to arrive, which made it easier for me to keep my damned mouth shut for just one minute, which is not my forte.

[6] Yes, in Excel.

Understanding the problem domain

If you’re reading a Power BI-focused blog[1] you’re probably someone who builds solutions. As a BI and data practitioner, you may build reports, datasets, dataflows, databases, or any number of technical artifacts that together represent a solution domain. You have a toolset at your disposal, and you invest your valuable time and energy into refining the skills needed to use those tools.

But what if you’re holding the right tools, while using them to implement the wrong solution? This could happen if you’re holding a hammer and building a chair when what’s really needed is a table, but it could also happen if you’re using Power BI to build a solution that deliver what its users need to make their jobs easier.

Action doesn’t equate with value, and time spent solving a problem you don’t meaningfully understand is often time wasted. So how do you, as a Power BI author, meaningfully understand problems in domains like finance, supply chain, HR, or patient care if you lack personal experience in those domains?

Asking good questions is a great start.

If you want to deliver a fix for a problem someone has reported, asking targeted closed-ended questions to narrow down the scope of the problem can be valuable. What is the error message, when did it start happening, what are the steps to reproduce the problem, does it happen all the time, does it happen on other computers, does it happen for other users… that sort of thing.

This type of question is often great if you need to deliver a fix, but what about when you need to deliver a product? What if you need to deliver a Power BI app that will help a group of people be more productive completing a complex set busines processes?[2]

Asking good questions is still a great start, but you need to ask different questions.

While focused, detailed, targeted questions can be very effective for scoping down a tactical problem to deliver a fix, they tend to not be great for understanding a broader problem domain. Ask closed-ended questions when you want to deliver a fix; ask open-ended questions when you want to understand the problem.

What does your current process look like, where are the places where you struggle, what are the triggers that would cause you to begin the process, why do you do it that way, who works with the output you produce, and what do they do with it… that sort of thing.

If you’re used to asking the first sort of question, the second sort may not be obviously useful. What would you do with these answers? How can you act on them?

The short answer is “it’s complicated” and the longer answer is “read The Customer-Driven Playbook by Travis Lowdermilk and Jessica Rich.”

This amazing book presents a “hypothesis progression framework” that includes tools for learning about customers and their problems before building a solution to those problems. This framework is broken down into four phases:

At the risk of oversimplifying 250 pages of expert guidance, the framework looks something like this:

  • Who is my customer, what does she do, what motivates her, and what problems does she have?
  • What is the scope of my customer’s problem, how does it affect her, and what is its impact?
  • How well the concept you’ve come up with to solve to solve the problem actually fit with your customer’s needs, does its value proposition motivate her to learn more, and how will the limitations of the concept reduce its value?
  • How well does the product or feature you’ve built to implement the validated concept actually solve the customer’s problem it was built to solve?

Each of these phases is presented with best practices for asking the right types of questions of the right people in the right way, with guidance for formulating the right questions, asking them in structured experiments so you can better trust the answers you get, and then making sense of what you’ve heard. That sensemaking process is where your deep expertise in the solution domain will help you the most, as you look closely and mindfully at what you you’ve heard and decide how to act… but most of the process is about learning the details and nuances of the problem, not about solving it.

Albert Einstein once said “If I had an hour to solve a problem I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.” Think about that.

In my experience most technical professionals don’t value and appreciate the importance of the problem domain, and instead focus their energies on solutions to problems they don’t fully understand. We can do better, as individuals and as teams and as an industry, and The Customer-Driven Playbook is an excellent place to start. I hope you’ll read it, and I hope you’ll let me know how it changes the way you approach problems and solutions.


[1] Does BI Polar count as a Power BI-focused blog? These days it feels like I’m posting more about ancillary topics and less about Power BI itself.

[2] For that matter, what if you need to deliver a complex commercial software product like Power BI?

Please help make Microsoft Teams more accessible

If you’re in a rush, please skip reading the post and instead vote on these two Microsoft Teams feedback items:

  1. “Please stop blinking” – requesting an option to disable the near-constant blinking of the taskbar button for the Windows app for Teams
  2. “Request User-Level Option to Disable GIF Autoplay” – this one is pretty self-explanatory

Thank you for your votes and comments!

Now on with the post…

I’ve blogged previously about the importance of diversity, including the importance of having a diverse team when building software. I’ve even posted about  specific accessibility challenges with the collaboration tool many of use every day – Microsoft Teams.

And in this context, I am requesting your help.

Last week I shared this quick Twitter poll, and over the course of a day I learned that my challenges with Teams’ default behavior – turning the taskbar button orange and blinking every time there’s activity in the app – are not just mine. Nearly 100 people responded to the poll, and over two thirds of them identified this behavior as a challenge for them as well[1].

For me, this constant flashing is like having someone scream at me all day along. If I’m having a challenging anxiety day, it’s even worse. Judging from the replies on Twitter, I’m not alone in this regard either. And because more and more functionality is being delivered via Teams, it’s not like we can simply close the app to make the blinking stop.

I’ve discovered an undocumented and unsupported hack that appears to solve this problem for some users, but it doesn’t appear to work for everyone. Also, it’s an awful hack that’s about as user-friendly as watching YouTube on your Peloton bike…

If this behavior is a problem for you, please take a few moments to vote up on this feedback item, and to add a personal comment as well. The Teams product team needs to hear from their users to understand what’s important, and this is apparently were they’re listening.

Thank you!


[1] This is a pretty vague interpretation of the poll results, so I’ve included the Twitter poll so you can keep me honest.

 

The Blind Men and the Data Elephant

Are you familiar with the parable of the blind men and the elephant?

elephant-skin-245071_640
Would you have known this was an elephant, just from this picture?

Sometimes it seems to me that the world of business intelligence – and self-service business intelligence in particular – is made up of blind men feeling their way around a elephant made up of technology and people, each of them feeling something different but none of them able to effectively communicate to the others what they are experiencing.

This blog post was inspired by this email, sent by a technical job recruiter:

Data leader recruiter email
What does this email tell you about the role and the company?

More specifically this blog post was inspired by a tweet[1] from Power BI consultant Jeff Weir, in which he shared this recruiter’s email:

2020-01-18-14-16-43-964--msedge

In this conversation Jeff and I each took the role of a blind man, with this data analytics manager position playing the elephant. Jeff and I each reached very different conclusions.

Jeff may have[2] concluded that Power BI as a tool wasn’t ready for the job, or that that this company wasn’t fully committed to doing what it takes to build a successful data culture, including the right training for their Power BI creators and consumers.

I reached a different conclusion, and I the more I read and re-read the recruiter’s email the more I believed that my initial conclusion is correct: this is an organization that is stepping back from solutions to ensure that they’re focused on the right problems. This is an organization that already has tactics, but is willing to admit that those tactics aren’t getting them where they need to go without the right strategy. This is an organization that seems ready to make significant, substantive change.

Why did I reach this conclusion?

The first sentence: “Ultimately Power BI while being a tool they are currently using it is not the only tool they will consider.”[3]

Wow. As an organization they are avoiding the sunk cost fallacy and explicitly stating they’re open to change, even though that change is likely to be disruptive and expensive. Switching BI tools is hard, and it is not a change that is taken lightly. The leaders at this organization are willing to take that hit and make that change, and they’re taking the steps to find the right leader to help them make it… if that leader decides the change is necessary.

The second sentence, with my emphasis added: “Here they are really looking for someone with some strong technical ability, but more so strong leadership and strategy skills.[3]

Wow!  The recruiter is explicitly calling out the organization’s priorities: they need a strategic leader. They need someone to help them define the strategy, and to lead them in its execution. Yes, they need someone with the technical chops to help carry out

The third sentence: “there will be an element of helping there and mentoring the staff members currently in the team.”

Maybe not exactly wow on this one, but it’s clear that the organization knows that they need to build the skills of their current BI team, and they want someone able to help. Something missing here that I would prefer to see[4] is additional information about the size and skill levels of the team today, and what other learning resources the organization makes available.

The third sentence, again: “it is more about getting a grip on the current landscape of the data and what can be done with it, setting a vision and a strategy aligned with product development and then going from there…”

WOW! This sounds like an organization that knows their current path isn’t leading them to success. It sounds like an organization that acknowledges its challenges and is proactively looking for a strategic solution to root causes, not just a band-aid.

But… it also sounds like an organization that needs a Chief Data Officer, not just an Insights and Data Analytics Manager, and based on Jeff’s Twitter comment it sounds like they’re not willing to pay a competitive rate for the less senior position, much less the more senior one. They seem to want parts of a data culture, but don’t  appear willing to invest in what it will actually take to make it a reality

I was originally planning to structure this post around the theme of 1 Corinthians 13:11, but the more I thought about it the more I realized that describing a technical solutions focus as being “childish ways” that you then grow out of really didn’t match up with what I was trying to say.[5] Although to be fair, this post has traveled far afield from what I intended when I started writing, and I’m honestly not certain I ended up making a particularly strong point despite all the words.

Maybe if I’d had more time I could have just said “different people see different things in shared situations because of differences in context, experience, and priorities, and it’s important to take multiple perspectives into consideration when making important decisions.” Maybe not. Brevity has never been my forte.


[1] Please feel encouraged to read the whole thread, as it went in a few different directions that this post doesn’t touch on directly. I also did explicitly ask Jeff’s permission to reference the conversation and image in a blog post… although I doubt either one of us expect it to arrive quite as late as it did.

[2] I qualify my summary of Jeff’s conclusion because I’m only working with the information available to me in the Twitter conversation, and I do not know that this is a complete or accurate summary. I suspect it is at least accurate, but only Jeff can say for sure.

[3] Please pause for a moment to reflect on how difficult it was to type in that sentence without editing it for clarity and grammar.

[4] Yes, I understand that this is an excerpt from one email that shows only the most narrow slice into what is likely a complex environment, and that it is not realistic to expect every aspect of that complexity to be included in three sentences – no matter how long that final sentence might be.

[5] Thanks to everyone who shared their thoughts on Twitter about the wisdom of using a Bible verse in a technical blog post.

Thoughts on community

This post is mainly a story about how community has affected my career, and how it might affect yours as well. The post has been sitting in my drafts for a few months waiting for inspiration to strike. That inspiration came in this recent[0] data culture video where I talked about communities of practice inside enterprise organizations, and the ways that positive behaviors can be promoted and encouraged for these internal communities of practice – because the same patterns often apply to public communities as well.

So let’s talk about community.

No, not that Community. Technical community. Community like this:

hand-1917895_640

I started off my tech career as a Microsoft Certified Trainer (MCT) in 1996. I spent much of the next decade as a trainer, mentor, and consultant, but even though I was learning and growing year after year, the pace of that growth felt slow. I quickly became a medium-size fish in a tiny pond[1] and that was pretty much that. My career growth was limited in part by the company I chose to keep.

To be fair, there was an online[3] MCT community where I would often lurk and occasionally post, but I never took real advantage of it. I didn’t feel confident enough to post often, and for some reason traveling to a conference or other in-person MCT event just didn’t feel like something that was available to me – this was something that other people did, not something I could do.[4]

In late 2004 I started thinking about getting back to more training after a few years focusing on software development and consulting. I decided that the upcoming SQL Server 2005 release would be a great opportunity for making this change. Microsoft had made available to MCTs the preview versions of two “What’s new in SQL Server 2005” courses – one for developers and one for admins – and I was going to get certified to teach these courses as soon as they were available to offer. I’d been working with SQL Server since version 6.5, and much of my consulting work included developing solutions on SQL Server 2000, so this was a logical direction that matched my experience, skills, and interest.

To make a long story slightly less long – and because I’ve shared some of the details while this post was sitting in my drafts – that focus on SQL Server 2005 was my jumping off point to become an active member of the MCT and SQL Server communities. I was still doing many of the same things I’d been doing all along, but now I was doing them where more people could benefit, and where more people could see me doing what I did. And people noticed.

People noticed that I knew what I was talking about on technical topics, but mainly people noticed that I engaged in a constructive and helpful manner. That I gave more than I took.[5]

And this brings us to the concept of visibility from that earlier blog post, and the opportunity that comes from being seen kicking ass – being seen doing the great work you do every day. For me, being actively engaged in the MCT community led to my first job at Microsoft. People who knew me because of my community involvement let me know that there was a job I should apply for, and they put a referral into the internal HR systems to make it more likely I would get called for an interview[6], and the rest is history.

For you, being actively engaged in your community – whether it’s the Power BI community or something else – will likely mean something very similar. The details will be different because the context is different, but adding your voice to the communities you frequent is how you let the community know who you are and what you do.

When you answer questions – and when you ask them too – other members of the community will begin to understand what you do, and how you work. When you write a blog post or record a video, more people will begin to understand how you think, and how you communicate. They’ll learn from you, and they’ll learn about you.

This is good.

As more people learn about who you are and what you do, and as more people begin to see and value your contributions, they’ll start thinking about how awesome it would be if you could contribute more directly to their projects and products. For me this meant being asked more frequently to teach SQL Server and SSIS classes, and an increased volume of inquiries about consulting availability.[7] I had more opportunities for more interesting and better paying work because of my engagement with the community, and it changed my life for the better in many ways.

For you it will look different because the context is different, but you can follow the same pattern. Your contributions to the community organically become your resume[8], your marketing web site, your demo reel. Potential employers and potential clients[9] will have a more complete picture of how you work than a job interview can provide, and that can make all the difference.

Implied in this pattern is the positive nature of your community contributions. If you’re a bully or a gatekeeper or engage in other types of abusive behavior… people notice that too. This can become its own opportunity for improvement, because if you’re more mindful about presenting the side of you that you want people to see, the more likely you are to become that better version of yourself.[10]

Engaging with the community changed my life. It can change yours too.


Interesting side note on timing: I joined Twitter ten years ago this month.

At that time I had just accepted a position on the SQL Server Integration Services  (SSIS) product team, and had asked one of my new colleagues where the SSIS community was centered, and he pointed me there. The rest sort of took care of itself…


[0] Referring to this data culture video as “recent” gives you some insight into how long this post languished in draft form after the introduction was written.

[1] This is kind of like saying “big fish in a small pond” but self-aware enough to realize I’ve never been a large fish on any scale.[2]

[2] I am so sorry, and yet not sorry at all.

[3] Two words: Usenet newsgroups.

[4] I’ve thought about this a lot in the intervening years, and believe that the root cause was probably a combination of my rural, poor, opportunity-sparse upbringing, and my mental health challenges, but I doubt I’ll ever know for sure.

[5] I’m generalizing here, and making some big assumptions based on the available evidence. This is what I think people noticed based on the way that they reacted, but only a handful said so. Of course, they typically said so when offering me work…

[6] This is something I have done a few times over the years myself, and there’s no better feeling than knowing I played some small part in helping Microsoft attract new talent, and in helping a member of the community achieve their career goals.

[7] For me it also meant that I roughly doubled my billing rate over the course of 18 months. I had so many inquiries that I was turning down almost all of them because I didn’t have the bandwidth to say yes, and decided to take advantage of the laws of supply and demand.

[8] This 2016-era post from MVP Brent Ozar presents a much more prescriptive approach to this theme.

[9] And potential employees as well, in the fullness of time.

[10] And let’s be honest – if you’re an insufferable asshole who refuses to change, participating in a community is a great way to let people know, so they can know that you’re someone they should avoid hiring, interviewing, or contracting. This is also good.

Never underestimate the voice of the customer

Most of what I do in my day job involves listening.

A sculpture of men with ears pressed to a brick wall - Image by Couleur from Pixabay
It’s better to put your ear up to the wall than it is to bang your head against it.

Specifically, I spend a lot of time listening to people who use Power BI[1] talk about why they use it, how they use it, and where they struggle along the way. I ask a few questions to get them started, and then I ask a few follow-up questions to help them along as they tell their story – but mainly I listen.

I listen, and then I use what I hear to help make Power BI a better tool for these people and their organizations’ needs.

I listen for patterns and trends, and for a signal to emerge from the noise of hundreds of conversations. When it does, I make sure that the right decision-makers and leaders hear it and understand it, so they can take it into account as they decide where to invest and how to prioritize those investments.[2]

I listen with an informed ear. I spent almost 15 years building software and data solutions, so I understand a lot of the technical and organizational challenges these people face. I spent the next decade or so building data products and services as a program manager at Microsoft, so I understand a lot of the challenges involved in prioritizing and building product features. And perhaps most importantly, I am genuinely interested in listening to and learning from the people with whom I talk. I truly want to hear their stories.

Of course there’s only one of me, and I can’t spend my whole workday listening to people tell their stories… so I’ve helped build a team to listen[3], and it’s making a difference. The next time you see an announcement about new capabilities in Power BI that will improve the lives of large enterprise customers, odds are this team had a hand in making those capabilities a reality.

Why am I telling you all this? This is my personal blog, and I’m not looking for a job, so who cares, right?

You care.

You care because this type of listening is a thing that you can do to make better software. You can do this whether you’re building commercial software or if you’re part of a BI team that needs to build solutions for larger user populations.[4]

You care because letting the people who use your software – or the people you want to use your software – talk about what what’s important to them… will let you know what’s important to them. And if you’re really listening, you can use what you learn to make better decisions and deliver better products and features.

If you’re genuinely interested in the people who use the software you build, you should consider giving this approach a try.


[1] These people tend to be the business and IT owners of Power BI in large enterprise organizations, but they can be just about anyone involved in implementing, adopting, using, or supporting Power BI.

[2] If you’re interested in learning more about the Power BI product team’s planning process, I cannot recommend highly enough this 2019 presentation from Will Thompson.

[3] As part of building that team we all read and/or re-read Lean Customer Development by Cindy Alvarez. If you have not yet read this awesome book, there’s no time like the present.

[4] I honestly don’t know if this type of rigor is appropriate at a smaller scale, because I haven’t done it and haven’t personally seen it done. I suspect that it would be very valuable, but also suspect that there may be lighter-weight options that would provide a better return on investment.

Webcast: Unleashing Your Personal Superpower

Last week I delivered a presentation for the Data Platform Women In Tech‘s Mental Health and Wellness Day event.

The recording for my “Unleashing Your Personal Superpower” session is now online:

I hope you’ll watch the recording[1], but here’s a summary just in case:

  • Growth often results from challenge
  • Mental health issues like anxiety and depression present real challenges that can produce “superpowers” – skills that most people don’t have, and which can grow from the day-to-day experience of living with constant challenge
  • Recognizing and using these “superpowers” isn’t always easy – you need to be honest with yourself and the people around you, which in turn depends on being in a place of trust and safety to do so

In the presentation I mainly use an X-Men metaphor, and suggest that my personal superpowers are:

  1. Fear: Most social interactions[2] are deeply stressful for me, so to compensate I over-prepare and take effective notes for things I need to remember or actions I need to take
  2. Confusion: I don’t really understand how other people’s brains work, or the relationship between my actions and their reactions – to compensate I have developed techniques for effective written and verbal communication to eliminate ambiguity and drive clarity
  3. Chaos: My mind is made of chaos[3], which causes all sorts of challenges – to compensate I have developed a “process reflex” to understand complex problems and implement processes to address or mitigate them

I wrap up the session with a quick mention of the little-known years before Superman joined the Justice League, which he spent as a Kryptonite delivery guy, and absolutely hated his life. Once he found a team where he could use his strengths and not need to always fight to overcome his weaknesses, he was much happier and effective.

In related news, if I could only get these Swedes to return my calls, I’m thinking of forming a new superhero team…


[1] And the rest of the session recordings, because it was a great event.

[2] Think “work meetings” for starters and “work social events” for an absolute horror show.

[3] I have a draft blog post from two years ago that tries to express this, but I doubt I will ever actually finish and publish it…