Developing Perspective

#196: Faust had it easy.


00:00:00   Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing

00:00:04   news of note in iOS development, Apple and the like. I'm your host, David Smith. I'm

00:00:08   an independent iOS and Mac developer based in Herne, Virginia. This is show number 196.

00:00:13   Today is Wednesday, September 24th. Developing Perspective is never longer than 15 minutes.

00:00:19   So let's get started. So last week, we had the fun, the excitement, the spectacle that

00:00:26   That is the week where iOS and the new iPhones drop.

00:00:30   In the last couple of years, this

00:00:32   has always been in the same week.

00:00:33   iOS drops on the Wednesday.

00:00:35   The iPhones come out on the Friday.

00:00:37   You have about a week before that,

00:00:39   where the event's on the Tuesday before traditionally,

00:00:43   and Apple seems to like this kind of pattern.

00:00:46   And so it's always a bit of an intense and insane time

00:00:49   as an app developer, because you are

00:00:53   trying to balance a couple of things that

00:00:55   impossible to ultimately to balance correctly or at least to think of what

00:01:00   would be the correct thing to do. And mostly what I'm going to be talking

00:01:02   about today is the kind of impossible process that we have we as developers

00:01:08   have to go through to be compatible with the new stuff as quickly as possible

00:01:15   while yet still delivering quality experiences to our customers and while

00:01:19   while staying sane and healthy.

00:01:24   So over the summer, you know, so whatever, since WWDC the second week in June or somewhere

00:01:30   around then, Apple comes out and they present the new stuff.

00:01:35   Here's iOS 8 in this case.

00:01:37   Here's all the cool new stuff.

00:01:39   Here's the sessions where you can go and we'll talk about how it's going to work, what it

00:01:42   looks like, etc.

00:01:44   And you go to WWDC or you watch the videos at home or however you do that.

00:01:48   And you take a look and you see all the cool new stuff,

00:01:50   and you go download the betas, beta 1 of the new OS.

00:01:55   And if you're anything like me, you start to look at it,

00:01:58   and you start to be like, oh, that's really cool.

00:02:00   Let me try it.

00:02:01   And sometimes it works, and sometimes it doesn't.

00:02:04   Because when Apple says this is beta 1, in some ways,

00:02:08   I think they're really more honest to say,

00:02:10   this is public alpha 1.

00:02:13   The first couple of betas of new versions of iOS,

00:02:16   especially for new API, not just improvements on existing things,

00:02:20   but if it's a whole new set of functionality, if it's healthkit,

00:02:24   if it's metal, whatever it is.

00:02:25   I imagine there's always big problems and changes that

00:02:29   will come out in those first couple of betas.

00:02:31   And that's in some ways good.

00:02:33   That's the whole point of that process,

00:02:35   is for us to give feedback about it, to actually see it in use.

00:02:38   And honestly, from talking to a lot of engineers at Apple,

00:02:40   it's just the reality of they have

00:02:42   this kind of immovable arbitrary date

00:02:44   that they have to ship by.

00:02:46   And so it's as good as they could get it by that date.

00:02:50   And sometimes, features aren't even

00:02:52   available in the first betas.

00:02:53   So you have that problem going on with you, too.

00:02:56   So you go through the summer, and you look at those changes.

00:02:59   And the betas improve one over one.

00:03:02   I think this year, I went onto my carry phone.

00:03:05   I think it was beta 4?

00:03:07   Beta 4?

00:03:07   Beta 5?

00:03:08   I think it was beta 4.

00:03:09   I put it on my phone.

00:03:10   I tend to wait a little while, especially

00:03:12   a year like this where there was less, it was less groundbreaking in terms of the functionalities

00:03:19   and things that were added to it are things that are mostly, you know, new functionalities

00:03:24   that other developers will add to their applications rather than if I was seven, I think I went

00:03:28   beta two on my main phone just because I wanted to experience how Apple is trying to change

00:03:34   the interaction model. But this year, I did that. And you know, we run through that process

00:03:40   all through the summer, and then you kind of probably late August, you get a pretty

00:03:44   good sense of when the event's going to be.

00:03:46   And you start having to make decisions about your applications.

00:03:48   You start having to look at your portfolio of apps or your main app or whatever it is

