Under the Radar 99: Effecting Change
00:00:00
◼
►
welcome to under the radar a show about
00:00:02
◼
►
independent iOS app development I'm
00:00:04
◼
►
Marco Arment and I'm David Smith under
00:00:06
◼
►
the radar is never longer than 30
00:00:07
◼
►
minutes so let's get started so today I
00:00:10
◼
►
wanted to talk about kind of related to
00:00:12
◼
►
a recent discussion about trying to get
00:00:13
◼
►
watch podcast playback and and I did a
00:00:17
◼
►
blog post this week basically saying
00:00:18
◼
►
like here's what we need to do this and
00:00:21
◼
►
I kind of want to talk about the process
00:00:23
◼
►
of trying to effect change with Apple
00:00:27
◼
►
and their products and their stores and
00:00:28
◼
►
everything else and this takes a lot of
00:00:30
◼
►
different forms I think the the first
00:00:33
◼
►
thing I wanted to talk about is how to
00:00:36
◼
►
know what you can and can't change if
00:00:39
◼
►
you are going to try to get something
00:00:42
◼
►
done at Apple or try to get a bug fix to
00:00:44
◼
►
try to get a feature done or try to get
00:00:45
◼
►
something some policy changed it helps
00:00:49
◼
►
to know the company well enough to know
00:00:51
◼
►
basically what fights aren't worth
00:00:53
◼
►
fighting and we know what's not worth
00:00:55
◼
►
your effort and what is if you want to
00:00:57
◼
►
like get bugs fixed you know or they get
00:01:00
◼
►
API changes to to some degree that stuff
00:01:03
◼
►
is usually possible those those are
00:01:05
◼
►
fights worth fighting a lot of people
00:01:07
◼
►
try to get unfair or arguable App Store
00:01:10
◼
►
rejections overturned I think it is
00:01:14
◼
►
worth challenging unfair or arguable app
00:01:18
◼
►
store rejections sometimes unfair to me
00:01:21
◼
►
means that the rules were not applied
00:01:23
◼
►
correctly or maybe consistently with
00:01:26
◼
►
other apps unfair does not mean you
00:01:28
◼
►
disagree with the rules that's a
00:01:30
◼
►
different situation so if you've been
00:01:32
◼
►
rejected for some way that you think is
00:01:34
◼
►
actually unfair like the rules were not
00:01:36
◼
►
applied correctly that is usually worth
00:01:38
◼
►
you know filing the appeal and if that
00:01:40
◼
►
doesn't work then maybe going public
00:01:42
◼
►
with it as for arguable App Store
00:01:44
◼
►
rejections that that's very broad that
00:01:48
◼
►
could be a lot of things if you keep
00:01:50
◼
►
hitting rules that are arguable maybe
00:01:53
◼
►
you should rethink what kind of apps
00:01:55
◼
►
you're trying to make because generally
00:01:56
◼
►
I recommend that you don't build a
00:01:59
◼
►
business or attempt to build a business
00:02:01
◼
►
on living on the edge of a rule you know
00:02:04
◼
►
if you stay away from the edges of the
00:02:05
◼
►
rules or the vagaries or the exact
00:02:08
◼
►
interpretations of certain rules you're
00:02:10
◼
►
generally gonna be happier and it's
00:02:11
◼
►
gonna be easier to do business both
00:02:13
◼
►
you know immediately and going forward
00:02:14
◼
►
so those are generally like that the
00:02:17
◼
►
things that generally you can affect
00:02:19
◼
►
bugs api's and you know bad App Store
00:02:23
◼
►
rejections and you know what you can
00:02:26
◼
►
change and take a number of different
00:02:27
◼
►
forms you know you can obviously you
00:02:29
◼
►
know with absolute rejections you can
00:02:30
◼
►
you can do the private appeal which I
00:02:31
◼
►
definitely recommend you do first those
00:02:34
◼
►
appeals often work I've heard a lot of
00:02:38
◼
►
stories from friends and other
00:02:39
◼
►
developers who who have appealed things
00:02:42
◼
►
and they do get overturned what's your
00:02:43
◼
►
experience with that
00:02:44
◼
►
I have many experiences with that and in
00:02:47
◼
►
general I would say that is I've had
00:02:49
◼
►
usually we can come to some
00:02:51
◼
►
understanding like often the source or a
00:02:57
◼
►
I think that Apple appreciates the
00:03:00
◼
►
working it through with them first in
00:03:02
◼
►
that sense of I've dealt with all kinds
00:03:05
◼
►
of variety of rejections for a variety
00:03:07
◼
►
of reasons and work you know I think the
00:03:09
◼
►
impression I've gotten is that you get
00:03:12
◼
►
farther by not running to the press not
00:03:15
◼
►
in trying to make a big fuss like maybe
00:03:17
◼
►
that is the the final straw like that
00:03:20
◼
►
you do down the road but that initially
00:03:22
◼
►
you work with them and you work with
00:03:24
◼
►
them patiently and you know with
00:03:26
◼
►
politeness and respect and you work
00:03:29
◼
►
through it because typically they're
00:03:31
◼
►
coming at you know it's like the issue
00:03:32
◼
►
unless you're just doing something wild
00:03:34
◼
►
and off the reservation like usually
00:03:37
◼
►
there is some sticking point that
00:03:38
◼
►
they're stuck on that you have to work
00:03:41
◼
►
out a way to work around that's you know
00:03:42
◼
►
there may be a small change that you can
00:03:44
◼
►
make to your app that will affect that
00:03:46
◼
►
change and my do you handle that in a
00:03:49
◼
►
respectful way that in my experience
00:03:51
◼
►
that that serve there that the appeal
00:03:53
◼
►
process and working those channels
00:03:55
◼
►
directly will often get you somewhere
00:03:57
◼
►
you know sometimes it may not be exactly
00:03:59
◼
►
where you would like to be you know
00:04:01
◼
►
sometimes you'll end up having to make
00:04:02
◼
►
changes to your app that may you know
00:04:05
◼
►
limit its functionality or make you feel
00:04:07
◼
►
like you've lost a competitive edge or
00:04:09
◼
►
something but by and large like that
00:04:12
◼
►
that process does work and while it can
00:04:15
◼
►
be you know frustrating in the moment
00:04:17
◼
►
and you know I've certainly been very
00:04:19
◼
►
emotional in the moment you know when
00:04:22
◼
►
you when I work on something for you
00:04:24
◼
►
know four months and you
00:04:25
◼
►
submit it and then you know it gets
00:04:27
◼
►
rejected for a reason that you don't
00:04:28
◼
►
agree with like that's a very emotional
00:04:30
◼
►
thing but it does ultimately you know
00:04:32
◼
►
work through and just being respectful
00:04:35
◼
►
making sure you're understanding the
00:04:38
◼
►
subtext around what they're saying I
00:04:40
◼
►
think is something that I've found to
00:04:41
◼
►
also be helpful that often like they're
00:04:43
◼
►
saying they're saying one thing and
00:04:45
◼
►
which is correct but it's because of
00:04:47
◼
►
something else like there's another
00:04:49
◼
►
there's an underlying reason that you're
00:04:50
◼
►
trying to find and if you end the better
00:04:52
◼
►
you can try to understand that or you
00:04:54
◼
►
know ask probing questions around that
00:04:56
◼
►
the better you're able to make the make
00:04:58
◼
►
a change cuz usually what I've ended up
00:04:59
◼
►
happening is it's the it's unlikely that
00:05:02
◼
►
they'll just they'll be like oh actually
00:05:04
◼
►
yet we hope we made a mistake you're
00:05:05
◼
►
fine now maybe they will maybe they
00:05:07
◼
►
won't in my experience usually it's a
00:05:08
◼
►
more likely scenario is you know here is
00:05:12
◼
►
this small change that I can say like if
00:05:15
◼
►
I did this would it be okay then and
00:05:17
◼
►
they often says well we can't pre
00:05:19
◼
►
approve it but that's you know heading
00:05:21
◼
►
in the right direction and then I make
00:05:22
◼
►
it and make a change every submit and
00:05:23
◼
►
then everything's fine but it does work
00:05:26
◼
►
like I've gone through that process
00:05:27
◼
►
enough times and you know gotten apps
00:05:30
◼
►
that were rejected you know ultimately
00:05:31
◼
►
approved often with you know relatively
00:05:34
◼
►
minor changes so it does work and it's
00:05:36
◼
►
something that I would encourage you to
00:05:37
◼
►
do and it's definitely the place to
00:05:38
◼
►
start that you know thankfully I'm very
00:05:41
◼
►
rarely if ever had to sort of make a
00:05:43
◼
►
bait try to make a big fuss to get
00:05:45
◼
►
something happened because it's sort of
00:05:47
◼
►
you're you're going all in at that point
00:05:49
◼
►
like it's either gonna work or it is it
00:05:50
◼
►
or it doesn't and even if it does work
00:05:53
◼
►
you're putting your app in kind of an
00:05:55
◼
►
awkward situation for its future going
00:05:57
◼
►
forward it's like it was you know if it
00:05:59
◼
►
was old ultimately accepted but not
00:06:01
◼
►
under the best circumstances like what
00:06:03
◼
►
does that mean in six months when you
00:06:05
◼
►
submit an a big update and you're kind
00:06:07
◼
►
of doubling down on the features that
00:06:08
◼
►
were questionable to start with so
00:06:10
◼
►
that's certainly my experience and you
00:06:12
◼
►
know it's it's it works and it's it's an
00:06:14
◼
►
encouraging process that's gotten a lot
00:06:16
◼
►
better because they wanted you know back
00:06:18
◼
►
you know whatever eight years ago when
00:06:21
◼
►
things were a much more like I don't
00:06:24
◼
►
think on Apple side they had quite
00:06:26
◼
►
dialed in their process there to the
00:06:28
◼
►
degree they have now and saying yeah
00:06:30
◼
►
that's a generous yeah it works better
00:06:32
◼
►
now yeah it's way better now all right
00:06:35
◼
►
so those are kind of the the things that
00:06:38
◼
►
effect change with there's also a lot of
00:06:40
◼
►
things that you can't really affect
00:06:42
◼
►
change and that your effort is probably
00:06:44
◼
►
wasted and it might even annoy Apple if
00:06:46
◼
►
you do it and this includes things like
00:06:49
◼
►
trying to get major App Store policies
00:06:52
◼
►
or business rules changed or get
00:06:55
◼
►
exceptions for yourself this is things
00:06:56
◼
►
like getting around the 30 percent cut
00:06:58
◼
►
for in-app purchases or subscriptions or
00:07:01
◼
►
things like that this also includes like
00:07:03
◼
►
campaigning for major technical changes
00:07:06
◼
►
they're very unlikely to do so things
00:07:07
◼
►
like allowing all iOS apps to run in the
00:07:10
◼
►
background indefinitely you know like if
00:07:12
◼
►
you just want to have like a persistent
00:07:13
◼
►
daemon running and iOS like that's never
00:07:14
◼
►
gonna happen they're never gonna allow
00:07:16
◼
►
that also you know things that combine
00:07:17
◼
►
both of these like both app store policy
00:07:20
◼
►
and major technical things like allowing
00:07:22
◼
►
side loading of iOS apps that's probably
00:07:26
◼
►
never gonna happen either like I respect
00:07:29
◼
►
people who try to make that case to
00:07:30
◼
►
Apple but I think it's futile I don't
00:07:32
◼
►
think that's ever going to happen and
00:07:34
◼
►
also kind of obvious things like
00:07:36
◼
►
anything that could be potentially
00:07:38
◼
►
abused like even if you have good
00:07:40
◼
►
intentions on something you want to be
00:07:42
◼
►
able to do you have to think about what
00:07:44
◼
►
what could a bad actor do with that same
00:07:47
◼
►
so anything that could be abused for
00:07:49
◼
►
privacy violations is a big one so
00:07:51
◼
►
things like access to restricted
00:07:53
◼
►
Hardware things like you know face ID
00:07:55
◼
►
touch ID you know secure Enclave stuff
00:07:58
◼
►
access to like the the restricted
00:08:01
◼
►
privacy sensitive API is like location
00:08:03
◼
►
or microphone without prompting the user
00:08:05
◼
►
stuff like that like if you need those
00:08:08
◼
►
things you're gonna have a hard time and
00:08:09
◼
►
that's that's probably not a great way
00:08:12
◼
►
to spend any any amount of effort trying
00:08:15
◼
►
to affect change at Apple and also that
00:08:17
◼
►
there's a big one that that's kind of
00:08:18
◼
►
sad but but it's reality and that's if
00:08:21
◼
►
you're trying to get bug fixes or API
00:08:25
◼
►
changes for either very old or very low
00:08:29
◼
►
priority api's or platforms and so you
00:08:33
◼
►
know this would include you know low
00:08:34
◼
►
priority platforms in general you know
00:08:36
◼
►
that would I would say things like TV OS
00:08:37
◼
►
is pretty low priority I would say
00:08:39
◼
►
unfortunately most of mac OS is pretty
00:08:41
◼
►
low priority so you know if you if you
00:08:43
◼
►
want some you know API enhanced on a low
00:08:46
◼
►
priority platform you're gonna have a
00:08:48
◼
►
hard time doing it even if even a bug
00:08:50
◼
►
fix you know if it's not a really
00:08:52
◼
►
cool bug you're in you might have a hard
00:08:54
◼
►
time even getting anybody to care about
00:08:55
◼
►
that or to have time to work on it
00:08:56
◼
►
because you know even if you make a
00:08:58
◼
►
great case for any for some kind of
00:09:01
◼
►
change like this if nobody's working on
00:09:03
◼
►
that thing you know there's no one to
00:09:06
◼
►
fix it it's not gonna happen you know a
00:09:08
◼
►
lot of Apple projects will go either
00:09:11
◼
►
completely unstaffed or staffed by like
00:09:14
◼
►
one person who also worked on 17 other
00:09:17
◼
►
things for years like like you know it's
00:09:20
◼
►
like who maintains like address book you
00:09:22
◼
►
know it's it's probably like one person
00:09:23
◼
►
who also maintains six other frameworks
00:09:25
◼
►
and even when you have a like a small
00:09:28
◼
►
staff on a project they might not have
00:09:30
◼
►
time to do your bug or your enhancement
00:09:33
◼
►
because every year when Apple does like
00:09:36
◼
►
you know big new headlining features
00:09:39
◼
►
that they market to customers or they
00:09:41
◼
►
have new hardware that think you need to
00:09:42
◼
►
take advantage over B be adopted for
00:09:44
◼
►
that before all those like one person or
00:09:47
◼
►
small teams that are working on like you
00:09:51
◼
►
know old apps or kind of you know less
00:09:53
◼
►
high priority things they have to adopt
00:09:56
◼
►
those marketing features first those
00:09:58
◼
►
that will always take priority over like
00:10:00
◼
►
you know old enhancements or bug fixes
00:10:02
◼
►
they also want to do so for a lot of
00:10:04
◼
►
projects at Apple there's literally not
00:10:07
◼
►
time for much of anything else like so
00:10:10
◼
►
if you file some bug with like you know
00:10:12
◼
►
I work like I work as a great example
00:10:14
◼
►
because it has a staff I work is staffed
00:10:17
◼
►
but I work is involved in so many
00:10:21
◼
►
marketing features every year that like
00:10:23
◼
►
that it has to adopt or that it has to
00:10:25
◼
►
make sure it works with so any change
00:10:27
◼
►
changes to iOS changes to like the
00:10:29
◼
►
multitasking the file picking document
00:10:30
◼
►
handling changes to iCloud collaboration
00:10:33
◼
►
sharing like they're like I work is
00:10:35
◼
►
involved in all sorts of crazy stuff and
00:10:37
◼
►
so if you have a like a feature request
00:10:41
◼
►
or some kind of minor bug and I work
00:10:43
◼
►
that's gonna take way lower priority
00:10:46
◼
►
than all the crazy marketing stuff they
00:10:48
◼
►
have to do every year just to keep up
00:10:50
◼
►
with Apple's own stuff so there's a lot
00:10:52
◼
►
of project at Apple for which like you
00:10:54
◼
►
can file bugs or you can you know write
00:10:57
◼
►
a nice blog post saying that that you
00:10:58
◼
►
you wish this this you know obscure bug
00:11:01
◼
►
would be fixed or that you wish this API
00:11:02
◼
►
was different but if it's a low priority
00:11:06
◼
►
or project or if it's just or if it's
00:11:07
◼
►
staff is way too busy doing other stuff
00:11:09
◼
►
you're gonna have really hard time with
00:11:11
◼
►
that and into that end I think also it's
00:11:15
◼
►
hard for us to have a sense of what the
00:11:18
◼
►
future is going to hold and because we
00:11:21
◼
►
don't like the we're at a disadvantage
00:11:22
◼
►
to for computers to Apple in that we're
00:11:25
◼
►
in the regard that they know what next
00:11:27
◼
►
year's release is going to look like and
00:11:29
◼
►
have a good idea probably of what the
00:11:31
◼
►
next release after that is going to look
00:11:32
◼
►
like and so if you're filing bugs
00:11:34
◼
►
against frameworks or things that Apple
00:11:37
◼
►
knows they have different plans for in
00:11:40
◼
►
then it's going to become even harder
00:11:42
◼
►
likely for your your bug or your issue
00:11:45
◼
►
to be addressed and maybe you know you
00:11:47
◼
►
would in the best case it'll be like
00:11:48
◼
►
rolled into the changes they're making
00:11:50
◼
►
or if they're replacing the framework
00:11:51
◼
►
with something better or you know those
00:11:54
◼
►
types of things may come into play but
00:11:55
◼
►
it's the awkward thing to if it's easy
00:11:58
◼
►
like all we see is the end results and
00:12:01
◼
►
we can't know what's you know what's
00:12:02
◼
►
coming in nine months whereas Apple does
00:12:04
◼
►
and so it's entirely possible that a bug
00:12:06
◼
►
comes in for a framework and they're
00:12:08
◼
►
like yeah we're not we're not gonna fix
00:12:09
◼
►
that because you know in ten months that
00:12:12
◼
►
frameworks going away or it's gonna be
00:12:14
◼
►
replaced with something better they're
00:12:16
◼
►
rather gonna put their engineering
00:12:17
◼
►
effort into that and so that can often
00:12:19
◼
►
you know it's a we we don't we file a
00:12:21
◼
►
bug you know can do all the right things
00:12:23
◼
►
an example project you know show how to
00:12:25
◼
►
reproduce it it may never get fixed and
00:12:28
◼
►
the reason why it may never get fixed
00:12:29
◼
►
could be any of the things you were just
00:12:31
◼
►
talking about in terms of staffing it
00:12:33
◼
►
could just be a question of priorities
00:12:34
◼
►
or the future you know it's impossible
00:12:37
◼
►
to know exactly why it happened and that
00:12:39
◼
►
consitency frustrating but that's just
00:12:40
◼
►
the reality i think we were sponsored
00:12:43
◼
►
this week by blue apron the number one
00:12:45
◼
►
recipe delivery service with the
00:12:46
◼
►
freshest ingredients blue aprons mission
00:12:49
◼
►
is to make incredible home cooking
00:12:50
◼
►
accessible to everyone and support a
00:12:52
◼
►
more sustainable food system they set
00:12:54
◼
►
the highest standards for ingredients
00:12:55
◼
►
and they're building a community of home
00:12:57
◼
►
chefs for less than $10 per meal blue
00:13:00
◼
►
apron delivers seasonal recipes along
00:13:02
◼
►
with fresh high-quality ingredients to
00:13:04
◼
►
make delicious home-cooked meals in 40
00:13:06
◼
►
minutes or less see our shows a little
00:13:08
◼
►
bit shorter than that is pretty good
00:13:09
◼
►
each meal comes with a step-by-step easy
00:13:11
◼
►
to follow a recipe card and
00:13:12
◼
►
pre-portioned ingredients and they ship
00:13:15
◼
►
the exact amount of each ingredient that
00:13:17
◼
►
the recipe requires so they are reducing
00:13:19
◼
►
food waste in the process and blue
00:13:21
◼
►
aprons freshness guarantee promises that
00:13:24
◼
►
every ingredient arrives ready to cook
00:13:25
◼
►
or they will make it right I personally
00:13:28
◼
►
have been a blue apron customer with our
00:13:30
◼
►
family for she's I don't know maybe two
00:13:32
◼
►
years now it's been a while now even
00:13:34
◼
►
before they were sponsoring any of our
00:13:35
◼
►
shows and we just loved blue apron their
00:13:39
◼
►
recipes are fantastic they we are we
00:13:42
◼
►
have really become better chefs as a
00:13:44
◼
►
result of having blue apron it is
00:13:46
◼
►
awesome we've tried so many new foods
00:13:48
◼
►
new cuisines that like things we would
00:13:50
◼
►
ever even ordered in a restaurant that
00:13:51
◼
►
all of a sudden we're cooking and then
00:13:53
◼
►
they're delicious and now we can happen
00:13:55
◼
►
we order those things in restaurants
00:13:56
◼
►
like it expand your horizons both for
00:13:59
◼
►
food and also it really does make you a
00:14:01
◼
►
better cook by just having so much more
00:14:03
◼
►
experience and on nights that we don't
00:14:05
◼
►
have blue apron we make better things
00:14:07
◼
►
now so you can choose from a variety of
00:14:09
◼
►
new recipes each week or you can just
00:14:11
◼
►
let their team choose for you and
00:14:12
◼
►
surprise you
00:14:13
◼
►
you can cook meals like suey glazed pork
00:14:16
◼
►
and rice cake with bok choy a marinated
00:14:17
◼
►
green beans skillet vegetable chili with
00:14:19
◼
►
cornmeal and cheddar drop biscuits or
00:14:21
◼
►
garlic butter shrimp and corn with green
00:14:23
◼
►
bean salad and roasted purple tomatoes
00:14:25
◼
►
there is no weekly commitment so you
00:14:27
◼
►
only get deliveries when you want them
00:14:29
◼
►
you can cancel them at any time you can
00:14:30
◼
►
skip some if you're gonna be out of town
00:14:32
◼
►
or whatever it doesn't matter so check
00:14:34
◼
►
out this week's menu and get three free
00:14:36
◼
►
meals with your first purchase including
00:14:38
◼
►
free shipping by going to blue apron
00:14:41
◼
►
comm slash radar you will love how great
00:14:44
◼
►
it feels and tastes to create incredible
00:14:46
◼
►
home-cooked meals blue apron
00:14:48
◼
►
so get started today by going to blue
00:14:49
◼
►
apron comm slash radar thank you to blue
00:14:52
◼
►
apron for supporting this show blue
00:14:53
◼
►
apron a better way to cook after all the
00:14:57
◼
►
discussion before of what you can change
00:14:59
◼
►
and what you can't change at Apple now
00:15:02
◼
►
let's talk about how you actually do
00:15:03
◼
►
that the best ways to affect change at
00:15:05
◼
►
Apple you know if you're gonna be doing
00:15:07
◼
►
something that's actually changeable how
00:15:09
◼
►
do you do it so first as we talked about
00:15:11
◼
►
a little bit earlier you should start
00:15:15
◼
►
with private methods first so very first
00:15:19
◼
►
thing with any bug or enhancement is
00:15:21
◼
►
file a radar and I and this is this is a
00:15:23
◼
►
hard thing to do because the radar
00:15:25
◼
►
system is it's almost punitive like it
00:15:28
◼
►
really is is almost abusive like in how
00:15:31
◼
►
much effort they want you to
00:15:34
◼
►
invest into filing bug reports even down
00:15:37
◼
►
to things like making sample projects
00:15:38
◼
►
with a which they were almost always
00:15:39
◼
►
requests for almost anything even if it
00:15:41
◼
►
doesn't seem to need it to the point
00:15:42
◼
►
where I almost think it's a delay tactic
00:15:43
◼
►
so they can just close more bugs and
00:15:44
◼
►
people don't do it but actually I don't
00:15:48
◼
►
almost think that I do think that but
00:15:49
◼
►
anyway so file a radar first and and the
00:15:53
◼
►
reason why is because radar is it's
00:15:57
◼
►
apples bug reporting system and radar is
00:15:59
◼
►
how Apple passes things around and
00:16:02
◼
►
prioritizes things internally so if you
00:16:05
◼
►
later want to write a blog post or email
00:16:08
◼
►
somebody in the company or bother
00:16:10
◼
►
somebody on Twitter who works there or
00:16:12
◼
►
something if you want to like escalate
00:16:14
◼
►
things further it really helps to have a
00:16:17
◼
►
radar number or series of numbers to
00:16:19
◼
►
point them to to say look this is what
00:16:21
◼
►
I'm talking about because then if they
00:16:24
◼
►
actually take up your case and if they
00:16:27
◼
►
want to prioritize something in the
00:16:28
◼
►
company or forward to somebody else or
00:16:30
◼
►
get to the right department or try to
00:16:32
◼
►
convince somebody that that they should
00:16:34
◼
►
be prioritised they are going to do that
00:16:36
◼
►
by passing around radar numbers to
00:16:38
◼
►
people and so it really helps a lot if
00:16:41
◼
►
you have a radar filed I'm not always
00:16:43
◼
►
the best at this and usually when they
00:16:45
◼
►
ask for a simple project I just get mad
00:16:46
◼
►
and just abandon it because I'm like I'm
00:16:47
◼
►
not gonna waste my time doing this you
00:16:49
◼
►
know you should fix this bug but that is
00:16:51
◼
►
the most effective way to do it and that
00:16:53
◼
►
you know and so generally radar first
00:16:56
◼
►
and then keep things private first if
00:17:00
◼
►
you can so obviously with App Store
00:17:01
◼
►
appeals you know do the private appeal
00:17:03
◼
►
first before you go public because most
00:17:06
◼
►
of the time you won't need to go public
00:17:07
◼
►
and that'll be nice when you have when
00:17:09
◼
►
you do need to go public
00:17:10
◼
►
it makes your case a little more
00:17:12
◼
►
defensible to them internally if you can
00:17:15
◼
►
save like if you basically tried to try
00:17:17
◼
►
to do it privately first you know
00:17:19
◼
►
similar thing with like when you're
00:17:20
◼
►
reporting security vulnerabilities I
00:17:21
◼
►
feel like I mean I don't know much about
00:17:23
◼
►
that community but I think it works in a
00:17:25
◼
►
similar way where it's like you try the
00:17:27
◼
►
private method first and then if it
00:17:28
◼
►
doesn't work then you consider going
00:17:31
◼
►
do you file radars and stuff and for all
00:17:34
◼
►
your stuff or do you just work it out
00:17:36
◼
►
yourself how do you do that
00:17:37
◼
►
so I have a lot of I've found a great
00:17:40
◼
►
many radars over the years and they I
00:17:42
◼
►
think radars tend to take different
00:17:45
◼
►
forms like some of my radars
00:17:48
◼
►
are just straight-up bug reports like
00:17:50
◼
►
I'm just saying I use this API in a way
00:17:53
◼
►
that it is documented that it should
00:17:54
◼
►
work and it doesn't and like those ones
00:17:56
◼
►
are relatively straightforward and you
00:17:59
◼
►
know that's I've that that's sort of one
00:18:02
◼
►
side and the other side of the radars
00:18:03
◼
►
that I file tend to be and I write them
00:18:07
◼
►
this way actually now I write they're
00:18:09
◼
►
almost just letters like they're like
00:18:11
◼
►
like open letters to Apple say or like
00:18:13
◼
►
guys closed letters to Apple saying I
00:18:15
◼
►
believe it's called letters yeah it's
00:18:17
◼
►
like here's this thing that you know
00:18:20
◼
►
like hi I'm I make these apps these and
00:18:23
◼
►
you know this is something that I'd like
00:18:25
◼
►
to be able to do with them at a current
00:18:26
◼
►
API I can't do and I try and give as
00:18:28
◼
►
much context and just sort of I try to
00:18:32
◼
►
flesh out the not just like what I want
00:18:35
◼
►
like not just the like the technical
00:18:36
◼
►
like I wish this API would do XYZ but I
00:18:40
◼
►
try and provide like real-world
00:18:42
◼
►
situations and examples as to why you
00:18:45
◼
►
know sometimes it's like Andy you know
00:18:47
◼
►
he even like here's a link to my app
00:18:48
◼
►
like here you can go see where this wood
00:18:51
◼
►
will fit in like to try and build a case
00:18:53
◼
►
because as best I can understand this
00:18:56
◼
►
you have I've several friends who work
00:18:58
◼
►
at Apple like I know a lot of people
00:18:59
◼
►
that the impression I get is that like
00:19:01
◼
►
radar is this funny thing because we see
00:19:04
◼
►
this very kind of sort of terse opaque
00:19:08
◼
►
thing on the outside where we put things
00:19:10
◼
►
in and then we'll either get you know
00:19:12
◼
►
it's like just duplicate or nothing will
00:19:13
◼
►
happen at all for a long period of time
00:19:16
◼
►
but internally with Apple you know they
00:19:19
◼
►
have a sort of discussions and threads
00:19:24
◼
►
and things that are going on around you
00:19:27
◼
►
know the radar that I filed that is
00:19:28
◼
►
happening internally and that is the
00:19:31
◼
►
part that I'm trying to you know it
00:19:33
◼
►
provide as much information as I can to
00:19:35
◼
►
make you know engineers within Apple's
00:19:37
◼
►
case our lives easy because the reality
00:19:40
◼
►
is with almost any change that we want
00:19:42
◼
►
yes there's like there's gonna probably
00:19:44
◼
►
going to be someone at Apple who thinks
00:19:45
◼
►
yeah this is a good idea that might be
00:19:47
◼
►
other people who think this that's not
00:19:49
◼
►
such a great idea and they're gonna be
00:19:51
◼
►
having you know it with any engineering
00:19:52
◼
►
choice there's usually a you know
00:19:54
◼
►
there's benefits and and you know just
00:19:56
◼
►
disadvantages and you know they can they
00:20:00
◼
►
they may be thinking even in a broader
00:20:01
◼
►
sense because
00:20:02
◼
►
they have to not just think of your
00:20:03
◼
►
specific case but they need to think of
00:20:05
◼
►
the worst case of someone else using
00:20:06
◼
►
this API but they're having this
00:20:09
◼
►
discussion internally and like all I'm
00:20:11
◼
►
really trying to do is if there is
00:20:13
◼
►
somebody who is going to be advocating
00:20:15
◼
►
for you know for the changes that I want
00:20:17
◼
►
I want to provide that person with all
00:20:20
◼
►
of the you know as men as much as I can
00:20:22
◼
►
in terms of you know support and
00:20:24
◼
►
evidence to make that change happen and
00:20:27
◼
►
so I just write it write as much of
00:20:28
◼
►
these as I can and it can feel a little
00:20:30
◼
►
bit funny in the sense that you know the
00:20:32
◼
►
radar system is all about you know like
00:20:34
◼
►
what was the expected result and what
00:20:37
◼
►
did happen and like it gets it's
00:20:38
◼
►
obviously structured for technical
00:20:40
◼
►
reports but I find if I'm plowing it and
00:20:43
◼
►
handsome requests like that's what I do
00:20:45
◼
►
I mean it's so hard to know how would
00:20:48
◼
►
the degree to which like that is
00:20:49
◼
►
actually effective but it's just what
00:20:51
◼
►
I've over the years what I've sort of
00:20:53
◼
►
gotten comfortable with doing and I've
00:20:55
◼
►
never heard anything bad about it in
00:20:58
◼
►
terms of like I've never had them closed
00:20:59
◼
►
it's like irrelevant or poorly or you
00:21:02
◼
►
know incomplete or written or some like
00:21:04
◼
►
that does like it seems like that it's
00:21:05
◼
►
just a a mechanism by which you can have
00:21:07
◼
►
private communication with Apple that
00:21:11
◼
►
someone inside of engineering will
00:21:13
◼
►
actually look at and especially also I
00:21:17
◼
►
think in communication like if
00:21:19
◼
►
functionally the way you know the
00:21:21
◼
►
developer relation the system works is
00:21:23
◼
►
you know we can file a radar and then
00:21:25
◼
►
there's a collection of evangelists you
00:21:27
◼
►
know like all of these essentially the
00:21:28
◼
►
developer relations team is there to
00:21:30
◼
►
interact with developers personally so
00:21:34
◼
►
usually what I will end up doing is I'll
00:21:35
◼
►
file a radar you know sort of put that
00:21:38
◼
►
out there and then depending on what the
00:21:41
◼
►
nature of the situation Han sment
00:21:43
◼
►
request is if I know the Evangelist who
00:21:45
◼
►
it's you know most closely fit that I'll
00:21:48
◼
►
reach out to them and I'll say hey
00:21:49
◼
►
here's this thing that I filed you know
00:21:52
◼
►
here's the reason why I'm asking it if
00:21:53
◼
►
you have any questions or things you
00:21:55
◼
►
know please let me know and you know
00:21:56
◼
►
sort of like in the same way that you
00:21:58
◼
►
may you know it's like you submit your
00:21:59
◼
►
resume on the system and then you also
00:22:01
◼
►
may follow up with an email to a
00:22:03
◼
►
recruiter or something like you know you
00:22:05
◼
►
kind of you hit it in both ways just to
00:22:07
◼
►
make it that much more likely that
00:22:08
◼
►
someone's going to look at it and they
00:22:10
◼
►
may disagree with it they may ignore it
00:22:11
◼
►
they may not end up being effective but
00:22:13
◼
►
at least someone has looked at it in
00:22:15
◼
►
they've made an active decision to you
00:22:17
◼
►
know to not do it also the the timing of
00:22:21
◼
►
when you file bugs or when you go public
00:22:24
◼
►
with things matters a lot with Apple
00:22:26
◼
►
because you know Apple is a company full
00:22:28
◼
►
of human beings and they're on a tight
00:22:30
◼
►
schedule and they all have you know more
00:22:33
◼
►
things on their plate than they have
00:22:34
◼
►
time to do but the good thing is we know
00:22:36
◼
►
their schedule their scheduled matches
00:22:38
◼
►
the release schedule of their products
00:22:39
◼
►
and their operating systems so we know
00:22:41
◼
►
the schedule so we can use it to our
00:22:43
◼
►
so generally like if you if you file a
00:22:46
◼
►
bug or you you know bring up a public
00:22:48
◼
►
thing at a time when they're really busy
00:22:51
◼
►
doing other stuff it's gonna get lost in
00:22:53
◼
►
the shuffle or it's more likely to get
00:22:54
◼
►
lost in the shuffle so the best time to
00:22:56
◼
►
file bugs is when they are actively
00:22:59
◼
►
looking for bugs ravenously and that is
00:23:01
◼
►
early betas like if like right after
00:23:04
◼
►
WWDC when you get those betas and you're
00:23:08
◼
►
trying out the new stuff they are
00:23:09
◼
►
looking very closely at bugs people are
00:23:11
◼
►
filing so if you want things to happen
00:23:13
◼
►
that's the time to do it like it's like
00:23:16
◼
►
the code is like open it's like being
00:23:18
◼
►
worked on that's the time when they can
00:23:20
◼
►
allocate lots of their own time to
00:23:22
◼
►
looking at your bugs and considering
00:23:23
◼
►
them the worst time to file bugs or to
00:23:27
◼
►
to make requests in public is probably
00:23:31
◼
►
right before WWDC because then it like
00:23:35
◼
►
they are in a massive crunch time every
00:23:37
◼
►
year trying to get stuff done for those
00:23:39
◼
►
first betas like for those first builds
00:23:41
◼
►
and anything you try to have them do
00:23:44
◼
►
during the time they don't have to do is
00:23:45
◼
►
going to get dropped on the floor
00:23:46
◼
►
because they're just they're way too
00:23:48
◼
►
busy also similarly when it's right
00:23:51
◼
►
before the GM's come out in the fall
00:23:53
◼
►
when there's about to be a new hardware
00:23:55
◼
►
released they have no time to consider
00:23:57
◼
►
your enhancement requests that like the
00:23:58
◼
►
OS is basically done at that point like
00:24:00
◼
►
that's a terrible time to do it a good
00:24:02
◼
►
time to do it also besides the early
00:24:04
◼
►
betas is I would say the very beginning
00:24:07
◼
►
of the year January through March maybe
00:24:09
◼
►
because like usually you're doing like a
00:24:11
◼
►
kind of an intermediary release cycles
00:24:12
◼
►
like like the 0.2 0.3 zuv the OS is it's
00:24:16
◼
►
kind of a quieter time it's a time when
00:24:17
◼
►
they might have more time to allocate
00:24:19
◼
►
towards improvements rather than just
00:24:21
◼
►
you know core features I also want to
00:24:24
◼
►
spend a quick moment talking about
00:24:27
◼
►
tone and framing when you go public so
00:24:30
◼
►
if you're gonna write a blog post or
00:24:32
◼
►
you're gonna have you know any kind of
00:24:33
◼
►
public you know outing of what Apple is
00:24:36
◼
►
is doing or not doing what you wanted to
00:24:38
◼
►
do if you're going to become the
00:24:39
◼
►
elephant in the room yes yes it helps to
00:24:44
◼
►
the way you frame it and this actually
00:24:46
◼
►
should also probably apply to the way
00:24:48
◼
►
you write bug reports to the framing is
00:24:49
◼
►
very important you want to instead of
00:24:52
◼
►
just saying like I want this to be fixed
00:24:54
◼
►
well that's you know you need to frame
00:24:57
◼
►
it as here's why it helps Apple users
00:25:01
◼
►
and developers and they care about them
00:25:04
◼
►
in that order developers are really last
00:25:06
◼
►
in that in that trio like you need to
00:25:08
◼
►
tell them why Apple needs to do this and
00:25:10
◼
►
why that will benefit apples customers
00:25:13
◼
►
or the users of your software like
00:25:15
◼
►
that's what you need to tell them and
00:25:16
◼
►
what you what you as a developer need is
00:25:19
◼
►
really low on the list because if you
00:25:21
◼
►
tell them something that will benefit
00:25:22
◼
►
Apple your chances are better and the
00:25:25
◼
►
tone that you use in the in the wording
00:25:27
◼
►
and just everything headlines titles the
00:25:31
◼
►
best way to do it you know Apple is
00:25:33
◼
►
again this is a company full of people I
00:25:36
◼
►
have found that that culturally many of
00:25:39
◼
►
the people there are pretty sensitive to
00:25:41
◼
►
the tone with which requests and
00:25:43
◼
►
especially complaints are made the best
00:25:46
◼
►
thing you can do is to basically remain
00:25:49
◼
►
factual and state the facts as neutrally
00:25:54
◼
►
as you can any requests or or you know
00:25:58
◼
►
criticism that you're making of them be
00:26:00
◼
►
civil and be constructive as much as
00:26:03
◼
►
possible because what you don't want to
00:26:06
◼
►
do is you don't want to give them a
00:26:08
◼
►
reason to disregard you as just being
00:26:11
◼
►
mean or just being a jerk or being
00:26:13
◼
►
unreasonable you want to give you want
00:26:15
◼
►
you want to say here's the facts here's
00:26:17
◼
►
what we need or here's what I need or
00:26:19
◼
►
here's what happened
00:26:20
◼
►
and you know here's what I think should
00:26:22
◼
►
happen and it's also important not to
00:26:26
◼
►
they're very sensitive about this not to
00:26:29
◼
►
put words in their mouth or not to
00:26:30
◼
►
ascribe motivations to Apple you know
00:26:34
◼
►
there was a kerfuffle last year with
00:26:36
◼
►
with a developer where like he recorded
00:26:39
◼
►
the conversation with
00:26:41
◼
►
on the phone like without their
00:26:42
◼
►
permission like that you know that's
00:26:43
◼
►
something you shouldn't they don't do
00:26:45
◼
►
that and and don't ascribe motivations
00:26:48
◼
►
to Apple like Apple did this because
00:26:49
◼
►
they they hate me or or because they're
00:26:52
◼
►
being mean or or because they they don't
00:26:54
◼
►
want this kind of app but you know it
00:26:55
◼
►
like unless they told you that in some
00:26:57
◼
►
kind of public way like you know don't
00:26:59
◼
►
ascribe motivations or malice to Apple
00:27:03
◼
►
just keep it factual keep it neutral and
00:27:06
◼
►
and that and I mean obviously this goes
00:27:08
◼
►
for a lot of communication in the adult
00:27:10
◼
►
world like this is what you should do in
00:27:12
◼
►
general but but yeah like if you keep it
00:27:15
◼
►
factual neutral and constructive it it
00:27:20
◼
►
increases your chances that you can be
00:27:22
◼
►
taken seriously and that will improve
00:27:24
◼
►
your chances of getting done what you
00:27:26
◼
►
actually want to get done yeah I mean
00:27:28
◼
►
just in general like that's just good
00:27:29
◼
►
advice for life probably but trying to
00:27:32
◼
►
it's understanding that I think it's
00:27:35
◼
►
easy to think of Apple as a like a
00:27:38
◼
►
faceless entity right that it's like
00:27:41
◼
►
that doesn't have feelings that doesn't
00:27:43
◼
►
have emotions that is just this cold
00:27:46
◼
►
this cold machine that you know takes in
00:27:49
◼
►
code and how puts money like that but
00:27:52
◼
►
that's not the reality like it is you
00:27:54
◼
►
are ultimately trying to if you have a
00:27:57
◼
►
change that you'd like to affect you are
00:27:59
◼
►
trying to convince people to do that and
00:28:02
◼
►
the best way to affect people is to you
00:28:05
◼
►
know be respectful of them and to be
00:28:07
◼
►
presenting your arguments in ways that
00:28:10
◼
►
is hopefully going to ultimately make
00:28:11
◼
►
them look good that is going to you know
00:28:13
◼
►
make their their life better in some way
00:28:16
◼
►
and you're gonna have way more Luck's
00:28:18
◼
►
with that than just yelling and
00:28:19
◼
►
screaming and throwing a fit because
00:28:21
◼
►
that's never that's not gonna help
00:28:23
◼
►
anything like that doesn't help if
00:28:24
◼
►
you're a two-year-old and it's
00:28:25
◼
►
definitely not gonna help in trying to
00:28:27
◼
►
effect change into a massive you know
00:28:29
◼
►
billion dollar company exactly because
00:28:31
◼
►
anything anything you are arguing you
00:28:34
◼
►
know as you said earlier you are
00:28:35
◼
►
providing ammo for an internal
00:28:37
◼
►
discussion you want your side of the
00:28:39
◼
►
argument to win internally and so if you
00:28:42
◼
►
make a really good case people inside
00:28:45
◼
►
can use that to win arguments to effect
00:28:48
◼
►
change to do what you want so it really
00:28:50
◼
►
helps a lot that you make the best case
00:28:52
◼
►
possible and that you you know
00:28:54
◼
►
use things wisely to even argue about in
00:28:56
◼
►
the first place and when you do do it
00:28:58
◼
►
right play by their system play by their
00:29:00
◼
►
rules and play by general adult civility
00:29:02
◼
►
rules and you will you will have much
00:29:04
◼
►
better chances of succeeding well that's
00:29:07
◼
►
all the time we have for this week
00:29:08
◼
►
best of luck with everybody with your
00:29:09
◼
►
effecting changes efforts and I'll talk
00:29:11
◼
►
to you next week bye