How to write a good abstract for GroupBy.org

Recently, I’ve been going through a lot of the presentations for GroupBy.org. I’m trying to provide as much feedback as I can, because I think good feedback is hard work. A lot of the existing comments are along the lines of “This looks cool!”, which does not provide much direction. As a presenter myself, I’m a big fan of receiving actionable criticism. It’s the only way I will grow as a presenter.

This post is going to cover some general guidance for making a fantastic abstract. It’s targeted at the GroupBy.org site, but much of the advice is broadly applicable

You should write like you fight

When you edit your abstract, you should be relentless, you should be merciless. Every sentence should dance. Every sentence should sing. Every word owes you rent, and you are here to collect. You, my friend, have neither time nor patience for any freeloaders. If anything does not enhance your message, ditch it. This ain’t a charity, kids.

You should write like your life is on the line.

You should write like you fight. This is not a joke. This is not hyperbole. Because someday, your life, your ability to provide for your family, will depend on your ability to communicate clearly. Someday one of these things will happen to you:

  1. Your company will get bought, and you will have to explain “what do you do around here?”
  2. You will be out of a job and need to write an amazing cover letter
  3. You will need to summarize what you’ve done this year and why you deserve that raise
  4. Something will go horribly wrong at work, and it will be your job to write the retrospective
  5. Your coworker will cross a line, and you will need to stand up for yourself in a polite, professional way.

Are you ready for that day? If you are writing half-hearted abstracts today, you are probably half-hearted emails and cover letters. If you aren’t writing like your life it on the line today, then you aren’t preparing for when it actually is. We practice when the stakes are low, so we are ready for the day that they aren’t.

What martial arts teaches us about good writing

I do martial arts every week. Not because I’m a particularly aggressive or athletic person. I do it because it helped me lose weight and because it keeps me healthy. I lost 70lbs in large part to martial arts, so I think I owe it some respect and deference. In a very real sense, it has changed my life forever.

In my school, everything we do is preparing us for a fight that hopefully never happens. The goal isn’t to get into these scenarios, but to be prepared should the worst ever happens. Learning how to give a solid punch doesn’t make me cocky and reckless, it makes me humble and cautious. This is because I know how quickly a fight can fall apart; I know how much a punch to the face hurts.

In martial arts, specifically, we practice moves hundreds and thousands of times. We refine and we focus until it’s reflex. Because trust me, when you are scared and under pressure, all of your form goes to crap. When I participated in my only tournament, I got hit really hard on the chin. Hard enough that my ears were ringing and they had to check if I was okay. It was because I was scared. It was because under pressure, I forgot all of my form. It was because good form wasn’t reflexive for me.

Good form should be reflexive

We practice things over and over, when the stakes are low, so we don’t have to think when the stakes are deadly. I can’t say this enough times. This is how lives are saved.

When you write an abstract, you are practicing for when it really matters. In martial arts, if you don’t practice keeping your fists up when there is no danger, you’ll get sucker punched when there is. Trust me, I know from experience.

Good form comes from intentional, relentless practice. Edit, edit, edit. Please, for your own sake.

How to write a great abstract

So what makes a good abstract? What makes good form? I think there are a number of fundamental things that people regularly miss.

Dear presenter, why do I care?

Your first sentence should tell me why I care. Why do I want to attend your presentation? Don’t assume that just because you think it’s important that I agree with you. You have to persuade me. You have to explicitly communicate how it benefits me.

Your whole abstract should hang on this premise. If a sentence does not in some way help answer this question, cut it. If it isn’t abundantly clear, rework it.

So how do I communicate this? There are a number of ways:

  • Give them a headache. Tell them what problems they have.
  • Give them a solution. Tell them how this talk will solve those problems.
  • Tell them how they will grow. People want an immediate payoff. Explain how they will be better for watching your presentation.
  • Don’t assume it’s important. Show me why your topic is important.

If you can answer why people should care, you will be a step ahead.

Figure out your audience. Narrow it.

Who is your audience? Who cares about your topic?

Did you figure it out? Great, now narrow it. Audience statements are often too broad to begin with. Ask yourself, “Who would be really excited to watch your presentation?”. Make them your target audience. Don’t feel that you have to cater to everyone.

Curiosity is almost a terrible audience goal. Find people who have a need and fill it.

Additionally, who isn’t your audience? There should be people who you don’t want to attend your presentation. This concept is often more helpful than knowing your target audience. Don’t be afraid to exclude people. A broader target leads to a muddled message.