00:03:52   and say, "How am I going to get this ready for that first launch?

00:03:58   What features am I going to add?

00:03:59   What issues or bugs are going to come up?

00:04:02   What rumors are coming out of, you know, like the various rumor mills about what its device

00:04:08   changes are going to come into place? What are the things that at WWDC you kind of picked

00:04:12   up on in terms of the reading between the lines about what's going to change? And you

00:04:17   have to start making some really, really hard decisions. And a lot of these are really hard

00:04:21   because you aren't necessarily making very important for your business and for your apps

00:04:27   decisions without complete information, right? I, you know, this fall, I was looking through

00:04:33   and it's like you hear I heard all these rumors that there are big phones coming out that

00:04:37   There's going to be a big phone.

00:04:38   We had a lot of estimates about what the resolutions are going

00:04:41   to be, how that's going to work.

00:04:42   We have the adaptive layout session

00:04:44   at WWDC, which kind of heads in that direction.

00:04:47   We have the resizable simulator.

00:04:49   There's lots of things that are indicating,

00:04:51   hey, this is coming.

00:04:53   But knowing that it's coming in the abstract

00:04:57   and actually being ready for it are two very different things.

00:05:01   It was good to be aware-- this is something

00:05:03   that I should be thinking about and I should be playing with.

00:05:06   a bunch of my apps at kind of weird resolutions in the simulator to see how they would break

00:05:11   and I fix them a bit.

00:05:12   But the reality is, when I look at that, is I can't make my app ready for any possible

00:05:20   size and any possible layout and any possible screen scaling based purely on rumors and

00:05:27   expect it to be perfect from day one.

00:05:30   And so you have this weird deal you have to make with yourself of like, am I going to

00:05:35   spend lots of time on something without information that I know I'm necessarily

00:05:39   going to be spinning my wheels a little bit or am I just going to wait am I just

00:05:45   going to wait and see until I have all the information be reasonably prepared

00:05:49   and dive in and the reality is you kind of are balancing a couple of different

00:05:53   trade-offs right so your some of the trade-offs you have to be thinking about

00:05:59   is so the first one and that's probably most significant this time of year is

00:06:03   is the App Review delay.

00:06:05   App Review, I feel so bad for those people,

00:06:09   those wonderful people in App Review this time of year,

00:06:12   who are, I'm sure, just being absolutely crushed

00:06:16   under just an overwhelming wave of updates.

00:06:19   I'm not entirely sure how many they've pushed out at this point.

00:06:22   I actually expect probably at the end of this week,

00:06:24   I'll do an analysis of that because I love playing with numbers.

00:06:27   But they are probably doing hundreds of thousands of app updates

00:06:32   app updates, if I had to guess, in that kind of range.

00:06:34   And many of which are going to be rejected

00:06:37   or are going to have to come back and forth,

00:06:39   or the people who are misunderstanding new rules.

00:06:41   And so App Review is going to take a long time.

00:06:44   I think the current estimate that I

00:06:45   saw from the App Review Times website that

00:06:50   is something like it's around 10 days right now, which

00:06:52   is a long time in general, and especially feels especially

00:06:58   long when your customers are going to be expecting things

00:07:01   quicker and quicker.

00:07:02   And so you have this pressure to say,

00:07:04   do I need to be in that first initial wave

00:07:07   that Apple opens the gates to submissions at whatever it is,

00:07:12   4 PM Pacific on announcement day or something like that.

00:07:16   And do I need my build ready to go at that moment

00:07:20   so I can be one of the first in lines,

00:07:21   so I can be ready on day one?

00:07:23   That's a first consideration.

00:07:25   Second consideration, you have weird considerations

00:07:27   about marketing.

00:07:29   Now on the one hand, it's awesome to be first.

00:07:31   It's awesome to have these things out and available

00:07:34   on day one.

00:07:35   Apple did a huge range of features in the App Store.

00:07:39   There's a lot of press talking about it,

00:07:40   and press looking for opportunities

00:07:42   to highlight apps that are taking advantage

00:07:44   of new capabilities, new cool things that

00:07:46   weren't possible before.

00:07:48   That's all really cool.

00:07:49   But that's also kind of bad, because there

