[MUSIC PLAYING]
JEN: Can we get started now?
PUF: What do we do?
JEN: Come on.
PUF: Oh, what I--
JEN: We've got a show to record.
PUF: Ah, geez, there's nothing more I'd like to do.
Bossy, bossy, bossy.
JEN: Puf, thank you so much for being
my first guest on this new season of #AskFirebase.
And I brought you here specifically
because you answer more questions than anybody
else I know on Stackoverflow.
PUF: I do my fair share, indeed.
JEN: Yeah.
When I first started trying to get my score up and answer
some questions-- it's a challenge.
I had to find the hours where you were sleeping--
[LAUGHTER]
--so I could get some points.
I'd be, like, typing, and it would
be, like, someone has already answered this.
I'll refresh, and-- here you are.
Your finger is to the pulse of Firebase and the questions
that people have.
Now, because this is #AskFirebase,
I'm going to start by asking you a question that I have,
which is, how did you end up being part of the Firebase
team?
PUF: I started out, actually, when Firebase
was in beta for the first time.
And I started out as a user of Firebase,
as a developer using Firebase.
And then, Stackoverflow found that other developers
had questions about how to use Firebase.
So on my weekends, I started answering those questions.
I remember very proudly the first time
that one of the Firebase team members
actually complimented me on one of my answers,
saying that's a great answer, Frank.
I was like, whoa, very nice.
And one thing led to another.
I kept answering questions.
And then a year later, they reached out to me
and asked if I wanted to join the team
and become a Firebaser.
And I still answer a lot of questions on Stackoverflow.
JEN: I mean, that's a remarkable story.
I think that what we really want in order
to be able to answer your questions is,
you know, talk a little bit about how
to ask great questions, so you really
increase your chances of getting your question answered.
PUF: Yeah.
I often explain that the best way to ensure
that you get help is to make it easy for us to help you,
not just me, but everyone who is helping people
on Stackoverflow.
And there are a few basic rules that you
want to normally follow.
One of them for me is always, like, you
have to describe what the problem is that you have,
right?
So what's the behavior that you see?
What did you expect to see, right?
So I see A--
I expected B. Sometimes, I also want
to know why you think what you expected to see is better.
But let's ignore that.
[INAUDIBLE]
Mostly it's like.
What did you see?
What did you expect to see?
Very important, they're supposed to show the codes that
reproduces what you saw.
And it could be--
most often, it's code when it's on Stackoverflow, because it's
a programming site.
But it could also be the steps to reproduce, like,
I clicked on this button in the console and something happened
that I did not expect, right?
And when it comes to code, very important to give us
a small snippet of the code.
JEN: That is definitely a challenge.
I remember when I was getting my nanodegree from Udacity
and I'd have questions, my first inclination was just like,
here's the link to my GitHub Repo.
Have at it.
So figuring out the minimal code to show
to get your question answered can take some practice.
PUF: No, for sure.
Yeah, it's a very common problem, actually,
because you--
probably as a developer, when you are reaching out
to Stackoverflow, you have been trying
to solve this problem for a bit already.
And you've been stuck at it, so you're probably frustrated.
And you've spent time on it already.
But realize that the person you're asking for help has not.
They haven't suffered along with you.
And, right, the easier you make it for them to help you,
the more likely you are to get help.
So take a few steps back from the problem where
you are stuck, and try to reproduce, actually,
the problem in a minimal amount of code.
So if you have the time, and really
consider if you shouldn't make the time, do File, New Project,
and recreate just the problem in a minimal amount of code.
And this is what is called, in Stackoverflow,
an MCVE, a minimal, complete, verifiable example.
And it means that it must be both minimal and complete,
right?
So don't just take five lines from your entire program
and say, here's the crux of it, because most likely,
that's not where the problem is.
The problem is most likely in this bit before and after it.
JEN: Oh, yeah.
When it comes to the questions that I
love to answer in Stackoverflow, if we're talking specifically
about, let's say, iOS, because that's definitely my jam,
I love when I can just put it into a Playground.
If I can take your code and put it into a Playground
and run it, that's going to make it
much easier for me to help out.
PUF: Yeah.
I do a lot of JavaScript, so JSBin is my Playground.
And I just today copied some code
from a Stackoverflow question into a JSBin.
And I was just playing with it, actually,
as we came into the studio.
So I hope to figure that one out later today.
JEN: Nice.
OK, so far, we have that we want to have what happened,
and what you expected to happen, and the minimal steps or code
to reproduce it.
PUF: Yeah.
Do you know of other things that you like seeing in questions?
JEN: I like to see a question mark.
PUF: Oh, good one.
JEN: I know that sounds silly, but sometimes I'll
get to the end of something and realize that I'm not
sure what the question is.
So you know, sometimes, if I'm asking a question,
I want to make sure that I get to the end
and I'm like, if someone looked at this really quickly,
would they know what I was asking?
So if you have a question mark, then you
know you're on the right track to having a question.
PUF: No, that's actually a really good one.
We see this quite often, and on Stackoverflow, your question
might get closed sometimes.
And one of the reasons is, it's unclear what you're asking.
And a fairly common reason for that
is because there is not really a question in there.
Or maybe there are 20 questions in there,
and it's like, yeah, we can't really answer
20 questions efficiently.
So try to, indeed, make sure that the question is clear,
and that it's a limited scope of question.
And especially, the title or the subject of your question
is really important for that.
One of the things I sometimes see
is that people, right, almost use it
for tagging the question.
It's like, it's Android Studio, it's Oreo, it's Firebase,
database, and real time updates.
Like, yeah, that's not a title.
That's a list of tags, right?
And we have a tagging system for that.
So all good, but move that into the tags.
Now write a question into the first bar that you see.
JEN: Oh, yeah.
So that's it.
Yeah, if your title is a question,
then I guess you're off to a good start.
When it comes specifically to #AskFirebase,
the kind of questions that I love to answer are, you know,
ones that we can do mostly visually-- so something like,
how would I use this product in this setting,
or is it possible to do something.
Yeah.
PUF: For me, some of my personal favorites
are, how does something work, right, I don't understand,
because I actually often, when the question comes in,
don't know how it works.
And then I get to dive into the code or talk to the engineers
and get the answer from them.
So I learn a lot from those questions.
JEN: I love that our developers are
so excited to know when the next products are coming out.
We do get a lot of those questions.
But they are not going to get answered.
PUF: No timelines, no commitments.
It's a fairly unfortunate, but standard answer.
JEN: So certainly, sometimes, there
are questions that go beyond the realm of something
you'd want to put on Stackoverflow,
or maybe be answered on #AskFirebase--
PUF: For sure.
JEN: How do we know if something belongs to Support?
We'll put a link below, as well, so you can find out
how to access that.
PUF: No, that's a good question.
I often say that not every problem is a good question
for Stackoverflow, right?
And some of those are things like,
suddenly your app stops working with Firebase,
and you see all kinds of error messages,
and you didn't change really anything.
You didn't deploy a new version.
Yeah, chances that this is really related to your code
are small, right?
So it's better to actually first check the Firebase status page
to see if there's a known outage,
and if there isn't, reach out to Firebase Support,
because they might know more of what is going on.
And they can also dive deeper into seeing
what, for your specific project, might be going on there.
JEN: Ah, yeah, that's a really valid point.
So if something was working and suddenly it's not,
that would be a good time to escalate it to Support.
PUF: Yeah.
They will, of course, still ask you
to create one of those minimal complete verifiable examples
that reproduces it.
But that's mostly once they've figured out that there
is no outage going on.
But just reach out if you're uncertain about something
like that, because, your app being down
is something that we definitely want to take seriously.
And it's not something that's well served
on a site like Stackoverflow.
JEN: Or what about, maybe, if there
is a big change in the usage of your app,
even though you didn't change anything?
So maybe you had a function that was only
running a couple times, but now it
seems to be running a whole lot more.
Might that be something you'd want to escalate, as well?
PUF: Yeah, for sure, yeah.
We actually see those regularly where, indeed, there's
a sudden spike in usage, and as a developer,
you can't explain it.
Now, first, start asking around, because what we see quite often
is that it's one of the other developers on your team
that might suddenly be running an administrative process
every night, right?
That could be.
But if you can't find it, reach out to Firebase Support,
because they can see the statistics of your project
on a more, like, broader level.
And so, they might see it, like, huh, we
see this happening since that date,
and it happens every four hours.
That typically points to a back-end process on your site,
most likely.
But it's still something that we can help you find.
So these are things that Stackoverflow is not
going to be helpful for you, because the people
on Stackoverflow, the other developers that you're
asking for help, don't have that information.
JEN: Right, they can't access your app that way.
PUF: No.
So you might still end up with Jen and me, essentially.
But it will be something that is purely
focused on helping you troubleshoot your project,
instead of helping you with a programming problem
that anyone might encounter.
JEN: Great.
Well, thanks so much for coming on.
I couldn't think of a better person
to come talk about asking great questions.
PUF: Yeah, for sure.
And keep in mind that, right now that you
know how you can ask a better question on Stackoverflow,
that means that you're going to be asking a better
question next time.
That also means that we can help more people
on Stackoverflow use Firebase.
And that's what we're all here for.
Remember, you don't just have to ask questions.
If you know the answer to a question, be sure to answer it,
because who knows?
You might be the next person answering questions
on #AskFirebase.
JEN: Bye.
[MUSIC PLAYING]