In the agile world, there is idea of personas. Use them. Let’s say that Susan is a fictional person who really wants to watch your presentation.

  1. Who is she?
  2. Why is she super pumped about your presentation?
  3. How do you communicate this to her, efficiently?
  4. What things does she already know? What new things is she going to learn?
  5. Who isn’t she?

If you can paint a vivid picture of this person, your abstract will be better for it. Even better, your presentation will improve too.

Get your level right

Relating to the item above, figure out what level your presentation is. Is it for total newbs? Then make sure you have a lot of introductory content. Be very clear about what you are assuming they already know. Write it out on a piece of paper. Don’t assume. Don’t assume.

Is this more of a 300-level practical presentation? Well then “curiosity” had better be nowhere in your target audience. Make sure you elaborate the detailed content that you will cover. Make it clear that they will take something practical away from this.

I’ve seen a number of abstracts that try to split the difference and just muddy the waters. Pick an audience and stick with it. Decisions aren’t decisions until you give something up. You have to make a choice. Who are you targeting? Be clear about this and your viewers will thank you for it.

Put the bottom line up front

Get to the point right away. Explain your general thesis in the first couple of sentences. Explain why the reader cares in the first few sentences. You can include all the detail later on. This is a matter of being respectful to your reader, who is a busy person. Don’t waste their time.

In journalism, this is called inverted pyramid style. The professionals use this method. You should too.

To summarize, If you can’t sell me in a tweet, you’ve lost me as a reader. Keep it tight. You can add the details later.

Make your prose scannable

People don’t read the internet like a book. People scan. They’ve done eyetracking studies where they literally watch people’s eye movement. Keep your prose tight and short. Use technical writing techniques.

  1. Keep your sentences short. Break up run-on sentences. Avoid sentences more than 15 words, like the plague.
  2. Use bullet lists, where possible. These are GREAT for scanning text.
  3. Use multiple paragraphs. You have the space, use multiple paragraphs for multiple purposes.
  4. Have a structure. I personally like the 3 paragraph structure of
    1. “Why do I care?”
    2. “What will we cover?”
    3. “What will I take away from this?”
  5. Use action verbs. Avoid is, was, became, etc.
  6. Use a little formatting. Unlike most events, you have full control of your formatting. Use it.

If you can’t see the flow of your text from 10 feet away, reconsider how your have structured your text. Blobs don’t scan well.

I got sucker-punched via email this week, but I was ready

So at the beginning of this week, I got thrown under the bus. In large part, it was my own fault. I had, in fact, missed deadlines that delayed a colleague’s work. That part was true.

The part that was the sucker punch was that he contradicted with an earlier conversation. When the author and I spoke, it sounded like his deliverables were being blocked by time constraints as well. I was late, but I offered to rush Friday morning so he could get his weekend part done on time. He indicated that there were other factors holding things up, that there was no point in rushing.

So now I’m in a situation where I thought everything was fine, but instead my boss is getting a surprise email, Monday morning. An email indicating that the project is being delayed a week, solely because of me. One hour before the manager’s meeting. Ugh.

So my boss sends me a one sentence email. “Did we know about this?”

The advantage of being ready

So now I have half an hour to lay out a timeline of events, and give my side of things. And because I practice my writing, I was able to write this:

Even with a heavy blur and shrink you can see the structure. It’s got the bottom line up front. Everything you really need to know is in the first 4 sentences.

Again, I want to be clear. It was my fault for missing deadlines. It was my fault for not communicating that to my boss. I’m not some victim here.

But I did receive a surprise, and I was ready for it. Because I practice my form daily. And you should too. Write good abstracts. Write good emails. Practice, practice, practice.

Keep your fists up folks, it’ll guard your chin. Otherwise it’ll hurt like hell, and your ears will be ringing. I know from personal experience.

 Summary

Write your abstracts like your life depends on communicating clearly and efficiently. Determine a targeted audience and tell them why they should care. Keep it tight, keep it scannable. Edit, edit, edit. Practice, practice, practice.

Good luck!

Things I like about the changes to PASS Summit submission process

So, PASS Summit is making changes to how the curriculum is managed. There’s been some conversation about these changes and whether they are good are not. I thought I would enter the conversation and add my thoughts.