00:07:52   are more apps being launched and updated at once,

00:07:56   probably last week and this week,

00:07:58   than there are at most other times of the year,

00:08:00   other than perhaps the week couple weeks before Christmas.

00:08:04   Like, it is a very hard time in some ways

00:08:06   to get attention because you're not the only one vying for it.

00:08:10   If you wait a week, you wait a couple weeks,

00:08:12   the first week of October, and you

00:08:13   launch this great new thing with awesome new features,

00:08:16   in some ways it's easier to get attention.

00:08:18   So you have to balance those issues.

00:08:21   Another issue, of course, is there's always

00:08:22   going to be bugs and things that are

00:08:24   going to happen to your applications, going from one OS

00:08:27   to another.

00:08:27   As much as you try to be clever and thoughtful and defensive in your application coding,

00:08:35   in my experience it is impossible to catch all the issues that are going to come up when

00:08:39   the final GM comes and you launch your application on it for the first time.

00:08:43   And the crazy thing too is you won't know until that final GM if it's going to break.

00:08:48   I had a couple of my applications that were fine in terms of they weren't updated to take

00:08:53   advantage of the new stuff, but the old version ran fine.

00:08:56   Beta 1, beta 2, beta 3, beta 4, beta 5, last beta worked fine.

00:08:59   GM, it crashes.

00:09:01   It crashes every time you start to do something.

00:09:04   It's like, oh, OK.

00:09:06   So I just found out that I have this problem essentially

00:09:11   a few minutes before submissions open up.

00:09:15   I downloaded the last GM and tried.

00:09:19   And so those kind of bugs and issues

00:09:20   are always going to be a weird thing that you're going to have to try and balance between.

00:09:26   Because as starting at that, you know, starting when Apple pulls the trigger and launches

00:09:31   it out into the world, it seems like right now we're getting, you know, 10, 20, 30, 40%

00:09:37   of people updating within the first week. And it goes pretty steadily thereafter. Like

00:09:41   Apple is very good at pushing out these updates. And so a lot of my customers are going to

00:09:45   start complaining and saying, hey, it doesn't work. Hey, it doesn't work. So I need to be

00:09:49   But at the same time, if I rush something out, I'm also going to probably introduce

00:09:53   bugs because when I rush something out and don't have time to thoroughly test it, try

00:09:57   it, beta test it with friends, etc., there's not going to be other trouble.

00:10:01   And so it's impossible to really balance between those and you just kind of have to do the

00:10:04   best you can.

00:10:05   You have to think about things like, are these new features worth it?

00:10:08   Am I going to get a return on them?

00:10:10   Am I putting something out?

00:10:12   There's a term, I think it was Horst that first used it, where it was hygiene features.

00:10:18   Having to do work that is just because people expect it

00:10:23   at this point is really tough as a developer,

00:10:26   especially if you're an independent or a small company.

00:10:29   Because doing those features, you're

00:10:31   not really going to get credit for.

00:10:32   You're not necessarily building a lot of goodwill

00:10:34   because people expect it.

00:10:35   It's like, why doesn't it work on the big phone?

00:10:37   I just bought my big phone.

00:10:38   Why doesn't the app work?

00:10:39   When the app works, they're like, great.

00:10:41   Now it works on my big phone.

00:10:42   They didn't see that as a feature that you added,

00:10:44   even if it took lots and lots of work.

00:10:47   It's just that's the thing that you had to do in order

00:10:53   to reach the minimum bar.

00:10:56   And so it's really kind of a tricky trade-off

00:10:58   that you have to think through what's worth spending time on

00:11:00   and what isn't.

00:11:02   And then the last thing is you have

00:11:04   to understand what your tolerance is for wasted effort.

00:11:07   There's a lot of times that will happen in iOS where

00:11:09   if you work too much on the early betas,

00:11:12   you're going to be stuck working around weird issues

00:11:15   and building all this code that kind of is working around

00:11:18   an issue that sometimes will just be a bug that

00:11:20   gets fixed in the final GM.

00:11:22   Sometimes it is a intentional limitation or issue

00:11:26   that only makes sense once the full range of capabilities

00:11:29   of the final phone or something gets laid out.

00:11:32   You have to decide how much your tolerance is for that.

