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