Before that though, I want to thank the board for the work that they do and working on these changes. I think that being on the board is difficult work. It seems to me that no matter what changes they make, there will be criticism. Often, the criticism is the loudest of all the commentary. Sure, I agree there is more they could do to involve community feedback; however, the fact that they have a survey and community townhall is evidence that they are listening and value our opinion.

So, I’m going to try to focus on the positives I see, instead of criticizing. Overall, I think these changes are a good move. I wrote last PASS that I think the data platform is broadening. And while I think that the idea of a data profession presents challenges, I think it’s reflective of trends going on:

  1. The devops-ification of the data platform
  2. A broadening of the surface area of  “data platform”
  3. Virtualization, Moore’s law and Cloud

These are all forces that are causing more technologies to fall under a broader and broader grouping. They are also causing a blurring what used to be more distinct roles. And as a result, PASS Summit is responding to that change.

Having a broader, more nuanced set of topics requires more control. If  you look at companies like Pluralsight or Lynda, they have people whose job is to manage a curriculum. And part of that job is aggressively targeting specific topics to avoid gaps.  It also means doing market analysis to see what education people want and need, not just what people want to present on. These goals makes sense for Summit too.

Part of targeting specific topics, is acknowledging that there are top-level experts in those content areas. If you want something on DAX, reach out to Marco Russo. If you want something on U-SQL, reach out to Michael Rys. Dealing with the changes in the platform require a different approach. In some ways, it would be a shame to to not try to get access to the top leaders of specific topic areas.

I admit that it’s reasonable to worry about Summit becoming some sort of elite club of presenters. Part of the solution is transparency, transparency, transparency. The other part of the solution is answering the question “How do I present at Summit?”

There’s a joke about industries with no entry level jobs. How do those types of industries exist? How do they not just die out? But I don’t think entry level is the issue here. There are tons of opportunities to speak at user groups. SQL Saturdays are a clear stepping stone after that. The next step is…less clear. Do you blog? Do you speak at virtual user groups? Do you go to 20 SQL Saturdays a year?

No seriously, I don’t know. Can someone tell me? You wanna know why I started presenting at virtual user groups? Because I asked someone how to get to Summit, and they suggested that as a stepping stone. I think it’s important to give “new” speakers like me a path for reaching the top.

It’s straightforward to get your white belt in speaking, even your green belt. But it’s a lot less clear how to get your brown or black belt. That’s an area I’d love to see more people talk about. A good example is Brent Ozar’s Career Internals.

That being said, I’m happy with the minimum bar of experience for applying. The current minimum is 3 presentations. I honestly think it could be 5 and it’d be fine. This is a good balance between requiring a base level, while not discouraging new speakers. Three is so low, you could trip over it. That’s two user groups and a SQL Saturday. I can promise you that when I had given only 3 presentations, I was in no way qualified to present to PASS.

One final thing I’m really happy about is that they are going to give guidance on the content they want, and they are going to ask people to specify a general content area they are focusing. I think this is a smart move. The current system just wasn’t sustainable.

The old system seemed to encourage just throwing as much stuff against the wall as you could and see if anything stuck. I don’t think we want to incentivize people submitting more than 3-4 sessions. It puts an undue burden on the people reviewing the submissions. I honestly think it’d be fine to have an explicit limit on submissions, but I expect that would make some waves.

Overall, I think they are making moves in the right direction and I like it.

Slides for PASS BI Virtual Group

Today I’m going to be presenting on DAX for the PASS BI Virtual Group. The focus is on all the hard mental concepts of DAX. If I could sum up the talk in one picture, it would be this:

That red area is where I banged my head when learning DAX. The learning curve shoots up wildly in the middle of learning the technology, instead of a slow gentle curve. This presentation covers the middle parts that are key to understanding DAX.

Here are the slides for the presentation: Introduction-to-DAX-2017-03-30

Here is the recording:


Here is the talk by Marco Russo I mentioned in my presentation: Optimizing Multi-Billion Row Tables in Tabular

The challenge with being a “data professional”

During PASS Summit, I wrote a post about the broadening data platform. I talked about the term Data Professional, and how I feel how it describes the changes going on the in SQL space. Here’s the problem: It’s a terrible guide. It’s a great description, it’s a wonderful attitude, it’s an ambitious goal; but it’s a terrible guide.

Being a data professional means being a jack of all trades. It means being a renaissance man (or woman). It’s means a career plan that looks like this:

And then you end up with Buck Woody telling you you are trying to do too much, cut it out kid.