00:11:35   So given all those, you have to decide

00:11:38   what's your approach going to be.

00:11:39   And first, before I dive into what I did this year,

00:11:42   I'll talk through at a high level what

00:11:43   are the things you can do.

00:11:44   You can kind of be like the as ready as you could ever be.

00:11:47   You're working feverishly.

00:11:48   You're battling through buggy betas and API changes.

00:11:50   You're getting ready as absolutely possible

00:11:52   for that estimated release date.

00:11:54   You have builds ready to go at a moment's notice.

00:11:57   As soon as Apple flips the switch,

00:11:58   you're uploading the build in iTunes Connect.

00:12:00   You are as fast as you can be.

00:12:02   If you're a big company, this is almost certainly

00:12:04   what you're going to be doing.

00:12:05   If you work for Tumblr or Twitter or someone like that,

00:12:07   you're a big company who is vitally important

00:12:10   with a large team, yet you can kind of spin your wheels

00:12:13   in some ways, and that's fine.

00:12:14   probably what you're doing.

00:12:15   You're going to do a measured compatibility thing where you're kind of making sure things

00:12:20   don't break.

00:12:21   You have some amount of changes and fixes vaguely ready to go.

00:12:26   You'll download the latest GM.

00:12:28   You'll submit it in a day or two, maybe something like that.

00:12:30   Maybe you're kind of ready.

00:12:32   Maybe you're kind of keeping an eye on changes.

00:12:34   You have plans in place for basic compatibility, but you don't really begin in earnest until

00:12:38   you have all the information about what it is that those changes are going to involve.

00:12:43   Or maybe you just wait and see.

00:12:44   and you don't really start thinking about this until the final announcement and you

00:12:49   have all the information, you have the final GM and you can get going.

00:12:52   Those are kind of the four general spectra, the spectrum between which you can work.

00:12:57   This year, I ended up mostly taking the approach of kind of the second one and a little bit

00:13:02   of the third one for a few of my apps where I was definitely not working feverishly and

00:13:07   battling betas over the summer.

00:13:08   I've done that before, and it is just so soul-crushing.

00:13:14   But this year, what I did is I made sure that my apps

00:13:16   generally-- I kind of knew what was going to break.

00:13:18   I knew what was going to change.

00:13:20   And I got things generally ready at a conceptual level,

00:13:25   not on a code level.

00:13:26   And then as we got really close, I

00:13:29   started doing a bit more of that.

00:13:31   And we got the final GM, and I just

00:13:33   went through my apps methodically,

00:13:34   working on updates and changes.

00:13:37   The normal exception was Podometer++, which I knew was going to have some kind of big

00:13:41   features that were going to be important with the new elevation change stuff that's been

00:13:45   in the beta since the beginning, so I had that one ready pretty much before.

00:13:49   With a lot of my other apps, I just waited and did a lot of the updates as we went.

00:13:54   As a downside of that, you know, Podometer++ at this point is my only update that's out

00:13:59   into the world and into the wild.

00:14:00   And the other ones are just all sitting stacked up in a queue.

00:14:04   But that ultimately, I think, for most developers,

00:14:06   is a very sane approach.

00:14:08   That as much as people are going to complain and whine

00:14:10   that your apps aren't updated, especially now

00:14:12   that the bigger phones and the things get a little fuzzy,

00:14:15   if you're running Tweetbot or an app like that,

00:14:17   it looks a little funny right now.

00:14:18   But I understand it from their perspective,

00:14:21   that getting it ready earlier would likely

00:14:23   have been worse for customers in a lot of ways,

00:14:26   because they would have either had to rush something

00:14:28   out the door, or the reality is they

00:14:30   would have been spending a ton of effort for which they

00:14:32   probably wouldn't have actually gotten a good return from.

00:14:35   So that's the deal we have to make.

00:14:37   That's the impossible balance.

00:14:38   And in general, this is where I come out now.

00:14:40   You just kind of do a high level work, you make it sort of work, and you go from there.

00:14:44   All right, that's it for today's show.

00:14:45   Questions, comments, concerns, complaints.

00:14:46   You can find me on Twitter, underscore David Smith, David at developing perspective dot

00:14:50   com.

00:14:51   Thanks, have a great week.