Dec 15, 2020
Conor Cunningham is a Microsoft Architect and he knows a great deal about data, storage, and everything Microsoft. He and Rob go way back and were even roommates for a couple of years during Rob's Microsoft days. There's quite a bit of history between Rob, Tom, and Conor. A history that fosters an insightful discussion and a little bit of busting chops! We discuss quite a bit including:
Episode Timeline:
Episode Transcript:
Rob Collie (00:00:00):
Welcome friends to another episode of Raw Data. Today's guest is
Conor Cunningham, thee Conor Cunningham. Some people in the SQL
community simply refer to him as Conor. Conor is an architect at
Microsoft on the Data Platform that spans a lot of ground as you'll
see a during the podcast. He's long been involved with SQL server.
He's up to his eyeballs in everything Azure-related that's not why
I know him. Conor and I met as friends at Microsoft when we were
both youngsters, we had both just shown up out there and we
actually ended up, the two of us plus two other guys we ended up
renting a house together for like a year and a half. It was a very
interesting time in our lives. So as you might expect, this
conversation is a blend of the personal and the professional. I
think you'd expect nothing less of us at this point.
Rob Collie (00:00:50):
We talk a lot about some of my favorite topics, things like the
evolution of storage from purely rectangular to curly and how that
interacts with the worlds of data warehousing, and how it interacts
with our world of analytics. We talk about presentation styles and
authenticity. We talk about a lot of things. He's delightfully
nerdy, and he explained to us how his SQL architecture sort of
background influences the layout and the design and how he stores
things in his kitchen, which was awesome. But he is a really
interesting guy, a funny guy, a nice guy, really a great friend and
I really enjoyed this. So let's get after it.
Announcer (00:01:34):
Ladies and gentlemen, may I have your attention please?
Announcer (00:01:38):
This is the Raw Data By P3 Podcast with your host Rob Collie and
your co-host Thomas LaRock. Find out what the experts at P3 can do
for your business, go to powerpivotpro.com. Raw Data By P3 is data
with a human element.
Rob Collie (00:01:57):
Welcome to the show. Conor Cunningham, how you doing, man?
Conor Cunningham (00:02:01):
Pretty good, Rob. How are you today?
Rob Collie (00:02:03):
Oh, fantastic. You know, it's been too long. We need to invent
things like this, like podcast really the podcast, the real purpose
of it is it is a forcing function for talking to old friends.
That's what we're doing here, maybe not 100%, but it seems to be
working.
Conor Cunningham (00:02:17):
I like it. I like it.
Rob Collie (00:02:19):
Yeah. Unlike many of our guests, you and Tom already know each
other.
Conor Cunningham (00:02:25):
Yep.
Rob Collie (00:02:25):
This is also usually the vehicle by which I introduced Tom to all
kinds of people that you know all kinds of weirdos that he doesn't
know. But today we have a weirdo that he does know. And we're all
weirdos here so as you know, we're not picking on you particularly.
But I think there was a moment years ago where I was talking to Tom
and I said something about having lived with Conor and Scott and
whatever. Anyway he goes, "Whoa, whoa, whoa, whoa, wait, wait,
wait, wait, wait. Conor-Conor Cunningham? I'm like, "Yeah." And
he's like, "You know Conor Cunningham?" And I'm like, "Yes, yes. I
know Conor Cunningham." Tom's voice took on this like hallowed
tone. I think honestly that's when Tom really decided that he liked
me was that I knew Conor.
Conor Cunningham (00:03:13):
I'm glad I was your in.
Thomas LaRock (00:03:15):
No, it gave you legitimacy is what it did.
Rob Collie (00:03:18):
Yeah. I know him that doesn't mean that-
Conor Cunningham (00:03:21):
It's good enough, I guess.
Rob Collie (00:03:24):
... Conor would Knight me. I thought that was hilarious because I
had no idea really. I didn't know that the Conor that I knew was
somehow like a celebrity in the SQL space, but it makes sense. You
know, I just didn't know.
Conor Cunningham (00:03:41):
I've been pretty lucky that people kind of all know my name now
since I have been doing keynotes for my boss, Rohan. We have this
thing called the Bob and Conor Show, we do it pass every year. And
so it's rare that you get known by just your name, your first name.
And I guess I've been lucky in the sense that at the right time I
was able to get an in front of thousands and thousands of people.
And now it's just thee Conor. I don't necessarily let it get to my
head it's only in a very specific community after that I'm not
really worth anything, but I think within that group, they seem to
like me.
Rob Collie (00:04:12):
Yeah. You're like Alice Cooper, you go on stage and then you're
thee Conor. But when you walk off stage, you put your pants on like
everybody else, one leg at a time, you know?
Conor Cunningham (00:04:23):
Probably. Yeah, if I were wearing pants during this pandemic.
Rob Collie (00:04:25):
Just to know yeah, I know. I think I'm actually wearing pajamas
right now. So I don't know if that qualifies as pants, but it's a
good COVID day for that. So when people ask you what you do? What's
your job at Microsoft? What do you tell them these days?
Conor Cunningham (00:04:39):
It's a little odd, my title is architect, but that means different
things to different people. And what you think it means is only
maybe 10% of what my job actually is. So architect at Microsoft
means different things in different parts of the company. It's
maybe a little bit of a glory title, but really the way to think
about it is you're a senior engineer you're respected for what you
do. You often are given these amorphous problems that don't really
have solutions and in that sense, it's kind of what an architect
does. I'm not really drawing like class diagrams or anything about
how you put software together, but I am often trying to make sure
that the whole picture of what we build for SQL or any of the other
data offerings that I work on works together for the customer. So
that often can be different things like when GDPR came in, I had to
go figure out how do you get GDPR, the European privacy rule to
work across all of our products so that we didn't hopefully get
sued by the EU?
Conor Cunningham (00:05:39):
And that's not probably a typical architect task but that's the
kind of thing that would be normal for me. So I work on getting
large companies to adopt our platform and to sort of solve all the
issues that come up with that. Sometimes technical, sometimes
training, sometimes legal, sometimes whatever. And usually it's
like a joker in a deck of cards so you just be... You're throwing
these weird problems and then you kind of get to go choose your own
adventure and hopefully solve them. So it's a variety of different
things and on any given day, I like to think of it as you don't
really know what the day is going to be, but there's probably going
to be a bunch of fun problems. And then you just have to kind of
keep up because the pace is relentless.
Rob Collie (00:06:23):
Yeah. Well, I do remember that about Microsoft for sure. It's
actually one of the things that I, in hindsight, I've credited with
a lot of my development. I mean, really most of my development came
at Microsoft really, but the pace of it, the number of decision
that you're forced to make per day that are going to stick, these
are decisions that are going to impact the software. And some days
you're making easily mid-double digit decisions about the products.
It's crazy, it's a high-pace of decisions with enormous impact,
potentially enormous act anyway. And so you've really got to be on
your game and it really rewires your brain in some ways that I
never really anticipated.
Conor Cunningham (00:07:05):
You have to get in their head space to do it and so one of the
challenges that I face is when I get done with work, I have to
figure out how to turn the brain off in order to go back to doing
normal human things like making dinner or whatever. You typically
need to drive home and during the pandemic, you don't really get to
leave the house, right? So you end up needing just to stop and give
it five or 10 minutes to "drive home" so that you can just let
yourself unwind a little bit and then become hopefully normal human
Conor to be able to go watch football or whatever it is that you
want to do that's for fun.
Rob Collie (00:07:41):
I'm envisioning you like cooking dinner and going all like Rain Man
lining up all the Tater tots on the tray.
Conor Cunningham (00:07:49):
I will admit that I have taken every single thing out of my kitchen
and organized it by function.
Rob Collie (00:07:56):
I mean, you've got to be able to store and retrieve those utensils
now don't you? And you would not want to be inefficient about
that.
Conor Cunningham (00:08:06):
Nope. I have too many colanders, so I got rid of some of the
colanders and everything is partitioned by serving, baking, et
cetera. I had so much fun doing this. It was too many years without
doing it and now that I've done it, I am so happy that my kitchen
is ordered.
Rob Collie (00:08:24):
You know it's all indexed, you know.
Conor Cunningham (00:08:27):
Pretty much.
Rob Collie (00:08:28):
Do you have failover clusters? Do you have a backup kitchen?
Conor Cunningham (00:08:32):
I have a second pantry.
Rob Collie (00:08:34):
Oh.
Conor Cunningham (00:08:35):
The first pantry's a little small so I have this room in my house
it's not quite big enough to be a room it's like where you'd put a
second fridge, I guess, but I don't. I have a wine fridge in there,
but it was just big enough to kind of walk in. Originally, I tried
to put like a treadmill in there but it was just too big. So I made
it a second pantry and now it's like a big walk in pantry and it
actually works out pretty well.
Rob Collie (00:08:57):
So you've got an onboard cash pantry?
Conor Cunningham (00:08:59):
Yeah.
Rob Collie (00:09:00):
And then sort of a secondary, more offsite type of... Yeah, I
understand I get you.
Conor Cunningham (00:09:04):
Level two cash for the pantry definitely.
Rob Collie (00:09:06):
Mm-hmm (affirmative). Yep. It's just basic, it's pretty elementary
really when you get down to it.
Conor Cunningham (00:09:11):
It took me a few years to figure out that was the right plan, but
now that have settled on it, I'm extremely happy.
Rob Collie (00:09:16):
I can totally see you getting into that. We should do like an MTV
Cribs type episode where you talk about your kitchen and check us
out, man, over here. All right. Well, until we get the budget for
that, we're just going to continue with the podcast. So when you
and I first met, you were working on Jolt, the old, a DB driver for
the jet engine, that powered access. And then as the years went by,
and I'm sure there's some interesting things to talk about with
Jet. I just don't know what they are, so we'll have to circle back.
But one of the number one things I want to talk to you about is
when I knew you at Microsoft, it was basically Pre-Hadoop. There's
pre-Hadoop and there's post-Hadoop. And there's two different eras
in our professional career when it comes to organized storage.
Rob Collie (00:10:05):
And actually we have talked about this on a previous podcast about
how Microsoft's sort of halfway anticipated this move to
semi-structured storage. In the first iteration completely I think
completely got the implementation wrong, which was XML blob storage
in SQL. You know, it was anticipating a trend that data wasn't
going to be just rectangles anymore. It was going to be curly as a
certain architect referred to it. So when you say architect I think
about these old white papers that I used to read with a certain
degree of ceremony you would read these because they were hallowed,
you know. Then you look back years later and kind of chuckle at how
off they kind of were, even though they were at the same time
pretty infused with foresight.
Rob Collie (00:10:55):
So I would really like to talk about just in general, this
transition from this rigorously Roman column model, which still
obviously is very, very common and useful today. It's not gone at
all, but there's all this other stuff that's happened since then.
And I think you've now been dragged into that. You've been dragged
out into those deep waters as well. Like you're in the middle of
all that too, aren't you?
Conor Cunningham (00:11:23):
Yeah. I work across all of the Azure Data offerings that we have
both SQL server on-premises and also our cloud offerings, including
the recently released Synapse Analytics platform. And that works
over data in a logical data lake and it can be whatever format you
want. It could be CSV files, it could be XML files. It could be
whatever, parquet and that lets you kind of query over data. Where
the structure isn't necessarily forced on you by a database and its
schema, it's something that you tell the database what that
structure is and then have it interface with it sort of
indirectly.
Rob Collie (00:12:01):
Yeah. So in terms of a personal journey, I kind of remember you as
a SQL snob. There was a purity to the SQL and a purity to
everything. When I say SQLs now let's say so lovingly, but I've
never got a chance to talk to you about like that was a real
expansion of the world and the fact that you're involved in all
sides of it now, what was that journey like for you sort of opening
up to this new stuff? Like in the beginning did it seem kind of,
ah, this will never work.
Conor Cunningham (00:12:34):
You know, when I was younger I would probably have said that,
right? That doesn't solve all the problems that you want and you
guys are crazy, leave me alone. As I've gotten a little older, I've
had to just really catch myself the first time someone says a new
idea. I try really hard just to bite my tongue and listen for a
little bit more longer because there's usually a kernel of truth in
the crazy new idea. And if you let yourself sort of sit there and
listen to it and stew over it for a little while you figure out
what is interesting about it. So the general trend about how we've
got to the scale out, no SQL, maybe not necessarily strict schema
view of the world is partially based on just the explosion of the
amount of data that's out there now.
Conor Cunningham (00:13:23):
And at some basic level you can scale up a computer to a certain
size and then all of a sudden when the problem is too big for
whatever the biggest computer is that you can buy, you need a
different approach. And the world got to the point where that much
data exists and we actually do want to process that. And once you
start scaling out, then you don't necessarily need to have a bunch
of really expensive computers to do that. You just need a whole
bunch of computers with the right scale out algorithms. And that
world gives you a lot of flexibility. It's also a little bit more
complicated. The core algorithms, the area where I play to go do
architect Conor stuff are the same when you get down to the bottom
of it. It's just a question of how do you make sure that you have a
cohesive technical solution in whatever it is you're trying to sell
to the customer so that you can hopefully solve their business
problem.
Conor Cunningham (00:14:09):
And a lot of the world that I play with these days is some
combination of scale up and scale out or structured data and
semi-structured data, depending on where people are focusing and
figuring out how do we apply the right algorithms generically
across all of those. And it's a fun problem space, but it's also a
very big world. It used to be very simple inside the SQL Org. We
would just go build more SQL features and life is grand. And we
still do a lot of that and that's still a very valuable business
for us. But it also is an area where you have to be open to go meet
the data where it is because there's so much of it now, just
loading it into a database can take too long.
Conor Cunningham (00:14:48):
So you need to think differently about how to solve problems like
that and that gives you opportunities to kind of rethink well, what
could you do? What is a database? Well, a database is just a thing
that answers questions for you and then maybe provides you
transactions and maybe does this and that. If you don't need all of
those, then you can build a "database that maybe works differently"
and solves problems better, cheaper, faster, whatever it is that
you need to really meet customers where they are today.
Rob Collie (00:15:13):
Yeah. It's the volume of data is exploding, but it's not just that
it's also right the shape of it isn't quite... It doesn't want to
like fit into neat rows and columns quite so cleanly anymore. And
if it did, it would fit into the world's most complicated ad hoc
schema. Can we explore that a little bit? This problem, and this
type of storage sprung up in response to basically trying to store
the internet, right? Like it was like internet search engines need
to index the whole internet, how do we save that? So certainly
tremendous volume, check and also though the properties of an
individual page or whatever, a webpage doesn't just squish down
into SQL, it doesn't squish down into tables and everything. And so
to the extent that we can, this might be an impossible question,
but to the extent that we can, how much of it is volume and how
much of it is shape that drives not the introduction of these tools
like data lakes and things like that, but their usage today?
Conor Cunningham (00:16:18):
Yeah. It's a good question. I think that one way to look at it is
even if you just had purely structured data, you would still need
all this scale out stuff. We have scale out versions of traditional
database engines and there's several commercial company that
provide them including Microsoft and that exists. But you're right,
Rob that the amount of data that is not formally structured is
much, much larger than that. And therefore, if you want to go
process that data, you need a different toolbox of stuff. And some
of that you can build a new database engine, sometimes it's on the
side or complementary. Sometimes it's just something completely
different. Say I'm going to embrace that and just store random
content so Cosmos DB is a new SQL store that we sell and it
basically just lets you pass in JSON and you can store whatever you
want, but up to a certain size.
Conor Cunningham (00:17:07):
And then you can try to find ways to store different kinds of
content, as long as you can figure out the interface that you want
to use over it to make sure that you can write code to process it
however you want. And that can be HTML, that could be images, it
could be whatever it is that you want, but in each of those
domains, there's probably going to be more specific tools because
the amount of data is big enough now that it warrants having tools
that kind of go after each space separately.
Rob Collie (00:17:32):
It's just so fascinating. So like as I've been trying to, and I
think reasonably well adapting in the way that you have, I've also
had to adapt to this new world. And I did have a little bit of
exposure to it when I briefly worked for Bing with their storage.
Let's talk about data warehouses, one of my favorite things, my
favorite straw men to set on fire from time to time. When you think
about the term data warehouse, right? It's supposed to store like
you can see the dust in the crates like the Indiana Jones, the end
of the first Indiana Jones movie like this is where you put data so
it doesn't get lost. Because your operational systems don't have a
need to keep around the five years of history. Your operational
systems are just really mostly concerned with the now and the
recent.
Rob Collie (00:18:21):
And so the original name given to these things implies, just don't
lose anything. It does not imply that name anyway does not imply
the priesthood that evolved around it. It became this like tower of
Abel type of enterprise, it doesn't even really matter what the
data warehouse is used for. The data warehouse is a thing that
we're going to spend careers on and decades on. And one of my sort
of pet theories has been that these semi-structured storage
techniques have been eating into the data warehouse space, even
though they don't do what we think of a data warehouse is doing,
right? Like really neatly organized, highly structured,
intelligently materialized storage.
Rob Collie (00:19:09):
They don't do that. They don't replace that, but they absolutely
replace the don't lose anything goal. Right? Like they do that,
Right? And it's like a garbage disposal you just like almost like
throw anything at it. It's like no, no. Yep. Got it. Got it. It's
not going to be lost, not going to be lost. Part of my agenda for
today is to run some of my pet theories by you and get your opinion
on them. And if you disagree, if you think they're bad ideas, it's
no big deal. We'll just edit them out. It's no problem.
Conor Cunningham (00:19:39):
It's an interesting problem. Like enterprise data warehouses have
existed at the center of large companies for like the source of
truth for running those businesses. And there's a trend generally
that we've seen where either just because they wanted to get off of
expensive enterprise data solutions and move to Hadoop, they've
been able to move to a solution that's more scale out. I think that
there's a chicken and egg question about is it because they wanted
semi-structured data or because they just wanted to get off of the
maintenance fees for a particular vendor. I suspect that the
maintenance fees and the size of the data are probably driving it
more strictly in my mind than just whether it's semi-structured or
not. But once you go down that path, you have the option of storing
hierarchical data or data that's structured differently. And that
then becomes a tool that's in your quiver that you can kind of play
with all the different options that you can with I want to store
more data there.
Conor Cunningham (00:20:34):
And I still think there's a lot of structured data that's going to
play in that world, but you can mix in semi-structured data, chase
on payloads on the side, whatever it is that you want more easily
without having to worry about, oh, how long is my backup going to
take. The other nuance that's kind of interesting is in clouds
today, the cost to store things that aren't being touched is
generally very, very close to zero per bite. It's pretty cheap.
Like we store petabytes and petabytes of data just to run one
server in our public cloud. And that's just fine. It costs a fair
amount of money to store things at that scale, but it's completely
possible to do so. And we use it data to run our business
effectively. Any big company can do that as well, even any modest
size company can store tons of data cheaply compared to what it
would've cost in one of these earlier solutions.
Conor Cunningham (00:21:26):
And I think that that's part of it is that it democratizes the
ability to get at lots of data. And then you can do lots of
different things. Whereas before it was so expensive that you had
to structure it, you had to spend all this time. Now you can choose
if you want to cook that data into a structured format or not
choose it if it's not worth your time right now.
Rob Collie (00:21:44):
Yeah. There's a big difference between curves and cliffs and
traditional enterprise data warehousing was a cliff. It's like, if
you want to store anything, just write down a transaction. First,
you have to read this thousand page Bible. It's like the cost of
entry, even for the simplest things, is that you've really... It's
all up front. And the ability to sort of scale how much you want to
think about it and to be able to turn a knob rather than just flip
a switch. You know it's not binary all or nothing. I think that the
implementation cost even just figuring it out, what the schema
should be and all of that kind of stuff, even that is part of the
cost of ownership. And of course, I think you're right, like cost
drives everything. So if that goes hand in hand with like reduced
licensing costs like hey, sign me up.
Conor Cunningham (00:22:39):
Absolutely. I think that the space here for proper enterprise data
warehouse design still exists. Even in the scale out world, you can
benefit from Kimball type 2 dimensions and fact tables that are as
narrow as you can make them and all that type of stuff, because
that does reduce the time to get results in some cases. It's not
required in as many cases and the ability to add scale out
processing can also be another lever to go after that same problem
without necessarily having to resort to the same exerting rules
that you would have in order to play the data warehousing game
effectively.
Rob Collie (00:23:15):
People ask me, what's your opinion on data warehouses? And
basically I say to the extent that you already have one, they're
awesome. They're the best thing in the world. They make everything
easier. When I get into trouble with people when we start getting
into arguments is when I say it's just not worth waiting on you
build one. Analysis and actual business value can proceed and
actually should proceed even if all the data that you need isn't
already in the EDW. When it comes to going to work with our clients
if ahead of time, if I could sort of magic wand sort of choose, I
would say, hey, it would be great if this client already had
everything in their enterprise data warehouse, just lower friction,
we're off and running. You know I would love that. It's just never
reality. It's always lagging behind the realities of the business
by years really, in terms of what's been incorporated and digested,
there's always so much that's not stored in there. That's
relevant.
Rob Collie (00:24:12):
I love that we've reached the point in this profession where we
can, we can hybridize, we can use data from your data warehouse if
you have one, but at the same time, there's also things being
pulled from elsewhere and modeled together. And it's kind of a
happy place to be.
Conor Cunningham (00:24:25):
Yeah. I mean, just last week we released an update to our Synapse
Analytics platform that lets you just throw all the data into a
logical data lake and then you create some external tables on top
of that and you can query it on demand. And instead of having to
provision the data warehouse upfront, it charges you by the
terabyte processed not any provision thing. It just goes away when
you're not using it and it just costs storage and that's it. So
there's going to be lots of work to make that easier and easier for
people to get value out of their data with less investment to build
that data warehouse upfront. Partially just because of the size you
can't load it all anymore. And partially because that's where
customers need help. They want time to solution for each team, not
just the team that's in central IT for a large organization to have
control over that data warehouse. If you want to spin up a new one
and just have your own data lake on the side, that's completely
possible now and it's really easy.
Rob Collie (00:25:16):
Oh, that's great. That's great. This is probably my last theory of
this sort. The game of data warehousing, old data warehousing was
in order to store it, you had to design the tables to store it. You
had to put it into rectangles in order to store it. Whereas now
with data lakes, you don't have to go through that process if you
don't want to. You can store it in sort of non-rectangular curly
format, closer to its original format. But when it's time to
analyze, which is typically where our company comes in, when you're
analyzing across lots of "records or entities" you're not as
concerned about the ways in which those entities are structured
differently. You tend to be analyzing them across dimensions that
they share. It's their commonalities that are interesting. And so
you end up with rectangular-powered analysis like we still get to
tables. When we're building our data model, tables are still
absolutely 100% the way to go even if that data's coming from a
format that wasn't stored as tables.
Rob Collie (00:26:23):
So it's like you delay the rectangularization of the data until
query time in a way because in every query is different. Every
query would require you to rectangularize the data in a different
way, right? And so it's kind of back to that curve versus cliff
thing, right? You can kind of delay tomorrow's decisions until
tomorrow when you actually know what they are rather than trying to
anticipate every possible decision tomorrow in your schema that you
design today.
Conor Cunningham (00:26:52):
Yeah. I mean there's truth to that. I think the way that most of
these logical data lake things work now are sort of tied to this
runtime binding of the idea of here's the format now, and this is
the subset I'm going to look at. So you can definitely push that
decision out. There is still a trade off between like how fast is
that query or how much does it cost to run if you're going to do
that every single day, maybe it makes more sense to schematize it
to get that to go faster or be cheaper or whatever. But that's a
trade off that you can choose if you need to, as opposed to having
to do it to be able to start playing.
Rob Collie (00:27:34):
Right. No crystal ball delaying the work until you actually know
what it is, is a tremendous advantage. And I completely agree with
you. Let's say we walk up to an unstructured storage like a data
lake and we start extracting things from it for analysis. There's
going to be a lot of experimentation and iteration in that process.
So as the project proceeds, we even refine the rectangles that we
look for, right? But then after a while we dial it in and this
dashboard, whatever it is that we built you're right, Conor like
it's now running every day, powering business decisions and at
refresh time or maybe we're using real time pass through queries or
whatever, at refresh time, the performance of "rectangularizing"
paying that every single time might suck. And so now that the spec
for this solution is essentially stabilized. It's almost trivial I
would think to define those rectangles as like a cache format that
you can pull faster, you can optimize at that point rather than
trying to optimize for every possible answer in the future, which
is really a losing game, isn't it?
Conor Cunningham (00:28:43):
Yeah. We definitely see people do that at different layers of the
stack. You get like results set caching for example, or indexed
views, materialized views are things that you can see inside the
database to help you with that as well to kind of delay, even on
top of these external formats to say, you know what I'm going to
pre-process it once and store it here to make the layers above
easier to serve. And you can all also do that within your serving
layer as well. So I think there's lots of different options to try
to reduce that cost to decide when you want to make that investment
to go and really schematize things and you can choose to do so or
not now in a lot more cases than you used to be able to.
Rob Collie (00:29:21):
What a glorious world we live in. And you know what else is
glorious is that Conor now you and I actually have a place where
our careers meet. For the longest time like we were just both nerds
working in tech at Microsoft, but like we'd come home and talk to
each other because we did. There were four of us who shared a house
together for like a year and a half, a very interesting year and a
half. But we were never on the same page in terms of what we were
working on. Now, I do remember though, you telling me that the MSI
files that we used in Windows Installer that I was not allowed to
call those databases.
Conor Cunningham (00:29:56):
Yeah. That was back in my earlier dogmatic days. You can call it
whatever you want now, Rob.
Rob Collie (00:30:01):
Well, we all come from where you're coming from, what you're
talking about. I mean, I have my own versions of that with age and
experience and humbling experience, right? Is where you start to
get a little bit more flexible, a little bit better about these
sorts of things. Okay. So we could call an MSI file database now.
Okay, here's the real test. Does Exchange run on a database,
Conor?
Conor Cunningham (00:30:28):
Yes.
Rob Collie (00:30:29):
Yes.
Thomas LaRock (00:30:31):
The look on his face.
Rob Collie (00:30:33):
It was an important moment we had a breakthrough. It was a running
joke where I'd run around and say, I forget it's JET Red and JET
Blue, right? I forget which JET you worked on, but one of them was
better than the other one.
Conor Cunningham (00:30:47):
You know, the worst part is that the other one is more successful
than the red one that I worked on but-
Rob Collie (00:30:52):
Oh, bitter, bitter, bitter, bitter pill.
Conor Cunningham (00:30:55):
No, I don't feel so bad about that anymore. I think that it's
definitely the case that blue got used in a number of different
things, including the storage engine backing for Exchange. And it's
used in a few other places as well across Microsoft, but it's also
a very specialized engine and it has a different sweet spot. It's
not a general purpose database engine that you can use to solve any
problem. So SQL is a far more general thing. I've worked on the
main SQL server code base now for well say a very long time and
that has some flexibility to do a lot of things. And I kind of
enjoy that space because it is so flexible.
Rob Collie (00:31:35):
Well, don't worry, Conor the single biggest failure in our personal
circle that has anything to do with the Exchange Store is my
project that I worked on for two and a half years, Office Designer,
never saw the light of day got killed mercifully, was killed before
it ever went to market. And believe it or not at one point in time,
that awful, awful thing we were working on that was going to just
be terrible. It was going to really, really suck. That thing was in
contention to be named SharePoint, the SharePoint name was up for
grabs. It was like Office knew this was a hot name and it was going
to apply to either the technology that the Office web server folks
were working on, or it was going to apply to the stuff that we were
working on with Exchange. And it was like they were just waiting to
see which one of us deserved it and they picked the right horse in
that battle.
Conor Cunningham (00:32:28):
Yeah. SharePoint is an amazing business. They're not a normal
database app. They run on top of SQL server, but they don't really
follow normal rules for rows and columns the same way that a normal
app would. But it's a very, very large business for Microsoft and
in some sense that's proof that you can take a problem area that's
not quite normal row and columns that are fully schematized and
derive a lot of value for customers that way.
Rob Collie (00:32:56):
I remember when I was still there like the SQL org almost like
regarded the SharePoint product as like an invader in a way, like a
barbarian because was not... SQL was never intended originally to
power something like that, but the SharePoint folks figured out how
to make it work. And I remember, I don't know if this is still
true, but like when you would go to Save a file like to a document
library on SharePoint, there was like this ridiculous series of
stored procedures that would run that would like tear that file
into a million pieces and store them in individual places. And of
course it took forever to say Upload a file to SharePoint because
of it. And I suspect that that's kind of calmed down and things
have kind of gotten more streamlined over the years, but originally
it was kind of like the rogue effort in a way.
Conor Cunningham (00:33:41):
Yeah. It's definitely a unique application on top of SQL in the
sense that it doesn't follow the normal design rules that we would
use for any traditional relational database application. That
doesn't mean that they can't make it work and that they're not
getting value out of the layer that SQL is they can use us to do
backups. They definitely run queries. They happen to work, but it's
not like we use SharePoint as an example for how to build an app.
That said they have a huge investment in the enterprise readiness
about how they run say SharePoint Online and they are an excellent
partner of ours internally to be able to go drive us to be better
at making sure that all the core keep the lights on things that we
have to do to run our cloud service are being stressed every single
day. Both on just the metrics of delivery and also on cost. So we
have that running inside of our cloud today, so SharePoint Online
runs on top of SQL Azure and they do that at scale with all of the
different SharePoint sites that you have on there running. And it's
a huge enterprise and it's one of our big internal customers.
Rob Collie (00:34:47):
Let's go back to Conor the celebrity.
Thomas LaRock (00:34:51):
I got some stuff.
Rob Collie (00:34:52):
Yeah.
Thomas LaRock (00:34:53):
All right.
Rob Collie (00:34:53):
Yeah.
Thomas LaRock (00:34:54):
So before we get there, I'm glad Conor, you cleared up what your
title really is and the reason I'm glad, because whenever I speak
of you, I just tell people he's the architect. So to find out that
that's your actual title, just that makes me feel better about
myself like I haven't been lying all this time. So I go back to
knowing Conor roughly around 2009 when I was fortunate enough to
become a Microsoft MVP. And that's where I got to really meet Conor
was at the MVP Summit. And for people listening that don't know
what it is. An MVP is essentially an advocate for Microsoft across
any of the product groups mine currently is classified as data
platform. And they would bring you on campus once a year and the
product teams would talk through some of the stuff that they'd be
working on and they use it to collect feedback to make the products
better.
Thomas LaRock (00:35:47):
So this is my introduction to Conor and a couple of things that
you've said earlier about being the architect and all the fun
things you do on the daily basis. The question I have for that, how
long does it take for your decisions and your work? How long does
it take for that to show up in the product? And I think the
answer's different like how long did it take when you started and
how long does it take now?
Conor Cunningham (00:36:09):
Yeah, so before I answer, there are other Conor-like people on my
team, I'm not thee architect, I am an architect.
Thomas LaRock (00:36:17):
Fair point.
Conor Cunningham (00:36:17):
And I don't want to try to make it oversell who I am. There are
many, many smart people on my team and I am smart because I get to
work with them as much as anything else. That said the time period
to build software has changed over my career and SQL server would
typically ship every three years or so. And so it used to be the
way that we would build software for that would be we'd sort of
think or design for a year, code for a year, test for a year and
then ship. And then five years later, someone would tell me if the
feature sucked or not, because they would take them that much time
to go and adopt it.
Conor Cunningham (00:36:54):
The world these days has sort of been inverted with the cloud. We
now have to deliver software into the cloud every single month and
we have to do that piecemeal. And by the time we get done after
doing that 10 times, then the whole feature is there. And then
later we ship that into SQL server. So that's the same code base
for our cloud version of SQL and the on-premises version. And so
the part that's interesting now is we're able to get feedback
really early from customers as to whether that very first piece of
small chunk of the solution works or not. And then use that to
refine as we go. And that actually is really powerful for us
because now I go find customers before we start the feature and if
we don't have any, we don't build it. And so that's a very
different engagement model and it used to be that we would kind of
listen to the MVPs and we still do, but like they would kind of
give us all this feedback on the two versions ago, product that we
shipped and then we try to figure out what to do about that.
Conor Cunningham (00:37:58):
There still is a degree of strategy and how do we think about where
the market's going to go, that we put into what we do and why we
prioritize things. But the engagement model that we're able to do
now is far, far different both because we have telemetry in our
cloud on what people are using or not using. And we're able to use
that to figure out, oh, my God people are failing here. Like this
is airing all the time. What's to go fix that. And we can also
learn what features they're using in a way that helps us turn that
around and invest in the areas that'll help customers the most. So
that model is very different now and I actually think it's
hopefully more responsive in the sense that we have to ship
software that works. And you can't just guess, and then hope that
they use it. We actually have to prove that they use it before
we're done or else sometimes we just go cancel a feature that's
missed the mark.
Thomas LaRock (00:38:45):
So when I met you, Azure was really just starting and SQL Azure,
which by the way SQL Azure is still remains the best name you've
ever given it. But what I remember about it was the pushback, don't
want to hear about don't want to talk about. And at some point I
recognized Azure as basically a sandbox for you and your team to
basically do some type of continuous integration, continuous
deployment and to speed up the ability to get features to market.
And I'm like, even if nobody uses Azure but Microsoft, Microsoft's
going to create some really great stuff faster. And obviously
you're only going to do it if somebody wants to buy it, but at
least you have the ability and now telemetry and everything else
that goes into these products to do that. And I just think it's
been a great thing.
Thomas LaRock (00:39:38):
So back to the MVP thing is that I remember being in that room and
you would walk in. I have some of my favorite Conor moments, right?
Like this guy, he walks in one day, he's got two slides. The first
slide says, Conor's going to talk and then the second slide just
said, Conor will take questions. That's it. That's all he had and
the thing is, everybody in the room is like, yeah, that sounds
good. Not a problem. And then there's another one where I think he
just walked in and said... You didn't even have slides. He goes,
"I'm just going to talk for an hour and then I'll take some
questions from you." And we were all like, "Yeah, still not a
problem."
Thomas LaRock (00:40:17):
You weren't speaking, somebody else was speaking but you were
addressing the room and your comments of "I'm not afraid of you
anymore." Just still resonates just this... You can... Oh, that's
it. "You can rate me wherever you want one through five. I don't
care. I'm not afraid of you anymore." And it's just... So yes,
Conor is a celebrity for all these reasons.
Conor Cunningham (00:40:37):
In fairness, one of the things that maybe the audience wouldn't
know is that the MVPs, there's a bunch of really smart, passionate
people that are there. And they spend a lot of their hours working
on behalf of Microsoft. And then they come to this forum and not
every presentation that they would be giving would be particularly
good. Sometimes the people that were working on a feature may not
be the best at public speaking, or maybe they just had a bad
business plan and they didn't really have a good picture that
understood the customer well, and then the MVP's would be very
willing to let them have it essentially. So I remember I gave a
talk after one such talking so that the room was very salty, right?
And I get into the room and people didn't really understand that I
don't take guff from people when it comes to this sort of
stuff.
Conor Cunningham (00:41:27):
I want to get the feedback that I want from the room, but I have an
agenda when I go into a room of 100 MVPs about what I want to learn
and that's perhaps a little different than tell me what you think
about my special flower project I've been working on, where someone
is innocently coming in. So I'm usually coming into that room to
play a different game than the average presenter. I also have the
benefit of having been captain of the debate team in high school.
And so having people try to bait me doesn't really work that well
because I know most of the standard tactics and techniques.
Conor Cunningham (00:42:01):
And I also, I'm just playing a different game. I'm trying really
hard to figure out I have to make a key decision about the
architecture. I'm not even going to tell you what it is because I
can't yet, but I need to get the right data points from this
audience because you are all the expert customers that have all
this in your head, but maybe you can't tell me right now because
you're too passionate about whatever random idea you want to
complain about. It's just a different type of engagement model that
I was using to go into that room and pull data that I needed to
make decisions. So that maybe gives a little context as to why it's
different. Also, Thomas, in fairness, as I've gotten more senior, I
get less and less time to prepare. So coming in with two slides
saying "Yeah, I'm going to give an extemporaneous talk with no
slides for an hour" is pretty much my default mode of operation at
this point. And I've been told literally five minutes before going
in front of an audience of 100 or 200, "Hey Conor, I know you've
been working all day in London and you're jet-lagged by the way,
the user group is here and you're going to speak to them." And no
one ever warned me that I had to go give a talk.
Conor Cunningham (00:43:03):
So I would just get up and start talking and figure out how do I
explain what we're doing, why our platform is interesting, what
sorts of things people are finding that are challenging about it,
and just I'm giving a very ad hoc presentation because literally
that's all I have time to do. So I might as well use it to kind of
help me refine my picture of what our customers need. And I'm
constantly trying to do that so that I can hopefully make the
software better when I make decisions every day.
Thomas LaRock (00:43:29):
So one of those times you walked in front of the room and it was
still at that point of where Azure, there was a lot of pushback.
And like you said, you would ask the MVPs and you get feedback on
features that were already baked into the product and it was two
years ago, right? And I know these people and they sat there and
they would tell you none of my customers are using this. And it's
like so that's a data point of two people. And this is the type of
feedback you were getting. So there was a lot of pushback to Azure
and at the time there were some valid concerns about it but for
most people they just fear change. So Conor walks in, goes to the
front of the room and he goes, "All right, you don't want to hear
about the Azure. I'm not going to talk to you about Azure at all."
And a handful of people in the room were like, "Oh, thank God,
because I don't want to hear it." And he goes, "I'm going to spend
the time today talking to you about containerized databases." And
everybody in the room is like, "Yeah. Okay, sure. Let's have
this."
Thomas LaRock (00:44:29):
So Conor proceeds to talk about the idea of a database as its own
little containerized unit that can be basically picked up and moved
to anywhere. And he details all of this in the talk and basically
at the end of it he goes, "So what I just described to you is
Azure." And for a bunch of people in the room like they were like
confusion. Like, "Wait, that's it? That's what you've done here?
That's what you built?" I remember sitting next to a Denny Cherry
at the time and when you had detailed all that Denny and I were
like, "Hell yeah, that makes way more sense right now. I wish you
would've told us earlier, we'd been on board, but wow." That was
just a brilliant way for you to control the conversation and lead a
group of advocates to the place that you need them to be at for
you. And I just thought it was brilliant, one of the best talks
I've ever attended.
Rob Collie (00:45:26):
That does sound amazing. Microsoft has an obsession with nouns, I
had to sort of slowly over time break myself of it. In fact, after
a certain point in time of my career, I would start telling like
new hires that were reporting to me as I was mentoring them, that
they were not allowed to introduce any new nouns into the product.
Not allowed to do it. It's only verbs things that we do for the
user. That's what we do. Like our nouns are us just nerding out
over some abstract concept, right? And so like, this is what
happens, right? Like Azure, right? It's Azure, Azure, Azure, Azure,
right? The default is to go out and talk about Azure rather than
what it does for you. It's a very computer scientist, Microsoft
disease that a lot of Microsoft especially when they're young
suffer from. The prognosis is not always good for recovery and so I
wasn't at that talk. I'd never heard this story before, but I love
it. Just this little redirect, let's talk about what it does and
then we'll put a name on it. We'll put a name on it at the end, but
the name isn't the important thing.
Thomas LaRock (00:46:37):
So the other one that sticks with me, and this was around, I want
to say 2010. I mean, I've got a lot of memories of MVP talks like
Conor said some just go sideways.
Rob Collie (00:46:48):
This is basically a this is your life.
Thomas LaRock (00:46:50):
Oh, yeah. But no, so this is my impression. And this is what when I
tell people that Microsoft is different now than when it used to be
I mean I'm serious because I've seen a lot of it. But here's one, I
think, great example and it's Query Store. So I'm sitting in this,
God, I hope I'm not breaking my NDA at this point.
Rob Collie (00:47:14):
I don't know.
Thomas LaRock (00:47:16):
Okay. So I'm sitting in this talk, Conor comes in and he goes,
"Hey, wouldn't it be great if we could persist performance data
between a restart because that data usually gets flushed." And he
wants to build this thing and store it inside of the database and
he's going to call it the Query Store. And he basically asked the
room, what's some of the stuff you'd want to see in there and we
give him our feedback. Although I'm working for a software vendor
that collects performance information. So there's some trepidation
like are they about to put us out of the business? Like what's
really about to happen? Conor's intent was never like oh, there are
these handful of vendors out there we can just get all their
business. That was never it, it was to build a better product to
serve customers because everybody wants happy customers. And I
remember him outlining it and I also remember how it took so long
for that to make it into the product. I think it was six years, six
years and this must have been like a side gig for you. You had a
full-time job, but this was just something you did because you knew
it was going to make things better. You would have more happy
customers as a result and it probably wasn't even considered a
priority for anyone in your office.
Conor Cunningham (00:48:32):
The Query Store was an idea that when I went back to Microsoft, I
sort of developed that, refined it with the help of some of my
peers and my managers at the time. And then it kept getting kind of
just below the cut line of what we would go fund for one reason or
another. And it was a frustrating time in that regard because I
knew that this would be helpful. The reason for that is the process
we have for dealing with customer support tickets is usually that
customer support engineering organization will typically handle
most cases when they have ones they can't handle those get
escalated to the engineering team. And then people like me would
look at them to go figure out, okay, here's how you answer that and
figure out either how to do a hot fix or otherwise the answer to
the customer's issue.
Conor Cunningham (00:49:16):
And then furthermore, there could be executive escalations where
some big enough customer complains to some big enough person in
Microsoft and then eventually things kind of roll downhill and then
end up on my desk and I needed to go deal with this. And in both
sets of cases, it typically boils down to if we only had X, this
would just work. But the fundamental lesson there was when we first
built SQL 7.O the query processor was very advanced, but there's a
whole huge space of problems to solve. And eventually you realize
that if you can push down some information into a store and learn
from the last time you ran that same query, you can do better over
time. It's a really simple concept, but in order to get to that,
you had to take a system that wasn't built for that concept and add
that on without breaking any of the existing customers that are
running there.
Conor Cunningham (00:50:07):
And it took a while to get the design right. It took a while to get
the perfect scale right. These days I pretty sure that no one would
ever want to go back to the old days. And that includes the people
who are tools under is on top of SQL, right? It's a definitely a
better world and there's a lot of things that we're building now
where we have learning algorithms that we're adding to the Query
Store, so that we figure out how to make your app go faster or
scale better without you ever doing anything. And it's a huge
playground for us. It's just it took a lot longer that first time
to get out because I think it got canceled three times and I had to
resurrect it just out of sheer force of will. And there's reasons
for that sometimes just about how Microsoft works and what it
prioritizes sometimes strategically what we had to do in the
industry.
Conor Cunningham (00:50:56):
They were all valid reasons at the time, even if I didn't always
fully agree with them. I think now that we've had it out, though,
people love it. It's on by default in every single SQL Azure
database that you have, you can turn it on in SQL server and many
customers do. So it's a huge thing that lets us make our customer's
lives better, hopefully. And sometimes you have to just know up
front that maybe it's the right thing to do, even when no one else
will tell that to you. I'm now at the point where I'm basically
only picking things like that to do whenever I get free time inside
of Microsoft.
Thomas LaRock (00:51:28):
You're taking away a lot of nerd jobs, right? You're making SQL
server better with less human intervention to do so. Fair
statement?
Conor Cunningham (00:51:38):
I think Query Store specifically pivoted from a model where I'm
going to give you a window into the inside of the engine of this
car to here is an abstraction that is intended to be at the level
of the database administrator or the DevOps person. And I want to
make certain problems that required Conor or similar to Conor to
solve to be democratized so that you don't need an expert to solve
them. So yeah, definitely to the extent that that requires fewer
labor dollars to be able to solve a problem, sure. But that also
means you can spend your time doing more things for customers and
stuff.
Thomas LaRock (00:52:15):
Yeah. That's why I want to ask you. So for the people that have
traditionally focused on database engine and tuning and tasks,
things related to deep dive diagnostics, right? So for those
people, if some of this stuff, as you say is being democratized,
there might be less of those things to do. Where should they be
spending their time next? What should they be doing for those
customers? What's the next thing for those people who really are
engine only?
Conor Cunningham (00:52:42):
It's actually interesting because the query space is not one that I
would say that they need to not know about. I would say that when
you look at PaaS cloud offerings like SQL Azure, they have auto
patching, auto backup, auto upgrade, auto change service tier, all
that stuff goes away. So you don't necessarily need a sand person.
You don't necessarily need a DBA that just does backup and restore.
Those are the jobs that, that I think you probably shouldn't be
focusing your time as much on that stuff. And there's still is
actually a heavy value in my mind for a person who can take a
database, especially if there's a company that has many of them and
figure out how to tune them at scale. So one of the things that I
do with very large companies that are like ISDs they have thousands
of databases or hundreds of thousands of databases is we go figure
out, okay, how do we take your app and tweak it so that maybe we
trade off the ratios of memory to CPU, to IO, to disk, to tempDB to
be to this or that.
Conor Cunningham (00:53:46):
How do we design your app so that it doesn't require as much money
so that we can squeeze the cogs down so that you can work at
internet scale overcommit people to the same resources and save
money on your SQL licenses effectively. And that game is highly
valuable if you have enough databases. So I think that figuring out
where you have the skills to do that kind of work is still very
relevant even in a world with Query Store. Granted, there's a
certain class of problem that maybe will get degraded and you won't
need to have to really think about as much as the Query Store gets
better, but the Query Store is not getting better fast enough that
that's going to be a worry for me before I retire or anyone else
who's going to listen to this podcast. In the next 10, 20 years,
they'll still be problems with queries and tuning and figuring out
the right way to go position applications to be able to make them
work well. I think Query Store will solve a category of basic
common ones, but you shouldn't assume that that world is going away
anytime soon.
Thomas LaRock (00:54:44):
So the world of tech of course, is changing very rapidly. I was
wondering, so in my mind, what I think and this is very specific,
I'm going to ask questions about AWS. And of course, AWS has some
type of feature announcement like I don't know, a couple of dozen
each day. So in my mind, I imagine Conor has some assistant
somewhere inside Microsoft that gives them like a daily briefing
and like an executive level summary. I mean how do you Conor, stay
on top of all the changes that AWS is doing?
Conor Cunningham (00:55:16):
I got bad news for you, Thomas. I don't have a person that briefs
me on this. There is a mail that gets sent around about the other
competitive offerings that we see from big Microsoft competitors
that they send around to the executives and they will call me an
executive since I'm on the mail thread, but that's maybe a gross
stretch of my job title. I think that the main thing that you have
to go look at is which ones do you control and directly compete
against? So there are things that any of our large competitors do
come out with. We tend to look at them closely. We have some
conversations internally and brainstorm how to react. It's only
really like two or three times a year where that becomes frantic I
would say. It's not that they're releasing a new database feature
every day for example. It might be that they release something on
their messaging queue system or their identity system or their
security scanner. And I'm not the first person to need to react to
those things.
Conor Cunningham (00:56:08):
I would say strategically, the part that is important for me is
that I can meet customers where they are in terms of their design
challenges and problems. And sometimes that means that they're on a
competitive cloud compared to Azure. They could still use SQL. SQL
is a huge business on AWS, but ultimately figuring out like how do
we help them solve their problem is both a relationship discussion
like a trust question of, can you give trusted advice to a customer
as well as a technical solution piece? And we can do one without
the other and we have, and we love being able to work with any
customer that has a fun problem. And helping them solve those
problems is really what we do independent of that. So I think we
just kind of read up on them as we go through and some days I miss
a few, but otherwise I put it on my to-do list each day to read
about.
Thomas LaRock (00:56:54):
So I'll be pointed because I'm imagining this might be a hectic
time because re:Invent is happening. re:Invent is happening for
three weeks this year, which is a ridiculous thing, but that's a
topic for a different day. Have you familiarized yourself with
BabelFish yet?
Conor Cunningham (00:57:12):
Yes. I know what it is and I have a pretty good idea who built
it.
Thomas LaRock (00:57:17):
Because to me, that's enabling customers to migrate data to the
cloud, which is the ultimate goal. They're removing more barriers
for the data to get there so I would love your thoughts.
Conor Cunningham (00:57:28):
So I'll just caution that I have not tried to play with it
technically myself.
Thomas LaRock (00:57:32):
That's fine.
Conor Cunningham (00:57:33):
However, if you build a thing that sort of tries to fake the SQL
server interface and have a different database engine underneath
the covers, which is what that technology tries to do. I mean,
obviously that would be in Amazon's interest, but at the same time,
there are lots of technical differences across the various database
engines. And it's likely that you're going to hit various
challenges with that approach in the limit. It might work for a lot
of the basic cases, just great. But as soon as you take a real
application, I'd be very curious to know, does it always translate.
Typically, when an application vendor tries to translate their
software from any relational system that's of any age to SQL, when
we talk to them, there's lots of challenges there because there's
little nuanced differences that really matter, and they're not easy
to fake, right?
Conor Cunningham (00:58:26):
So you have to figure out, okay, well do the data types lineup?
Well, that's not even true across a lot of them just to start with,
right? Forget the semantics of a query, or how does the procedure
language work or what's the exception behavior. So I think that
it's obviously a very aggressive, interesting technology, kudos to
them for trying to do it. I would be curious to see does it work
for any real mature app?
Rob Collie (00:58:49):
An example of what you're just saying there, Conor I think is I was
still working on Office, I was in the Office Org when we went to
the XML-based zipped file formats, which we now take for granted
XLSX and DOCX and all of that kind of stuff. And there was a
concern from the highest levels of Microsoft let's say it that way,
that publishing the file format, making it open was going to enable
the copycat Office Suites to steal our lunch money. And you know,
it was really, it was coming from like the C-suite that opinion and
that fear. And Chris Pratley, who worked on Word at the time, still
at Microsoft, Chris Pratley had a different opinion. And I agreed
with him, which was, it's not the file format. It's the behaviors.
It's the behaviors of the application of PowerPoint, of Word, of
Excel. Those are the hard things.
Rob Collie (00:59:46):
Take it a step further, we Microsoft office, the Excel team, if we
were given the Excel file format and told, even as us knowing what
we knew, go duplicate Excel, we would go build something that
wasn't the same. It would absolutely drift quite a bit from Excel.
Like it would not be compatible with Excel. Even the Excel team
couldn't rebuild Excel unless you just gave us the source code,
right? Then we could probably do it. Software is again, it's not
the noun, right? The storage is the noun. That doesn't count until
things move. It's all the behaviors, the verbs, the flows, all of
that kind of stuff. That stuff is loaded with nuance and it's a
trickier beast than most people expect.
Conor Cunningham (01:00:33):
Yeah. So there's definitely challenges there and again, I haven't
tried any of it yet, so I'm not trying to go speak ill of a
competitor. I'd just be curious to learn more since you asked about
it. That's an area that we were talking about internally that would
be definitely something that I would personally want to learn more
about.
Thomas LaRock (01:00:52):
Before I forget, there's one thing I want to point out and that is
the three of us are all Jeep owners.
Rob Collie (01:01:01):
I did not know that.
Thomas LaRock (01:01:03):
I believe Conor just bought himself a brand new red Jeep within the
past year?
Conor Cunningham (01:01:08):
A year or so ago I bought a red Jeep, yeah. And one of the new
Wranglers and I've been very happy with it. My daughter is also
very happy with it and we have fun driving it. I got a GOBI rack on
top of it. And it's quite nice looking.
Thomas LaRock (01:01:23):
Oh, if you have a Jeep you have to accessorize. That's just the
rule.
Conor Cunningham (01:01:26):
I want to do more but with the pandemic and everything I've just
been kind of waiting. I want to put a winch on it. I don't need a
winch, but it just seems cool to have one.
Thomas LaRock (01:01:34):
Exactly.
Conor Cunningham (01:01:35):
Right. No, but I really wish I had reached this level of Nirvana in
car ownership far, far earlier in life than I have, but definitely
I've been enjoying my jeep.
Rob Collie (01:01:44):
It's like the people that get really excited about their gaming
computers and they're like blinging it out with neon and stuff like
that same, whatever that itch is, Oh, look at that. Yeah. See, so
you already had this itch you know.
Conor Cunningham (01:01:59):
I also had that itch. Yes.
Rob Collie (01:02:01):
Yeah. We told some very flattering Conor stories. Let's tell some
others.
Thomas LaRock (01:02:07):
All right. I don't think I have any.
Rob Collie (01:02:08):
Oh, I know because you didn't live with him, right? I lived with
him when he was still wearing diapers, you know? I mean he was a
baby and so as I. This one actually, isn't a story about Conor
really it's just about sort of like nerdom in general and how it
can kind of overflow its banks. So I came home from work one day
and I walked in the front door and I turned to my right and I
looked into Scott's room and Scott and Conor were both in there and
it looked like some sort of like tech bomb had gone off. The
computers all had their covers off. There were wires strewn
everywhere. I mean, there were cards laying here, cards laying
there and they both looked like they'd been at this for a while
like they were exhausted. And I was like, "Guys, what is going on?
Now, keep in mind this was like probably like 1998. And I go, "What
is going on here?" And without any hint of irony or humor, I forget
who it was, one of them turned to me and said, "Well, we bought the
new Windows phone."
Rob Collie (01:03:21):
And this was a phone, a landline phone that was meant to like give
you like additional voicemail inboxes and you could have different
outgoing voicemails for each person calling you and all of that.
And I was just looking at them and at that moment, my Grinch heart
grew three sizes that day. Like I actually, I developed as a human
being in that moment standing in that hallway. I just started
laughing my ass off. And I'm like 100 years of dial tone and here
comes Microsoft. I'm like, "Well, what's wrong?" They're like,
"Well, we can't get a dial tone." And I started laughing even
harder and I start to sort of like non-ironically asking them all
the questions like, "Well, have you rebooted? Have you installed
the new drivers?"
Rob Collie (01:04:10):
It's like, we should not be allowed under like penalty of death as
digital engineers to F up something so fundamental. If you're going
to get into that game, if you're going to get into that game, you
have to do it with a consumer mindset. And this was Microsoft is
just typically not that thing you know, it's just hilarious. And I
think you guys eventually got it working, but it took hours.
Conor Cunningham (01:04:37):
Yeah. It's amazing that Microsoft is not a cell phone provider
today, right?
Rob Collie (01:04:42):
Oh, yeah. So shocking.
Conor Cunningham (01:04:44):
It definitely was a nerdy piece of tech from old Microsoft back in
the old days before we really changed how we do development. I had
completely forgotten that we had that and this story I had purged
from my mind, but I chuckle inside.
Rob Collie (01:05:01):
Burned in my brain, right? And after that, it kind of became like a
way that I could sort of like sort people. When I would be talking
to someone in a meeting, you know, we'd be debating like whether
something would be good for users or not or whatever. Again, this
is like me after I'd grown a bit, I'd asked him, "Do you have a
Windows Media Center PC at home?" And if they said yes, then I
could decide to not trust them with regard to users or human beings
ever again. Like they were willing to bring this complicated thing
into their TV appliance supply chain.
Conor Cunningham (01:05:36):
I admit that I have tried to do this and failed on multiple
occasions and I keep trying, for whatever reason. It's like I still
want a media PC and then it just would fail miserably.
Rob Collie (01:05:46):
I can't help it. I've got the itch. But you know, this is Microsoft
strength, right? Like Apple could never build Excel. They tried.
Their Numbers app was a piece of crap you know. They could never
build SQL server. They could never build Power BI, but they build
amazing consumer tech. They really do.
Conor Cunningham (01:06:08):
Well, they're a hardware company, not a software company.
Rob Collie (01:06:11):
Yeah. I mean, you know, if Steve were here, he'd probably say they
were like a lifestyle or experiences company even, right? Like very
different emotional tone behind that. You mentioned that you've
sort of like running out of time to do presentations. And that's
one of the reasons why it's sort of like is driven you in almost
like into a more authentic direction. If you don't have time to
prep, you certainly don't have time to like put lipstick on the pig
or whatever, right? Like you're just going to go in and be
yourself. I sort of sympathize with half of it and then like the
other half is the opposite. I can't help, but be working on a
presentation. And my presentations aren't bullet points, they're
all animated stories. They're all stick figure animations that tell
stories and things, but I can't help but be messing with that stuff
even like five minutes before going on stage.
Rob Collie (01:06:58):
So one thing that you and I have in common, Conor is that when
someone asks me in advance for my slide deck, that person is going
to be very disappointed when they ask me. And they'd be very
disappointed when they ask you, there is no such thing, right? It
doesn't exist. But I don't work on those slides or the presentation
or the demo or any of that until I get on the plane to go to the
conference. That's the rule. That's what the airplane is for,
that's what the hotel is for. So I do, I put it off, right? Because
I don't have time. There's no way that I would end up prioritizing
the presentation over the other things going on in my job until I
go to the airport. But I don't go to the airport anymore. My
routine, my workflow has been broken so I had this four hour
webinar that would have been like a pre-conference session in the
old days. I had that this week.
Rob Collie (01:07:52):
Now that's like the night before and I haven't done anything, you
know? And then the next morning, I mean, good news is I'd already
given this talk in previous years. So it didn't take much prep, but
I think I would have been in real trouble because I would have
woken up that morning and gone, oh, boy where was the airplane?
Where was the hotel? That's my lab for this stuff. It's a different
world now.
Conor Cunningham (01:08:13):
I had a presentation that I gave for a conference in the UK SQLBits
and I had to give it virtually. And I had a lot of trouble getting
motivated to get the slides done and give a presentation because I
feed off of the energy in the room whenever I'm talking and I
didn't get to do any of that. It was very disconcerting to try to
just sit here in my office and talk to the microphone and hope that
that turned out okay.
Rob Collie (01:08:37):
We've always at P3, we've always been a remote company and we've
always done a lot of remote work for our clients because it's super
efficient. We definitely prefer to start a relationship with a new
client in-person, at least once. We've been deprived of that now,
you know, I mean, everyone has, so in a way it's sort of like by
leveling the playing field like we're actually doing even better
than normal because we're built 100% always, we were always a
remote company. We were remote company before it was cool, you
know? So I was actually going to ask you about that. So you've
actually been a remote "employee" of Microsoft HQ. Your job would
traditionally 100% have been a Redmond thing. And when you moved
back to Texas, you did you left Microsoft because that kind of job
just, mm-hmm (negative) no, it had to be there in Redmond.
Rob Collie (01:09:29):
And some number of years later, they relaxed that. And it was
almost kind of like it was sort of in the era of one-off, it was
like a special exception that they'd have to make to do something
like that. But it's becoming much, much more common even if you
live in Redmond, you're not going into the office right now. Do you
have any direct reports? Are you responsible for other professional
human beings?
Conor Cunningham (01:09:51):
I actually have been building a small team here in Austin, Texas
where I live. So I have two or three people now reporting to me and
that's another part of my job, but I started doing that earlier
this year. And part of the idea was that I wanted to travel just a
little bit less and to have an excuse to travel a little bit less
by investing in the career growth of some individuals here in town,
and to eventually build a relationship with the university since
it's a top 10 computer science school, that kind of thing. So
there's a lot of things I've been trying to sort of keep my career
fresh and interesting and that's what I've been up to lately. So
yeah, it's another one of my 10 fun things to do each day.
Rob Collie (01:10:32):
Your real masterstroke in terms of not traveling as much was to
engineer the Corona virus and distributed via 5G, you know.
Thomas LaRock (01:10:41):
That was a brilliant stroke. Yes.
Rob Collie (01:10:43):
I mean, it's like, look, I've got these direct reports to kind of
tie me here, but just in case.
Conor Cunningham (01:10:52):
Yeah. I mean, it's obviously been a weird year and ironically had
been working out of my house for 10, 11 plus years when I'm here.
And then I was getting kind of bored of it so I got space in the
Microsoft office here in town and I was all ready to go work there.
I would get up in the morning and take a shower and put on pants
and go. And that went on for about like four months and then
everything went sideways and now I'm back here sitting in my
workout clothes, not quite sure what on earth happened.
Rob Collie (01:11:23):
And now that team that you've hired in Austin like they could move
to Guatemala.
Conor Cunningham (01:11:28):
Yeah. For the most part like I've seen each of the people that
report to me here in town exactly one day in- person each. And
that's a little bit of a weird experience I talk to them all the
time. Every day we talk sometimes multiple times a day, but it is a
different experience and obviously we're all having to adjust this
year. It's been a very strange year.
Rob Collie (01:11:48):
You're interacting with your team more than I'm interacting with my
kids. My kids live less than a mile away, but because they're
living a normal teenage life, essentially, they're still out dating
and all that other kinds of stuff. And we weren't really able to
reach a consensus between me and their mom on how to handle that,
so path of least resistance they just live with their mom full-time
now. So yeah, the irony of having people close to you, even
geographically, but you don't see them very much. It's a weird,
weird, weird thing. It's even hard to watch movies now. Like you
watch a movie and you see people like sitting in a conference room
together you're like, "Uh, you shouldn't be doing that." It's
weird.
Conor Cunningham (01:12:35):
All the time. Yeah. I think there's definitely going to be a before
and an after for this whole thing. And it's not just about how you
record sitcoms or movies. It's also going to be a lot of the
cultural references and stuff will just all be different once we
get done with this.
Rob Collie (01:12:52):
So do you think and you don't really have any special knowledge
about this I think you can comment without speaking out of school,
do you think Microsoft is going to remain a primarily remote
company? Do you think they'll rather than ask it as a binary, how
much of the remote culture do you think is going to stick around
after all of this?
Conor Cunningham (01:13:11):
They've made some changes policy-wise and I think that remote work,
or at least partial remote work will become more common. There's
definitely some cultural parts that's been helpful. As a person who
was the only remote employee in a meeting, they would often have
this thing that happens when everyone gets excited in a meeting
where they all talk over each other and they never stopped to ask
if anyone on the phone has anything to say. Now with everyone being
remote, everyone's had to experience whenever they've been unable
to share their thoughts. And I actually think that the culture
around that and forcing everyone to go through that experience will
help us to be a better company when we get done, because it will
change how you do meetings. It'll change how you make sure you're
inclusive in meetings and making sure that you just have the right
protocol for doing that to keep everyone up to speed and feeling
like they're part of the team.
Rob Collie (01:14:05):
That's a very optimistic view, isn't it? I hope you're right.
Conor Cunningham (01:14:08):
I think that there's obviously going to be... Microsoft has always
been a Seattle company, but there are a lot of attempts to get it
to be less exclusively so. I think it will be a 10 year journey to
get to a different spot and maybe some of the other tech companies
are a bit more geographically distributed, the big tech companies.
But I think Microsoft definitely I don't know if you've been up to
Redmond recently, Rob, but the original buildings one through 10
are just a giant hole in the ground last time I was up there.
Because they tore them all down and they're building another huge
like Uber campus on top of that space that holds more people. And
the problem is that it's just really hard to build buildings fast
enough for the company to grow at the rate that it wants.
Conor Cunningham (01:14:54):
So I think there's actually some just geographic constraints that
make it hard to put everyone in one spot. The traffic's not good,
the house prices are expensive as you and I know I wasn't a huge
fan of the climate in Seattle. So I think there are people that you
would want to have at the company that might want to live
elsewhere. And it's perfectly fine if you get the right model to be
able to operate that way. It's a possibility that I think was
less... I think the pandemic will help Microsoft consider that more
aggressively than it would have otherwise.
Rob Collie (01:15:24):
I hope when they tore down those buildings like seven, eight, nine,
and 10, that they were really careful to search them for people who
were lost inside them before they tore them down. Because those
buildings were really an afront to humanity, they kind of needed to
be torn down. They probably were some sort of like combined antenna
for summoning Satan or something. I'm glad to hear that those
things have been put to rest.
Conor Cunningham (01:15:46):
Yeah. People, when you would first start at Microsoft, one of the
things you would do is you'd send them to a meeting in building
seven. There was no building seven and then eight, nine, 10 they
were these weird, not quite diamond shapes in parts of them. And
then if you follow the lines for like, okay, office numbers X
through Y are this way. You could follow each of the signs and be
stuck in an infinite loop forever. And so we would just send people
to various meeting rooms with a particular office number that we
knew that they couldn't get to by following the rules, unless they
just sort of wander around randomly. And it was a good introduction
to how not to design a building.
Rob Collie (01:16:22):
Oh, it was awful. Then they started like painting certain hallways
different colors so that you'd sort of have some sense of where you
were, but all it did was just make you feel like you were lost in a
circus tent. And it just was like the worse.
Thomas LaRock (01:16:34):
Would you do this to people you like?
Rob Collie (01:16:37):
What's the difference?
Conor Cunningham (01:16:39):
Yeah. We would do this for every new hire.
Rob Collie (01:16:42):
Yeah. If you like him, you did it to him. If you didn't like him,
you did it to him.
Thomas LaRock (01:16:46):
I think Conor, you once asked to meet me in building seven now that
I figure.
Conor Cunningham (01:16:49):
Probably.
Rob Collie (01:16:52):
Like I said, I hope there wasn't someone still wandering around in
an infinite loop sent by Conor when the wrecking ball came.
Conor Cunningham (01:16:59):
Yeah. I wasn't there when they tore them down so I can't say for
sure, but I haven't heard of any suspicious deaths. So we're
hopefully they're all okay.
Rob Collie (01:17:08):
Microsoft has been geographically distributing, like you know our
old friend, Jamie he's in North Carolina. He now, I guess
tactically works for GitHub after the acquisition, but he's been
Microsoft, he never left Microsoft when he moved across the
country. So yeah, it's a really an interesting new era. And one of
the things that I have found, we were essentially like forced into
a remote model from the very beginning, because the talent in our
space, especially five years ago, you weren't going to find it in a
particular location. And you weren't going to be able to get people
to relocate either. So our hand was forced, but it was actually
amazing because it allowed us to pull from the absolute largest
possible talent pool. I think it's an advantage. I think it's a
huge advantage.
Rob Collie (01:17:57):
Working remotely allows you to set a quality bar in a place that
you can't, if you're geographically-oriented, you know. Back when
we were youngsters like were leaving college okay, fine. You're
expecting to move somewhere, but once you've been established
somewhere, you're part of a community somewhere moving sucks. No
one wants to do that.
Conor Cunningham (01:18:18):
It is definitely a big choice and I think that giving people
flexibility to work remotely is a great thing if we can do it. I
think we're lucky to be in industries that can largely be done
remote and I've been-
Rob Collie (01:18:32):
Mm-hmm (affirmative). Very, very fortunate.
Conor Cunningham (01:18:33):
Yeah. Very, very thankful that this year I just have to focus on
trying to make sure that team stays working and things like that so
that everyone can work from home safely until we have a different
circumstances on the ground.
Rob Collie (01:18:45):
Well, I've really, really enjoyed this. And again, a manufactured
excuse to speak with an old friend. Conor, thank you so much.
Conor Cunningham (01:18:53):
Hey, it's been fun. Thanks for having me.
Announcer (01:18:55):
Thanks for listening to the Raw Data By P3 Podcast. Find out what
the experts at P3 can do for your business. Go to
powerpivotpro.com. Interested in becoming a guest on the show?
Email Luke P lukep@powerpivotpro.com. Have a data day!