So that’s the problem. Sometimes broadening your horizons is really a mask for being scared of commitment. Sometimes it’s a mask for being scared of an ever-changing future. You have to bet on a horse, you can’t bet on them all. Being a data “professional” is great in theory, but in practice it turns into majoring in the “universe” (see XKCD).

Major in the Universe

I’m not saying don’t learn Docker or Powershell. If you don’t learn those things, Kevin Feasel will warn you about becoming homeless. And who wants that.

What I am saying is that if someone asks you “Where do you want to be in 3 years?”, “everywhere” is not an answer. If someone asks you “What are you going to learn this week?”, “everything” is not an answer. So yes, generalize your skill set, who knows what you’ll be doing in 5 years. But right now you need a focus, it’s the only way to become an expert at anything.

Ultimately, I think it comes down to two quotes:

If you don’t know where you are going, any road will get you there.

-George Harrison, paraphrasing Lewis Carrol

and

Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler,

[…..]

I took the one less traveled by,
And that has made all the difference.
-Robert Frost, The Road Not Taken

For me, I’m looking into Data Science. The problem is I’m not sure what Data science actually is! What I know for sure is it involves R and pirate jokes. We’ll cover that in next week’s blog post.

PASS Summit–Quick thoughts

Last week I was at PASS Summit and it was an incredible time. I went in feeling deflated about my career and came out excited and energized. It was wonderful seeing the potential of the Microsoft Data Platform and where things are going. It was also great to meet a lot of people and hang out with my SQL Saturday friends.

Overall, there was one theme I saw over and over again. You could call it technological diversity. You could call it fragmentation. You could call it accelerating growth. What it really comes down to is more technologies, more platforms and more things to learn.

You could see it in the keynotes multiple times. SQL Server is now on Linux. Polybase connects to Mongo. NoSQL support is available via DocumentDB. PASS is rebranding and focusing on the Microsoft Data Platform, not just SQL Server. Clearly the surface area of a data professional is expanding.

I like that term a lot, Data Professional. At first, it sounds meaningless and generic. But it’s one of the few things that aptly describes what I do. Because being able to be just a DBA or a database developer is going to get rarer. Now you need to know a bit about Azure. Now you need to know a bit about Excel and PowerPivot. Now you need know the difference between Pokemon and Big Data.

All of this has inspired me to work on my first professional development session; Drinking From the Firehose: a Guide to Keeping Up With Technology. I’ve submitted it to SQL Saturday Cleveland. I also might get to present it for the Professional Development VC. I’m hoping if I can put some of these concepts into words, I can get a better handle on them myself.

Power BI User Group – Getting Started and Keeping Up

Here are the slides from the presentation.

Overall I think the first meeting went fairly well! We had a delay because the the president was in town, which I certainly wasn’t expecting. Still, we were able to get everything covered in a timely fashion.

I’m excited for when we put out the survey because I have no idea what kind of content people are looking for. I expect I’ll be doing  a number of the presentations going forward.

Starting a todo app: part 2, technologies

Last week, I wrote about my desire to make a todo app. this week, I’m going to talk about the technologies I’m using and what I think so far.

Currently, I’m building this app on the following technologies:

  • C#
  • Asp.net
  • Azure
  • DocumentDB
  • Xamarin

Notice any pattern? I am a giant Microsoft shill. My career focuses on Microsoft SQL server and Power BI, so It’s in my best interest to learn surrounding technologies.

Of course Microsoft keeps doing weird things like including Git in Visual Studio, or putting SQL Server on Linux. So the surrounding technologies get a big broader these days.

C#

I really like C#, but I don’t feel like I “get it” just yet. I think it’s clean and understandable as a language, but it feels like 80% of the language is learning about random libraries and classes. And if you don’t know that Microsoft.Azure.Client.Document.UriFactory exists and you need it, then you are out of luck. It just doesn’t feel as discoverable as it should.

In contrast, when I worked with Python, I felt like everything was laid out in orderly modules and it was easy to fit it all in your head. When they said the batteries were included, I felt like you could count all the batteries.

Maybe the work I did with python was just simpler, maybe C# has a richer set of standard libraries. I’m really not sure. I just wish I knew when C# would really click for me.

Asp.net

I’m really excited that they combined Web Forms, MVC and WebAPI into one project type. You can even gracefully add them after the fact. However, your Global.asax.cs may look like this as a result.

image

I can’t say I have a good idea when to choose between one or the other within a project. It seems like 3 very different modes of working and routing.

Azure

Azure is to today what virtualization was 5 years ago. The cloud is just going to keep getting bigger and bigger and bigger. If you aren’t learning about it now, you are going to be very remiss about it 5 years from now.

Unfortunately most of us don’t have a need for cloud hosting. You probably don’t have a need for your own personal Azure Active Directory or Hadoop Cluster. So a lot of times, that means doing projects and labs to learn it preemptively. If you are waiting until it comes up at work, it’s going to be too late.

DocumentDB

DocumentDB is… interesting. Brent Ozar mentioned that he is using NoSQL for a new project. He picked Amazon DynamoDB over DocumentDB. I’m picking DocumentDB as a way to learn Azure.

So, why go the NoSQL route? Partly it’s something new to learn, but there are a couple of advantages. I think Document databases when you want to store lists of things or hierarchical data. In my app, I have lists for times of day, task categories, and tools/contexts. I want to be able to do filtering on these things, which can be clunky in SQL.

Things I like

Some other things I like so far are the dynamic schema, dynamic serialization, and TTL. Normally I appreciate have a well-defined structure to my data. However, this is a design that’s constantly evolving and changing. It’s hard to plan it up front. With Document DB, I can add a field to my model class in C#, set a good default, and that’s it. Now I have a due date field

The other thing I like so far is the TTL feature. I can mark completed tasks with a ttl of a week. Then, if I don’t touch them for  a week, they will self-destruct. That is a really cool feature.

Things I don’t like

One of my big pet peeves with DocumentDB is that collections are billing containers not logical containers. This to me just seems silly. If I want to have different types of objects, such as summary data, I have to store them all in the same place or pay 2-4x as much. That approach feels really messy.

Another thing that’s an issues is case sensitivity.  Because it’s a dynamic schema, if I get a column name wrong, it won’t tell me I screwed up. So I have to remember if my columns start with a capital or not. Also, if I do a contains I have to get the case right for that as well. This is more of a mindset shift than an actual issue with Document DB.

Finally, because it’s JSON there isn’t a date standard. C# does a great job of serializing and deserializing things. However, if I want to store the dates in a human writable way, I have to find another option. For all of my pure dates I’ve been using an integer for now. So September 11th would be 20160911. It requires an extra step to convert or add days to a date, but at least it’s easy to edit. Additionally, because it’s an int, it allows for range filtering.

Xamarin

Xamarin technology is pretty exciting. I absolutely love the idea of being able to write C# and deploy it to a bunch of platforms. It’s especially exciting because my phone is a great place to run a todo app.

That being said, if understanding C# is difficult, then understanding C# that’s a thin wrapper on Java is even worse. I am finding the learning curve on Xamarin to be a bit difficult.

Starting a personal todo app

Todo apps and gamificiation

Todo apps have been done to death. If you go on Google Play, there’s at least 200 of them. There’s even a website that uses todo app tutorials to compare Javascript frameworks.

Still, I’m a huge fan of David Allen and Getting Things Done. I love the idea of tracking all your “open loops” and the next action on everything. I love the idea of context aware lists that take into account location, time and energy.

I’m also a huge fan of gamifying your life. If video game developers can use psychological tricks to get me to play more video games, why can’t I use the same concepts to get me to be healthy and accomplish more.

A great example of this is Beeminder. It’s this really cool application where you set a goal and track the goal on a daily basis, sometimes automatically. If you don’t meet it, they take your money, and then restart with higher stakes. I love it. If there was a single startup idea I wish I had thought of, this would be it.

The problem with Beeminder is you either need to pick just a few simple goals, or you need to guarantee you have an even workload. If your day-to-day has a lot of ups and downs, it can be stressful.

Finally, I like the idea of externalizing my executive function. I seem to run into the problem of having to many things I want do to, have trouble choosing, and do none as a result. It’s very frustrating. If I can outsource that analysis paralysis, I think I would get more done.

The idea for the app

This is actually the second time I’ve tried to make a todo app. The first time had more of a gamification feel and I called it EugeneQuest. I figured if I was going to be paying someone to motivate me to do things, why not pay myself. It worked out decently well, but I mostly broke my addiction to Magic The Gathering by accident.

Despite how that went, it’s still really important to me to have personal projects. I think personal projects are the best way to learn and I’m desperate to learn C# and Azure. So I’m trying again, but focusing more on filtering tasks by time and energy. So far it seems promising.

Next week I’ll talk about the technology I’m using and what I’ve learned so far.