7: Building New Features
  
   
 
 
	 00:00:00
     ◼
      
     ► 
     Welcome to Under the Radar, a show about independent iOS development. 
     
     
  
 
 
	 00:00:03
     ◼
      
     ► 
     I'm Marco Arment. 
     
     
  
 
 
	 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:10
     ◼
      
     ► 
     So today what we wanted to kind of unpack is the process that we go through when we're 
     
     
  
 
 
	 00:00:17
     ◼
      
     ► 
     building a feature out in an app. 
     
     
  
 
 
	 00:00:19
     ◼
      
     ► 
     It's not like the whole app itself, like starting from, I have this vague idea for something 
     
     
  
 
 
	 00:00:23
     ◼
      
     ► 
     and now let's go to Xcode and start a new project. 
     
     
  
 
 
	 00:00:26
     ◼
      
     ► 
     But as a product, as an app develops and gets better over time, you're going to inevitably 
     
     
  
 
 
	 00:00:33
     ◼
      
     ► 
     have these little like, huh, here's this feature I have, here's this thing that I want to do, 
     
     
  
 
 
	 00:00:38
     ◼
      
     ► 
     and I want to add it in. 
     
     
  
 
 
	 00:00:41
     ◼
      
     ► 
     And the way in which you go about that is something that requires a different kind of 
     
     
  
 
 
	 00:00:46
     ◼
      
     ► 
     level of concern or planfulness than just starting from scratch. 
     
     
  
 
 
	 00:00:49
     ◼
      
     ► 
     Because obviously, A, you're smooshing it into an existing piece of code, and also just 
     
     
  
 
 
	 00:00:54
     ◼
      
     ► 
     the constraints around what you're doing are different. 
     
     
  
 
 
	 00:00:58
     ◼
      
     ► 
     And recently I ran into something where I thought it was an interesting kind of progression 
     
     
  
 
 
	 00:01:00
     ◼
      
     ► 
     that I found that I was going through. 
     
     
  
 
 
	 00:01:02
     ◼
      
     ► 
     When I was adding a feature to sleep++, which is my Apple Watch sleep tracker, basically 
     
     
  
 
 
	 00:01:07
     ◼
      
     ► 
     I wanted to be able to record your night's activity and you end up with a graph of how 
     
     
  
 
 
	 00:01:12
     ◼
      
     ► 
     well you slept. 
     
     
  
 
 
	 00:01:13
     ◼
      
     ► 
     And people asked, a feature I got many, many times was like, "I want to be able to trim 
     
     
  
 
 
	 00:01:16
     ◼
      
     ► 
     the night at the end of..." 
     
     
  
 
 
	 00:01:17
     ◼
      
     ► 
     It says, "If I wake up in the morning and I don't stop it right when I wake up," I wanted 
     
     
  
 
 
	 00:01:21
     ◼
      
     ► 
     to say, actually, I woke up at this time. 
     
     
  
 
 
	 00:01:24
     ◼
      
     ► 
     Seems a very reasonable feature. 
     
     
  
 
 
	 00:01:26
     ◼
      
     ► 
     The thing that I found as interesting 
     
     
  
 
 
	 00:01:27
     ◼
      
     ► 
     as I went through the process of building this out-- 
     
     
  
 
 
	 00:01:29
     ◼
      
     ► 
     and so now it's basically a part of the app-- 
     
     
  
 
 
	 00:01:32
     ◼
      
     ► 
     is I tend to go kind of-- 
     
     
  
 
 
	 00:01:34
     ◼
      
     ► 
     I start off with, like, huh, that's an interesting idea. 
     
     
  
 
 
	 00:01:37
     ◼
      
     ► 
     How would I build that? 
     
     
  
 
 
	 00:01:38
     ◼
      
     ► 
     And then I tend to work a little-- 
     
     
  
 
 
	 00:01:41
     ◼
      
     ► 
     it's like from the bottom up and the top 
     
     
  
 
 
	 00:01:43
     ◼
      
     ► 
     down when I'm working on a feature like this, which 
     
     
  
 
 
	 00:01:45
     ◼
      
     ► 
     it seemed kind of funny. 
     
     
  
 
 
	 00:01:47
     ◼
      
     ► 
     I started the data level and start being like, 
     
     
  
 
 
	 00:01:48
     ◼
      
     ► 
     what data would I need to record? 
     
     
  
 
 
	 00:01:50
     ◼
      
     ► 
     How would I record that? 
     
     
  
 
 
	 00:01:51
     ◼
      
     ► 
     what migrations do I need to do in my database, what changes will I have to make there? 
     
     
  
 
 
	 00:01:54
     ◼
      
     ► 
     And I start building the basic structure for that on the bottom. 
     
     
  
 
 
	 00:01:58
     ◼
      
     ► 
     And then I start on the top down in a really simplistic way. 
     
     
  
 
 
	 00:02:01
     ◼
      
     ► 
     I start off with what's the UI going to look like, but I don't actually build that UI. 
     
     
  
 
 
	 00:02:05
     ◼
      
     ► 
     I just take whatever stock control I can find, like I think in this case I took a UI slider, 
     
     
  
 
 
	 00:02:10
     ◼
      
     ► 
     threw it into Interface Builder, hooked it up to that, applied a transform to it because 
     
     
  
 
 
	 00:02:15
     ◼
      
     ► 
     I needed it to slide vertically, so I just rotated it by 90 degrees, and that was my 
     
     
  
 
 
	 00:02:20
     ◼
      
     ► 
     basic control. Eventually I ended up replacing that with a whole custom UI and all kinds 
     
     
  
 
 
	 00:02:24
     ◼
      
     ► 
     of things like that. But starting in that sort of top-down, as simple as I can on the 
     
     
  
 
 
	 00:02:29
     ◼
      
     ► 
     UI side, and then as robust as I can on the bottom side, is something that seems to work 
     
     
  
 
 
	 00:02:34
     ◼
      
     ► 
     for me. And it's an approach though that I found that if I can't end up with something 
     
     
  
 
 
	 00:02:40
     ◼
      
     ► 
     that I can use and can start playing with quickly, that's why sort of the top-down 
     
     
  
 
 
	 00:02:43
     ◼
      
     ► 
     is important from like just really basic simple UI, I really struggle with actually getting 
     
     
  
 
 
	 00:02:48
     ◼
      
     ► 
     anything's done. 
     
     
  
 
 
	 00:02:50
     ◼
      
     ► 
     Do you have a similar experience? 
     
     
  
 
 
	 00:02:52
     ◼
      
     ► 
     - For me, any feature that I want to build, 
     
     
  
 
 
	 00:02:57
     ◼
      
     ► 
     I always just build it as quickly as I can 
     
     
  
 
 
	 00:03:00
     ◼
      
     ► 
     and start using it myself. 
     
     
  
 
 
	 00:03:01
     ◼
      
     ► 
     My process, we talked a little bit about betas 
     
     
  
 
 
	 00:03:04
     ◼
      
     ► 
     in previous episodes and everything, 
     
     
  
 
 
	 00:03:06
     ◼
      
     ► 
     my process for testing out features is really, 
     
     
  
 
 
	 00:03:10
     ◼
      
     ► 
     I just test them out myself for as long as I can 
     
     
  
 
 
	 00:03:12
     ◼
      
     ► 
     before I show them to anybody else at all. 
     
     
  
 
 
	 00:03:15
     ◼
      
     ► 
     Before I even send them to beta testers usually. 
     
     
  
 
 
	 00:03:17
     ◼
      
     ► 
     Overcast, I mentioned last in last episode, I mentioned that that voice boost started 
     
     
  
 
 
	 00:03:23
     ◼
      
     ► 
     out as as having different levels. It was not just an on or an off switch. It actually 
     
     
  
 
 
	 00:03:27
     ◼
      
     ► 
     had multiple modes. And I lived with that for months before I showed anybody else before 
     
     
  
 
 
	 00:03:34
     ◼
      
     ► 
     the beta started and everything. And I really I did a similar thing. I mean, like, you know, 
     
     
  
 
 
	 00:03:39
     ◼
      
     ► 
     my UI for controlling these things is mostly just stock UI kit. I very rarely make custom 
     
     
  
 
 
	 00:03:44
     ◼
      
     ► 
     controls or when I do they're usually pretty lightweight subclasses of the built in buttons 
     
     
  
 
 
	 00:03:50
     ◼
      
     ► 
     and labels and slider and stuff like that. Or they might just be a slight wrapper with 
     
     
  
 
 
	 00:03:57
     ◼
      
     ► 
     one of those as a subview and a few other labels here and there. But for the most part 
     
     
  
 
 
	 00:04:03
     ◼
      
     ► 
     I'm using mostly stock stuff because you can get really really far with stock components 
     
     
  
 
 
	 00:04:09
     ◼
      
     ► 
     in UIKit especially with all the custom appearance stuff that they've added in the last few OS 
     
     
  
 
 
	 00:04:13
     ◼
      
     ► 
     Really, I have found very little reason to really build out tons of custom control stuff 
     
     
  
 
 
	 00:04:20
     ◼
      
     ► 
     and I've instead focused on just skinning UIKit well. 
     
     
  
 
 
	 00:04:24
     ◼
      
     ► 
     And so when I built these features, I mean, Voice Boost as I mentioned, it used to have 
     
     
  
 
 
	 00:04:30
     ◼
      
     ► 
     four levels. 
     
     
  
 
 
	 00:04:31
     ◼
      
     ► 
     It used to be off, reduce, enhance, and boost. 
     
     
  
 
 
	 00:04:36
     ◼
      
     ► 
     And I was about to launch with this. 
     
     
  
 
 
	 00:04:38
     ◼
      
     ► 
     I really thought this was going to be what I launched with. 
     
     
  
 
 
	 00:04:40
     ◼
      
     ► 
     And I had rationales for all of them. 
     
     
  
 
 
	 00:04:43
     ◼
      
     ► 
     So the reduce mode would actually cut off, it was actually a high pass and a low pass 
     
     
  
 
 
	 00:04:48
     ◼
      
     ► 
     filter, it would actually cut off big chunks of the top and bottom end for podcasts that 
     
     
  
 
 
	 00:04:53
     ◼
      
     ► 
     were produced with flaws, with either way too much bass or sometimes, sometimes podcasts 
     
     
  
 
 
	 00:04:59
     ◼
      
     ► 
     would have like very high pitched noise and so I thought a reduce mode would actually 
     
     
  
 
 
 
	 00:05:06
     ◼
      
     ► 
     And then the volume boosting modes, I actually had two. 
     
     
  
 
 
	 00:05:10
     ◼
      
     ► 
     I had enhance and boost. 
     
     
  
 
 
	 00:05:12
     ◼
      
     ► 
     And it was just two different degrees of the same thing, really, of the EQ and the compression, 
     
     
  
 
 
	 00:05:17
     ◼
      
     ► 
     and with boost being a much more aggressive compression setting. 
     
     
  
 
 
	 00:05:20
     ◼
      
     ► 
     What I found in the beta was people were very confused by this because it just labeled dynamics. 
     
     
  
 
 
	 00:05:25
     ◼
      
     ► 
     Reduce off enhance boost. 
     
     
  
 
 
	 00:05:26
     ◼
      
     ► 
     It's like, okay, what does dynamics mean? 
     
     
  
 
 
	 00:05:29
     ◼
      
     ► 
     You know, it's just somebody who is not an audio engineer. 
     
     
  
 
 
	 00:05:32
     ◼
      
     ► 
     Is that referring to motion? 
     
     
  
 
 
	 00:05:33
     ◼
      
     ► 
     Like, it was a very confusing thing. 
     
     
  
 
 
	 00:05:36
     ◼
      
     ► 
     People were confused as to why they would ever want 
     
     
  
 
 
	 00:05:38
     ◼
      
     ► 
     to reduce the dynamics of something. 
     
     
  
 
 
	 00:05:40
     ◼
      
     ► 
     And between enhance and boost, well what does that mean? 
     
     
  
 
 
	 00:05:43
     ◼
      
     ► 
     Is this like enhance like CSI, 
     
     
  
 
 
	 00:05:45
     ◼
      
     ► 
     where you're uncovering detail 
     
     
  
 
 
	 00:05:46
     ◼
      
     ► 
     that is magically there somehow? 
     
     
  
 
 
	 00:05:48
     ◼
      
     ► 
     You know, and it doesn't really communicate 
     
     
  
 
 
	 00:05:50
     ◼
      
     ► 
     that enhance and boost are basically 
     
     
  
 
 
	 00:05:51
     ◼
      
     ► 
     two different dynamics of the same thing. 
     
     
  
 
 
	 00:05:54
     ◼
      
     ► 
     It was a very confusing feature. 
     
     
  
 
 
	 00:05:57
     ◼
      
     ► 
     And I didn't, you know, I mentioned last time, 
     
     
  
 
 
	 00:05:59
     ◼
      
     ► 
     I didn't see the confusing aspect of it because I made it. 
     
     
  
 
 
	 00:06:02
     ◼
      
     ► 
     And so I knew what it was. 
     
     
  
 
 
	 00:06:04
     ◼
      
     ► 
     I didn't have to explain to myself what it was. 
     
     
  
 
 
	 00:06:07
     ◼
      
     ► 
     My testers started seeing this and seeing 
     
     
  
 
 
	 00:06:09
     ◼
      
     ► 
     that it was probably not ideal. 
     
     
  
 
 
	 00:06:12
     ◼
      
     ► 
     One day during testing, I just mocked up 
     
     
  
 
 
	 00:06:14
     ◼
      
     ► 
     a quick little thing where I realized 
     
     
  
 
 
	 00:06:16
     ◼
      
     ► 
     that I was just leaving it in Boost most of the time 
     
     
  
 
 
	 00:06:18
     ◼
      
     ► 
     because after trying the other options here and there 
     
     
  
 
 
	 00:06:20
     ◼
      
     ► 
     during development, I discovered that Boost 
     
     
  
 
 
	 00:06:23
     ◼
      
     ► 
     was just the best one. 
     
     
  
 
 
	 00:06:25
     ◼
      
     ► 
     And that's the way I wanted to leave almost everything. 
     
     
  
 
 
	 00:06:27
     ◼
      
     ► 
     I almost never wanted any of the other options. 
     
     
  
 
 
	 00:06:30
     ◼
      
     ► 
     So that's when I decided, you know what, 
     
     
  
 
 
	 00:06:31
     ◼
      
     ► 
     I'll solve two problems. 
     
     
  
 
 
	 00:06:32
     ◼
      
     ► 
     I'll solve the intuitiveness problem 
     
     
  
 
 
	 00:06:35
     ◼
      
     ► 
     and the UI understandability problem 
     
     
  
 
 
	 00:06:38
     ◼
      
     ► 
     with what this feature actually is. 
     
     
  
 
 
	 00:06:40
     ◼
      
     ► 
     And I don't actually want these other modes. 
     
     
  
 
 
	 00:06:44
     ◼
      
     ► 
     In practice, I find out this isn't that important, 
     
     
  
 
 
	 00:06:46
     ◼
      
     ► 
     so I'll cut those features. 
     
     
  
 
 
	 00:06:47
     ◼
      
     ► 
     I'll make it one button. 
     
     
  
 
 
	 00:06:48
     ◼
      
     ► 
     It's either boost on or off, 
     
     
  
 
 
	 00:06:50
     ◼
      
     ► 
     and I call it voice boost, 
     
     
  
 
 
	 00:06:51
     ◼
      
     ► 
     mostly because it was being next to smart speed, 
     
     
  
 
 
	 00:06:53
     ◼
      
     ► 
     so it needed two words 
     
     
  
 
 
	 00:06:55
     ◼
      
     ► 
     'cause it would look weird if it only had one. 
     
     
  
 
 
	 00:06:57
     ◼
      
     ► 
     This is how I make feature decisions. 
     
     
  
 
 
	 00:06:59
     ◼
      
     ► 
     - Important. - Yeah, yeah. 
     
     
  
 
 
	 00:07:01
     ◼
      
     ► 
     And that's how that feature came to be. 
     
     
  
 
 
	 00:07:03
     ◼
      
     ► 
     And I'll see if I can put a link in the show notes. 
     
     
  
 
 
	 00:07:06
     ◼
      
     ► 
     I always take screenshots along the way 
     
     
  
 
 
	 00:07:09
     ◼
      
     ► 
     of designing the app. 
     
     
  
 
 
	 00:07:10
     ◼
      
     ► 
     And so I have this whole history of how the app looked 
     
     
  
 
 
	 00:07:13
     ◼
      
     ► 
     in various stages of development 
     
     
  
 
 
	 00:07:15
     ◼
      
     ► 
     and while prototyping various features. 
     
     
  
 
 
	 00:07:17
     ◼
      
     ► 
     And so I actually have a screenshot of it 
     
     
  
 
 
	 00:07:18
     ◼
      
     ► 
     with these four features 
     
     
  
 
 
	 00:07:19
     ◼
      
     ► 
     and I'll show you the effects pane with this 
     
     
  
 
 
	 00:07:21
     ◼
      
     ► 
     and then you can see how the one I went with 
     
     
  
 
 
	 00:07:24
     ◼
      
     ► 
     with just the two big buttons was so much simpler. 
     
     
  
 
 
	 00:07:27
     ◼
      
     ► 
     That's a very long-winded way of saying 
     
     
  
 
 
	 00:07:30
     ◼
      
     ► 
     that I kind of evolve features as much as I can, 
     
     
  
 
 
	 00:07:34
     ◼
      
     ► 
     both using it myself and then showing beta testers 
     
     
  
 
 
	 00:07:37
     ◼
      
     ► 
     before they ever get to the public. 
     
     
  
 
 
	 00:07:40
     ◼
      
     ► 
     And I think it's very important, 
     
     
  
 
 
	 00:07:42
     ◼
      
     ► 
     not only to have that process when adding features, 
     
     
  
 
 
	 00:07:46
     ◼
      
     ► 
     but also to really consider, like, 
     
     
  
 
 
	 00:07:49
     ◼
      
     ► 
     you know, if I had released this 
     
     
  
 
 
	 00:07:51
     ◼
      
     ► 
     the way I originally had it 
     
     
  
 
 
	 00:07:52
     ◼
      
     ► 
     with these four different options, 
     
     
  
 
 
	 00:07:54
     ◼
      
     ► 
     and then later decided what I decided during the beta 
     
     
  
 
 
	 00:07:56
     ◼
      
     ► 
     that, you know, this actually should really 
     
     
  
 
 
	 00:07:57
     ◼
      
     ► 
     just be one thing, 
     
     
  
 
 
	 00:07:59
     ◼
      
     ► 
     then that's a feature removal to a lot of people 
     
     
  
 
 
	 00:08:01
     ◼
      
     ► 
     who use the other ones. 
     
     
  
 
 
	 00:08:02
     ◼
      
     ► 
     And you gotta go into that very carefully. 
     
     
  
 
 
	 00:08:06
     ◼
      
     ► 
     And I'm not one to avoid feature removals. 
     
     
  
 
 
	 00:08:09
     ◼
      
     ► 
     I have often angered people by removing features, 
     
     
  
 
 
	 00:08:13
     ◼
      
     ► 
     but it is a lot harder to remove features politically 
     
     
  
 
 
	 00:08:17
     ◼
      
     ► 
     after you've already shipped them to people. 
     
     
  
 
 
	 00:08:18
     ◼
      
     ► 
     So I think one thing to also consider is like, 
     
     
  
 
 
	 00:08:21
     ◼
      
     ► 
     how do you remove a feature from an app? 
     
     
  
 
 
	 00:08:23
     ◼
      
     ► 
     And how do you decide when to do that? 
     
     
  
 
 
	 00:08:27
     ◼
      
     ► 
     When is the right time to do that? 
     
     
  
 
 
	 00:08:29
     ◼
      
     ► 
     and how do you manage user expectations 
     
     
  
 
 
	 00:08:32
     ◼
      
     ► 
     and user feelings about that? 
     
     
  
 
 
	 00:08:34
     ◼
      
     ► 
     - Yeah, and I think it also speaks a little bit to 
     
     
  
 
 
	 00:08:36
     ◼
      
     ► 
     one of the, something that you have to get used to is 
     
     
  
 
 
	 00:08:40
     ◼
      
     ► 
     that you are inevitably going to build features 
     
     
  
 
 
	 00:08:42
     ◼
      
     ► 
     that won't ship, that you're gonna build stuff 
     
     
  
 
 
	 00:08:46
     ◼
      
     ► 
     that ultimately just doesn't work out, 
     
     
  
 
 
	 00:08:49
     ◼
      
     ► 
     and I think there's a certain amount of just like 
     
     
  
 
 
	 00:08:52
     ◼
      
     ► 
     distancing yourself from your work enough 
     
     
  
 
 
	 00:08:54
     ◼
      
     ► 
     that you can look at it, like I've really definitely 
     
     
  
 
 
	 00:08:56
     ◼
      
     ► 
     gone down this path where I'm thinking, 
     
     
  
 
 
	 00:08:57
     ◼
      
     ► 
     hey, this would be an awesome new feature. 
     
     
  
 
 
	 00:08:59
     ◼
      
     ► 
     And especially this is dangerous 
     
     
  
 
 
	 00:09:01
     ◼
      
     ► 
     when it's a really interesting technical problem. 
     
     
  
 
 
	 00:09:04
     ◼
      
     ► 
     It's like I think I have this really cool solution 
     
     
  
 
 
	 00:09:05
     ◼
      
     ► 
     to a problem. 
     
     
  
 
 
	 00:09:07
     ◼
      
     ► 
     I go down the path and I start adding all these features 
     
     
  
 
 
	 00:09:10
     ◼
      
     ► 
     and it's like building it all out. 
     
     
  
 
 
	 00:09:11
     ◼
      
     ► 
     And you get to the end and you're just like, 
     
     
  
 
 
	 00:09:13
     ◼
      
     ► 
     it's a really interesting solution to a problem 
     
     
  
 
 
	 00:09:15
     ◼
      
     ► 
     that people don't actually have. 
     
     
  
 
 
	 00:09:17
     ◼
      
     ► 
     Or it makes the gap really harder to understand 
     
     
  
 
 
	 00:09:20
     ◼
      
     ► 
     or more complicated or less intuitive. 
     
     
  
 
 
	 00:09:23
     ◼
      
     ► 
     And at the end being able to say like, 
     
     
  
 
 
	 00:09:25
     ◼
      
     ► 
     you know, I just need to throw this away. 
     
     
  
 
 
	 00:09:27
     ◼
      
     ► 
     like that's a dead end, that is just not gonna go anywhere. 
     
     
  
 
 
	 00:09:32
     ◼
      
     ► 
     And having done that now so many times 
     
     
  
 
 
	 00:09:35
     ◼
      
     ► 
     where I'll create this branch, go down it, 
     
     
  
 
 
	 00:09:38
     ◼
      
     ► 
     and then end up deciding that this is actually 
     
     
  
 
 
	 00:09:39
     ◼
      
     ► 
     not gonna work, I'm just gonna throw it away, 
     
     
  
 
 
	 00:09:42
     ◼
      
     ► 
     is definitely an encouragement and a reminder 
     
     
  
 
 
	 00:09:44
     ◼
      
     ► 
     to not spend too much time on things, 
     
     
  
 
 
	 00:09:46
     ◼
      
     ► 
     in terms of trying to quickly get to a point 
     
     
  
 
 
	 00:09:49
     ◼
      
     ► 
     that you can really evaluate how useful something is. 
     
     
  
 
 
	 00:09:53
     ◼
      
     ► 
     Because there's so many things that in my head 
     
     
  
 
 
	 00:09:55
     ◼
      
     ► 
     sounds like they'll be really cool and really fun, and when you implement them, they aren't 
     
     
  
 
 
	 00:10:01
     ◼
      
     ► 
     actually as useful as you think. 
     
     
  
 
 
	 00:10:02
     ◼
      
     ► 
     Or the more good and bad situation is when you'll show it to somebody, and you'll give 
     
     
  
 
 
	 00:10:08
     ◼
      
     ► 
     them something to react to, and their response is like, "Huh, that's interesting. 
     
     
  
 
 
	 00:10:13
     ◼
      
     ► 
     Why doesn't it just do this?" 
     
     
  
 
 
	 00:10:15
     ◼
      
     ► 
     And it's sort of like there's this clarifying simplification that you're just not seeing 
     
     
  
 
 
	 00:10:20
     ◼
      
     ► 
     because you're deep down in the weeds of the coolness of the feature or on this particular 
     
     
  
 
 
	 00:10:27
     ◼
      
     ► 
     track, and it turns out a much better solution is, in this case, with voice boost. 
     
     
  
 
 
	 00:10:33
     ◼
      
     ► 
     The dynamics and things, I think, these are really interesting options that you could 
     
     
  
 
 
	 00:10:38
     ◼
      
     ► 
     kind of go down, but at the end, really what people want is to make it louder so they can 
     
     
  
 
 
	 00:10:43
     ◼
      
     ► 
     hear voices clearer. 
     
     
  
 
 
	 00:10:45
     ◼
      
     ► 
     And so you just need on and off, and that's probably good enough. 
     
     
  
 
 
	 00:10:49
     ◼
      
     ► 
     and you have to be willing to say like, 
     
     
  
 
 
	 00:10:50
     ◼
      
     ► 
     you know all the other stuff that I was doing, 
     
     
  
 
 
	 00:10:52
     ◼
      
     ► 
     like the really sophisticated dynamic stuff, 
     
     
  
 
 
	 00:10:55
     ◼
      
     ► 
     it's like, okay, maybe I just don't ship that 
     
     
  
 
 
	 00:10:57
     ◼
      
     ► 
     because it's just gonna make it more confusing 
     
     
  
 
 
	 00:10:59
     ◼
      
     ► 
     rather than actually better for most people. 
     
     
  
 
 
	 00:11:02
     ◼
      
     ► 
     - Right, 'cause it was exactly the kind of thing 
     
     
  
 
 
	 00:11:04
     ◼
      
     ► 
     where it was technically interesting, 
     
     
  
 
 
	 00:11:06
     ◼
      
     ► 
     it was technically impressive, 
     
     
  
 
 
	 00:11:08
     ◼
      
     ► 
     not a lot of podcast apps have enhanced dynamics 
     
     
  
 
 
	 00:11:11
     ◼
      
     ► 
     and EQ controls and everything, 
     
     
  
 
 
	 00:11:13
     ◼
      
     ► 
     so it was like a cool thing to do 
     
     
  
 
 
	 00:11:16
     ◼
      
     ► 
     if I would have shipped that 
     
     
  
 
 
	 00:11:17
     ◼
      
     ► 
     because it was kind of like showing off my audio engine 
     
     
  
 
 
	 00:11:20
     ◼
      
     ► 
     and my audio manipulation skills, I guess. 
     
     
  
 
 
	 00:11:23
     ◼
      
     ► 
     But in reality, that was really just showing off 
     
     
  
 
 
	 00:11:26
     ◼
      
     ► 
     for my benefit and it was not like, 
     
     
  
 
 
	 00:11:29
     ◼
      
     ► 
     it was actually, it would be making the app worse 
     
     
  
 
 
	 00:11:32
     ◼
      
     ► 
     to ship it that way because it was more confusing, 
     
     
  
 
 
	 00:11:34
     ◼
      
     ► 
     because as you said, like not a lot of people 
     
     
  
 
 
	 00:11:36
     ◼
      
     ► 
     really had that problem very often. 
     
     
  
 
 
	 00:11:38
     ◼
      
     ► 
     Not even I had the problem often enough 
     
     
  
 
 
	 00:11:40
     ◼
      
     ► 
     to use my own feature very much. 
     
     
  
 
 
	 00:11:42
     ◼
      
     ► 
     So it really does take a lot of editing 
     
     
  
 
 
	 00:11:45
     ◼
      
     ► 
     And I feel like there's a good balance to be struck here 
     
     
  
 
 
	 00:11:48
     ◼
      
     ► 
     between, like the way I do it, I move pretty slowly. 
     
     
  
 
 
	 00:11:52
     ◼
      
     ► 
     And like, you know, with streaming, like I was, 
     
     
  
 
 
	 00:11:55
     ◼
      
     ► 
     I had streaming working to varying degrees of work, 
     
     
  
 
 
	 00:11:59
     ◼
      
     ► 
     probably three months before I shipped it, 
     
     
  
 
 
	 00:12:02
     ◼
      
     ► 
     but I wanted that very long testing period 
     
     
  
 
 
	 00:12:04
     ◼
      
     ► 
     because I wanted to be very conservative with it 
     
     
  
 
 
	 00:12:05
     ◼
      
     ► 
     and to have a lot of time just using it on my own phone 
     
     
  
 
 
	 00:12:08
     ◼
      
     ► 
     before I even gave it to testers, let alone to the public. 
     
     
  
 
 
	 00:12:11
     ◼
      
     ► 
     And on the other side, the other extreme of this, 
     
     
  
 
 
	 00:12:15
     ◼
      
     ► 
     of the feature deployment speed here, 
     
     
  
 
 
	 00:12:18
     ◼
      
     ► 
     is the continuous release paradigm, 
     
     
  
 
 
	 00:12:22
     ◼
      
     ► 
     where you just ship something out there 
     
     
  
 
 
	 00:12:24
     ◼
      
     ► 
     as quickly as you possibly can, 
     
     
  
 
 
	 00:12:25
     ◼
      
     ► 
     as soon as you have the idea for it, 
     
     
  
 
 
	 00:12:27
     ◼
      
     ► 
     and see if it takes, maybe do some A/B testing, 
     
     
  
 
 
	 00:12:29
     ◼
      
     ► 
     or see what people's reactions are. 
     
     
  
 
 
	 00:12:31
     ◼
      
     ► 
     I feel like the better balance 
     
     
  
 
 
	 00:12:33
     ◼
      
     ► 
     is somewhere in the middle of those things. 
     
     
  
 
 
	 00:12:34
     ◼
      
     ► 
     I feel like I move too slowly the way I do things, 
     
     
  
 
 
	 00:12:37
     ◼
      
     ► 
     but something like that, 
     
     
  
 
 
	 00:12:38
     ◼
      
     ► 
     where you're constantly adding or moving things, 
     
     
  
 
 
	 00:12:41
     ◼
      
     ► 
     First of all, it makes it harder to remove things. 
     
     
  
 
 
	 00:12:43
     ◼
      
     ► 
     And second of all, I think you increase 
     
     
  
 
 
	 00:12:47
     ◼
      
     ► 
     the annoyance rate of your users, 
     
     
  
 
 
	 00:12:50
     ◼
      
     ► 
     like when you do things, like when Twitter 
     
     
  
 
 
	 00:12:52
     ◼
      
     ► 
     rolls out a new feature and it goes out 
     
     
  
 
 
	 00:12:53
     ◼
      
     ► 
     to a random subset of people first. 
     
     
  
 
 
	 00:12:55
     ◼
      
     ► 
     And everyone else hears about it, 
     
     
  
 
 
	 00:12:57
     ◼
      
     ► 
     and like, wait, why don't I have this? 
     
     
  
 
 
	 00:12:58
     ◼
      
     ► 
     Or why is my timeline all of a sudden different? 
     
     
  
 
 
	 00:13:00
     ◼
      
     ► 
     Or why does this not work the way I expect it to 
     
     
  
 
 
	 00:13:03
     ◼
      
     ► 
     and everyone else's works fine? 
     
     
  
 
 
	 00:13:04
     ◼
      
     ► 
     These two extremes of how often you ship things, 
     
     
  
 
 
	 00:13:07
     ◼
      
     ► 
     how much testing you do internally 
     
     
  
 
 
	 00:13:10
     ◼
      
     ► 
     versus just shipping to the public 
     
     
  
 
 
	 00:13:11
     ◼
      
     ► 
     and seeing what they think first. 
     
     
  
 
 
	 00:13:13
     ◼
      
     ► 
     There is a healthy balance to be struck 
     
     
  
 
 
	 00:13:14
     ◼
      
     ► 
     between those two extremes. 
     
     
  
 
 
	 00:13:16
     ◼
      
     ► 
     I haven't struck it, but I think I would rather be, 
     
     
  
 
 
	 00:13:19
     ◼
      
     ► 
     if I'm gonna be unbalanced in that way, 
     
     
  
 
 
	 00:13:22
     ◼
      
     ► 
     I think I'd rather be unbalanced in the direction that I am, 
     
     
  
 
 
	 00:13:24
     ◼
      
     ► 
     which is on the side of being too conservative and too slow, 
     
     
  
 
 
	 00:13:28
     ◼
      
     ► 
     because ultimately I want my app to always have a reputation 
     
     
  
 
 
	 00:13:31
     ◼
      
     ► 
     of being carefully considered. 
     
     
  
 
 
	 00:13:34
     ◼
      
     ► 
     - Yeah, and I think, honestly, that the App Store itself 
     
     
  
 
 
	 00:13:38
     ◼
      
     ► 
     structured such that you can't do continuous release in a functional way, because your 
     
     
  
 
 
	 00:13:45
     ◼
      
     ► 
     app always has to go through app review, which can take a non-deterministic amount of time, 
     
     
  
 
 
	 00:13:51
     ◼
      
     ► 
     at least about a week. And you have to be able to—you can only ship things to the 
     
     
  
 
 
	 00:13:55
     ◼
      
     ► 
     store that you can live with for at least a week, probably, which, depending on the 
     
     
  
 
 
	 00:14:02
     ◼
      
     ► 
     kind of change that you're rolling out and the significance of it, or if there's a 
     
     
  
 
 
	 00:14:06
     ◼
      
     ► 
     problem with it. 
     
     
  
 
 
	 00:14:08
     ◼
      
     ► 
     You have to have a certain amount of conservatism to make sure that you're not putting something 
     
     
  
 
 
	 00:14:11
     ◼
      
     ► 
     out there that is going to be very problematic for your product that if for a week it's horribly 
     
     
  
 
 
	 00:14:17
     ◼
      
     ► 
     broken or really confusing, you can't just change that. 
     
     
  
 
 
	 00:14:22
     ◼
      
     ► 
     Continuous deployment and things works great for an app, like a web app or something that 
     
     
  
 
 
	 00:14:25
     ◼
      
     ► 
     you can change in real time. 
     
     
  
 
 
	 00:14:28
     ◼
      
     ► 
     Or if you're in the Google Play Store, for example, you can do something like that a 
     
     
  
 
 
	 00:14:31
     ◼
      
     ► 
     lot more there because you can roll out updates more quickly. 
     
     
  
 
 
	 00:14:35
     ◼
      
     ► 
     But in general, it's definitely something that you have to be thoughtful about and understand 
     
     
  
 
 
	 00:14:39
     ◼
      
     ► 
     that it's going to -- this is going to go out, and you have no control over necessarily 
     
     
  
 
 
	 00:14:44
     ◼
      
     ► 
     when someone's going to be able to change. 
     
     
  
 
 
	 00:14:47
     ◼
      
     ► 
     And so, I mean, you can certainly go down the crazy roads where you have AB testing 
     
     
  
 
 
	 00:14:51
     ◼
      
     ► 
     built into your app and it has multiple code paths and things, but that just seems like 
     
     
  
 
 
	 00:14:55
     ◼
      
     ► 
     a nightmare to me. 
     
     
  
 
 
	 00:14:57
     ◼
      
     ► 
     But it's definitely something that I think I'm more on the release things quicker approach. 
     
     
  
 
 
	 00:15:03
     ◼
      
     ► 
     I tend to bite off nice small things, focus on them, get them working, and then put it 
     
     
  
 
 
 
	 00:15:13
     ◼
      
     ► 
     In general, I think that seems to work for me, and I think mostly it's something that 
     
     
  
 
 
	 00:15:16
     ◼
      
     ► 
     even is just an attention span thing. 
     
     
  
 
 
	 00:15:18
     ◼
      
     ► 
     I really struggle to... 
     
     
  
 
 
	 00:15:19
     ◼
      
     ► 
     When I hear you talking about working on features for months, that is really intimidating to 
     
     
  
 
 
	 00:15:25
     ◼
      
     ► 
     me because I think I would lose interest. 
     
     
  
 
 
	 00:15:29
     ◼
      
     ► 
     I get something working, all the crazy edge cases are harder for me to have the discipline 
     
     
  
 
 
	 00:15:34
     ◼
      
     ► 
     to track down, and so I tend to just focus and simplify the problem down to a point that, 
     
     
  
 
 
	 00:15:38
     ◼
      
     ► 
     "Oh, look, all the edge cases seem to have sort of fallen off as best I can," which 
     
     
  
 
 
	 00:15:43
     ◼
      
     ► 
     is a different kind of approach, but I found kind of works for me. 
     
     
  
 
 
	 00:15:47
     ◼
      
     ► 
     Well, I mean, honestly, that's probably the more healthy approach, is to ship something 
     
     
  
 
 
	 00:15:51
     ◼
      
     ► 
     that is smaller but complete and ship that faster, rather than wait until you have something 
     
     
  
 
 
	 00:15:59
     ◼
      
     ► 
     that is complete but is big and sprawling, 
     
     
  
 
 
	 00:16:02
     ◼
      
     ► 
     and then that takes six months. 
     
     
  
 
 
	 00:16:05
     ◼
      
     ► 
     I think your approach there is probably the healthier one. 
     
     
  
 
 
	 00:16:08
     ◼
      
     ► 
     - Yeah, but it requires, I guess, 
     
     
  
 
 
	 00:16:10
     ◼
      
     ► 
     and some of it too, maybe, 
     
     
  
 
 
	 00:16:12
     ◼
      
     ► 
     it's the interesting thing of trying to decide, 
     
     
  
 
 
	 00:16:15
     ◼
      
     ► 
     I'm just interested in a direction 
     
     
  
 
 
	 00:16:16
     ◼
      
     ► 
     to shift the conversation to, 
     
     
  
 
 
	 00:16:17
     ◼
      
     ► 
     is how we decide what features to add, 
     
     
  
 
 
	 00:16:21
     ◼
      
     ► 
     I think is a really, 
     
     
  
 
 
	 00:16:22
     ◼
      
     ► 
     it's a very complicated set of variables 
     
     
  
 
 
	 00:16:26
     ◼
      
     ► 
     that I find that I'm balancing for these days, 
     
     
  
 
 
	 00:16:28
     ◼
      
     ► 
     where on the one hand you have the desire to make something good, to ship a good product, 
     
     
  
 
 
	 00:16:34
     ◼
      
     ► 
     to ship software that's useful, that people like, you have the constraint that you're 
     
     
  
 
 
	 00:16:39
     ◼
      
     ► 
     trying to optimize for around business model and business plan, like will adding this feature 
     
     
  
 
 
	 00:16:45
     ◼
      
     ► 
     increase the number of people who are using my app or paying for my app or in some way 
     
     
  
 
 
	 00:16:51
     ◼
      
     ► 
     contributing to the bottom line of my business, is this feature something that's going to 
     
     
  
 
 
	 00:16:55
     ◼
      
     ► 
     motivate me and make me interested. And trying to balance the tension between those is, I 
     
     
  
 
 
	 00:17:01
     ◼
      
     ► 
     think, definitely more art than science. Because at least I haven't found a good way to really 
     
     
  
 
 
	 00:17:08
     ◼
      
     ► 
     know that other than just like, "This feels right." Every now and then I'll get asked by people, 
     
     
  
 
 
	 00:17:13
     ◼
      
     ► 
     like, "How do I plan releases? Do I sit down?" It's not like I want to do some kind of waterfall 
     
     
  
 
 
	 00:17:19
     ◼
      
     ► 
     think, but do I have a big release plan like you probably need to have if you were trying 
     
     
  
 
 
	 00:17:24
     ◼
      
     ► 
     to apply a team of developers onto something? And it's like, I tend to just sit down and 
     
     
  
 
 
	 00:17:29
     ◼
      
     ► 
     look at my apps and be like, "What could be made better? What would I enjoy building?" 
     
     
  
 
 
	 00:17:34
     ◼
      
     ► 
     And then think about, "Huh, I suppose that might make people like the app more," and 
     
     
  
 
 
	 00:17:37
     ◼
      
     ► 
     then go with it. But then also, more often than not, I'll look at an app and be like, 
     
     
  
 
 
	 00:17:42
     ◼
      
     ► 
     "The app's kind of done. Maybe I should just leave it and move on to the next app." And 
     
     
  
 
 
	 00:17:47
     ◼
      
     ► 
     I guess that's why I end up with so many apps, but trying to decide what feature is worth 
     
     
  
 
 
	 00:17:51
     ◼
      
     ► 
     actually doing is really hard. 
     
     
  
 
 
	 00:17:54
     ◼
      
     ► 
     Deciding when an app is basically done or doesn't need massive attention for at least 
     
     
  
 
 
	 00:17:59
     ◼
      
     ► 
     a little while, that is a skill that I think iOS developers need. 
     
     
  
 
 
	 00:18:04
     ◼
      
     ► 
     And many of us, myself included, often don't do it right or don't have that skill, because 
     
     
  
 
 
	 00:18:10
     ◼
      
     ► 
     the economics of iOS are such that you really do have a much better chance of success if 
     
     
  
 
 
	 00:18:16
     ◼
      
     ► 
     if you have multiple apps and the additional value 
     
     
  
 
 
	 00:18:20
     ◼
      
     ► 
     that you will get, sales-wise or money-wise, 
     
     
  
 
 
	 00:18:23
     ◼
      
     ► 
     the additional value you will get out of doing 
     
     
  
 
 
	 00:18:26
     ◼
      
     ► 
     a big feature update to an existing app 
     
     
  
 
 
	 00:18:29
     ◼
      
     ► 
     might not be worth the effort that it will require 
     
     
  
 
 
	 00:18:32
     ◼
      
     ► 
     to be put into that to do. 
     
     
  
 
 
	 00:18:34
     ◼
      
     ► 
     And a lot of people want the model of just having one app 
     
     
  
 
 
	 00:18:39
     ◼
      
     ► 
     that they work on forever, well not forever, 
     
     
  
 
 
	 00:18:42
     ◼
      
     ► 
     but one app that they pour tons of time into 
     
     
  
 
 
	 00:18:44
     ◼
      
     ► 
     polishing everything up and being able to live off 
     
     
  
 
 
	 00:18:47
     ◼
      
     ► 
     just that one app. 
     
     
  
 
 
	 00:18:48
     ◼
      
     ► 
     And that is very rare to actually have that 
     
     
  
 
 
	 00:18:52
     ◼
      
     ► 
     in the app store and to be successful at that. 
     
     
  
 
 
	 00:18:55
     ◼
      
     ► 
     Not because Apple is keeping us all down or anything, 
     
     
  
 
 
	 00:18:59
     ◼
      
     ► 
     but because in most cases, most apps, 
     
     
  
 
 
	 00:19:04
     ◼
      
     ► 
     you hit a wall of diminishing returns where like, 
     
     
  
 
 
	 00:19:07
     ◼
      
     ► 
     most people's needs are satisfied by it, 
     
     
  
 
 
	 00:19:11
     ◼
      
     ► 
     who will find it and who will want it 
     
     
  
 
 
	 00:19:13
     ◼
      
     ► 
     and who will pay for it. 
     
     
  
 
 
	 00:19:14
     ◼
      
     ► 
     most people's need to get satisfied pretty early on 
     
     
  
 
 
	 00:19:16
     ◼
      
     ► 
     in development and then you're just kinda like 
     
     
  
 
 
	 00:19:18
     ◼
      
     ► 
     adding stuff just really for your benefit, 
     
     
  
 
 
	 00:19:21
     ◼
      
     ► 
     trying to make the app better to boost sales 
     
     
  
 
 
	 00:19:24
     ◼
      
     ► 
     or to get more press at some point 
     
     
  
 
 
	 00:19:25
     ◼
      
     ► 
     or to get upgrade revenue maybe. 
     
     
  
 
 
	 00:19:28
     ◼
      
     ► 
     Whereas the customers really aren't 
     
     
  
 
 
	 00:19:31
     ◼
      
     ► 
     in great need of those things. 
     
     
  
 
 
	 00:19:32
     ◼
      
     ► 
     And the best example of that kind of thing 
     
     
  
 
 
	 00:19:33
     ◼
      
     ► 
     is Microsoft Office. 
     
     
  
 
 
	 00:19:34
     ◼
      
     ► 
     And you see like over time, 
     
     
  
 
 
	 00:19:36
     ◼
      
     ► 
     all the challenges Microsoft faced over the last 20 years 
     
     
  
 
 
	 00:19:40
     ◼
      
     ► 
     of just trying to get people to buy Office upgrades. 
     
     
  
 
 
	 00:19:44
     ◼
      
     ► 
     And when everyone's sitting around saying, 
     
     
  
 
 
	 00:19:46
     ◼
      
     ► 
     you know what, Microsoft Word's been working fine for me, 
     
     
  
 
 
	 00:19:48
     ◼
      
     ► 
     I don't really need anything else, 
     
     
  
 
 
	 00:19:50
     ◼
      
     ► 
     please don't add anything else, 
     
     
  
 
 
	 00:19:52
     ◼
      
     ► 
     'cause every time I upgrade, 
     
     
  
 
 
	 00:19:53
     ◼
      
     ► 
     I pay this large amount of money, 
     
     
  
 
 
	 00:19:54
     ◼
      
     ► 
     and then everything gets slower, 
     
     
  
 
 
	 00:19:56
     ◼
      
     ► 
     and some things are different, 
     
     
  
 
 
	 00:19:57
     ◼
      
     ► 
     and I have to retrain myself or my staff. 
     
     
  
 
 
	 00:19:59
     ◼
      
     ► 
     And so you have customers who are actually asking you, 
     
     
  
 
 
	 00:20:01
     ◼
      
     ► 
     please don't upgrade this. 
     
     
  
 
 
	 00:20:03
     ◼
      
     ► 
     So I feel like if you take lessons 
     
     
  
 
 
	 00:20:05
     ◼
      
     ► 
     from the industry in the past, 
     
     
  
 
 
	 00:20:07
     ◼
      
     ► 
     you can kind of see, a lot of times, 
     
     
  
 
 
	 00:20:10
     ◼
      
     ► 
     given limited resources and limited time that you have 
     
     
  
 
 
	 00:20:12
     ◼
      
     ► 
     as an individual or as a small company, 
     
     
  
 
 
	 00:20:15
     ◼
      
     ► 
     doing an upgrade to a product for the sake of upgrading it 
     
     
  
 
 
	 00:20:19
     ◼
      
     ► 
     is not necessarily the best use of your time. 
     
     
  
 
 
	 00:20:20
     ◼
      
     ► 
     And you, David, you have, I think, 
     
     
  
 
 
	 00:20:23
     ◼
      
     ► 
     a very good sense of that. 
     
     
  
 
 
	 00:20:25
     ◼
      
     ► 
     Possibly even an overly aggressive sense of that, 
     
     
  
 
 
	 00:20:27
     ◼
      
     ► 
     but I think it serves you very well in that 
     
     
  
 
 
	 00:20:30
     ◼
      
     ► 
     you don't seem to pour a lot of effort 
     
     
  
 
 
	 00:20:32
     ◼
      
     ► 
     into massive upgrades to apps 
     
     
  
 
 
	 00:20:35
     ◼
      
     ► 
     that don't necessarily warrant them, 
     
     
  
 
 
	 00:20:36
     ◼
      
     ► 
     and you are very happy to try new apps 
     
     
  
 
 
	 00:20:38
     ◼
      
     ► 
     way more often than most people I know. 
     
     
  
 
 
	 00:20:41
     ◼
      
     ► 
     - Yeah, and I think some of it is coming from understanding 
     
     
  
 
 
	 00:20:44
     ◼
      
     ► 
     that I remember a few years ago, 
     
     
  
 
 
	 00:20:47
     ◼
      
     ► 
     I had the realization that the way we version number 
     
     
  
 
 
	 00:20:52
     ◼
      
     ► 
     our apps is sort of, in some ways, somewhat, 
     
     
  
 
 
	 00:20:57
     ◼
      
     ► 
     it's kind of arbitrary that we tend to do this concept 
     
     
  
 
 
	 00:21:01
     ◼
      
     ► 
     of a major update, and then you have minor updates, 
     
     
  
 
 
	 00:21:04
     ◼
      
     ► 
     and then you have bug-fic updates, 
     
     
  
 
 
	 00:21:05
     ◼
      
     ► 
     like you have 2.1.6 or something, and it's coming from a world where you made your money 
     
     
  
 
 
	 00:21:13
     ◼
      
     ► 
     only on major updates. 
     
     
  
 
 
	 00:21:16
     ◼
      
     ► 
     And so you had to kind of create this sense of you put out a major update to get a bunch 
     
     
  
 
 
	 00:21:22
     ◼
      
     ► 
     of money, and then you do minor updates in many ways to build goodwill, and bug fix updates 
     
     
  
 
 
	 00:21:28
     ◼
      
     ► 
     just to fix things, but you do these minor updates to build goodwill with your customers. 
     
     
  
 
 
	 00:21:33
     ◼
      
     ► 
     They have this feeling of like, they bought this basic thing, and then hey, they got this 
     
     
  
 
 
	 00:21:38
     ◼
      
     ► 
     other stuff for free. 
     
     
  
 
 
	 00:21:39
     ◼
      
     ► 
     Like they got all these minor updates, these other improvements for free. 
     
     
  
 
 
	 00:21:42
     ◼
      
     ► 
     And then you come around and it's like, alright, now it's time to shake the money tree again, 
     
     
  
 
 
	 00:21:47
     ◼
      
     ► 
     and so here's version 2. 
     
     
  
 
 
	 00:21:50
     ◼
      
     ► 
     And now it's like, alright, now all that goodwill I had, I'm kind of cashing it in and saying, 
     
     
  
 
 
	 00:21:55
     ◼
      
     ► 
     please give me some money again. 
     
     
  
 
 
	 00:21:57
     ◼
      
     ► 
     And you have to have some kind of feature or some kind of thing that you're able to 
     
     
  
 
 
	 00:22:01
     ◼
      
     ► 
     to point to and say, "This is why you should pay me money now." But in the App Store, and 
     
     
  
 
 
	 00:22:06
     ◼
      
     ► 
     at least in the way the App Store economics work, that isn't actually the reality anymore. 
     
     
  
 
 
	 00:22:11
     ◼
      
     ► 
     That it isn't a situation where most of my apps don't make any substantial—like, when 
     
     
  
 
 
	 00:22:17
     ◼
      
     ► 
     I do a major update, I see a little bump, maybe, in revenue, but overall it's really 
     
     
  
 
 
	 00:22:23
     ◼
      
     ► 
     just about sustaining and maintaining a level of revenue in the long run. And that changes 
     
     
  
 
 
	 00:22:29
     ◼
      
     ► 
     a lot that mentality that like the version numbers of my apps are in some ways kind of 
     
     
  
 
 
	 00:22:32
     ◼
      
     ► 
     arbitrary like they're almost more just marketing things like if I'm trying to get the attention 
     
     
  
 
 
	 00:22:36
     ◼
      
     ► 
     of the press then I may call it a bigger number but I could also just call it version one 
     
     
  
 
 
	 00:22:41
     ◼
      
     ► 
     version two version three version four and it would be just as descriptive as far as 
     
     
  
 
 
	 00:22:45
     ◼
      
     ► 
     my customers are concerned. 
     
     
  
 
 
	 00:22:48
     ◼
      
     ► 
     Yeah I find the same thing with you know with paid apps especially where like you know if 
     
     
  
 
 
	 00:22:52
     ◼
      
     ► 
     If you, the massive version number change is really good for press but in sales, the 
     
     
  
 
 
	 00:23:00
     ◼
      
     ► 
     sales can result from that press, you get a little sales bump sometimes but I've always 
     
     
  
 
 
	 00:23:04
     ◼
      
     ► 
     found that whenever I've done major updates to apps, this is going all the way back to 
     
     
  
 
 
	 00:23:09
     ◼
      
     ► 
     Instapaper certainly Overcast, whenever I've done like significant feature updates or major 
     
     
  
 
 
	 00:23:13
     ◼
      
     ► 
     like X.0 updates, there is a bump but it's a pretty small bump in sales and every major 
     
     
  
 
 
	 00:23:21
     ◼
      
     ► 
     version bump is smaller than the one that came before it. 
     
     
  
 
 
	 00:23:26
     ◼
      
     ► 
     So I think you're right, it really is about maintenance. 
     
     
  
 
 
	 00:23:29
     ◼
      
     ► 
     You are keeping the app up to date, you are keeping it competitive in a competitive field, 
     
     
  
 
 
	 00:23:35
     ◼
      
     ► 
     you are keeping users interested, but I don't think any of those things require major X.O 
     
     
  
 
 
	 00:23:42
     ◼
      
     ► 
     updates really ever necessarily. 
     
     
  
 
 
	 00:23:46
     ◼
      
     ► 
     You can add moderate scale features over time as they come and achieve most of that same 
     
     
  
 
 
	 00:23:51
     ◼
      
     ► 
     We are sponsored this week by Imageix. Imageix.com/utr for under the radar. Imageix is basically 
     
     
  
 
 
	 00:24:00
     ◼
      
     ► 
     an image CDN that they serve your images but you can do operations on them. So you can 
     
     
  
 
 
	 00:24:06
     ◼
      
     ► 
     resize them, you can translate their formats, you can scale and crop and twist and change 
     
     
  
 
 
	 00:24:13
     ◼
      
     ► 
     the colors and do everything that you can add annotations to them. The number of operations 
     
     
  
 
 
	 00:24:18
     ◼
      
     ► 
     you can do on these images simply by adding URL parameters and signing the URLs is incredible. 
     
     
  
 
 
	 00:24:26
     ◼
      
     ► 
     I mean, you can resize them to any dimension of course, you can crop, you can letterbox, 
     
     
  
 
 
	 00:24:31
     ◼
      
     ► 
     any kind of resizing needs you have they can do it. But you can also, as I said, you can 
     
     
  
 
 
	 00:24:34
     ◼
      
     ► 
     do things like blur filters, you can do all sorts of special effects, you can adjust the 
     
     
  
 
 
	 00:24:39
     ◼
      
     ► 
     colors, the toning, you can really do quite a bit with ImageX. I use it myself for Overcast 
     
     
  
 
 
	 00:24:46
     ◼
      
     ► 
     and I've been very impressed with it. 
     
     
  
 
 
	 00:24:48
     ◼
      
     ► 
     It is very, very fast. 
     
     
  
 
 
	 00:24:50
     ◼
      
     ► 
     Overall, I would say ImageX is really worth looking at 
     
     
  
 
 
	 00:24:54
     ◼
      
     ► 
     if you need image manipulation either for your app 
     
     
  
 
 
	 00:24:57
     ◼
      
     ► 
     where you're pulling images off the web, 
     
     
  
 
 
	 00:24:59
     ◼
      
     ► 
     you need to do something with them into an app, 
     
     
  
 
 
	 00:25:01
     ◼
      
     ► 
     or for web pages, it's especially nice for web pages 
     
     
  
 
 
	 00:25:05
     ◼
      
     ► 
     because you can do things like serve responsive images, 
     
     
  
 
 
	 00:25:07
     ◼
      
     ► 
     serve different resolutions to different browsers. 
     
     
  
 
 
	 00:25:09
     ◼
      
     ► 
     There are lots of libraries, 
     
     
  
 
 
	 00:25:11
     ◼
      
     ► 
     if you want to use client libraries, 
     
     
  
 
 
	 00:25:13
     ◼
      
     ► 
     they have lots of those including one for Swift 
     
     
  
 
 
	 00:25:15
     ◼
      
     ► 
     called Iris, which is from the developers over at Hodinkee. 
     
     
  
 
 
	 00:25:18
     ◼
      
     ► 
     And if you look at, Hodinkee is a watch website, 
     
     
  
 
 
	 00:25:21
     ◼
      
     ► 
     like a watch enthusiast website, 
     
     
  
 
 
	 00:25:23
     ◼
      
     ► 
     and they have beautiful imagery all over the site, 
     
     
  
 
 
	 00:25:27
     ◼
      
     ► 
     and that's all powered by ImageX, 
     
     
  
 
 
	 00:25:28
     ◼
      
     ► 
     so you can see a great example 
     
     
  
 
 
	 00:25:29
     ◼
      
     ► 
     of all the things it can do there. 
     
     
  
 
 
	 00:25:30
     ◼
      
     ► 
     Anyway, check it out today. 
     
     
  
 
 
	 00:25:32
     ◼
      
     ► 
     ImageX.com, that's I-M-G-I-X.com/UTR. 
     
     
  
 
 
	 00:25:36
     ◼
      
     ► 
     Thanks a lot to ImageX for sponsoring our show. 
     
     
  
 
 
	 00:25:39
     ◼
      
     ► 
     - All right, and Hank, in closing down this, 
     
     
  
 
 
	 00:25:42
     ◼
      
     ► 
     one thing that I was trying to think through 
     
     
  
 
 
	 00:25:44
     ◼
      
     ► 
     is the concrete example of the best kind of features to add to an app. 
     
     
  
 
 
	 00:25:51
     ◼
      
     ► 
     And the thought that came to mind is something that they'll talk about in video gaming, 
     
     
  
 
 
	 00:25:56
     ◼
      
     ► 
     when you're doing, like, they'll be doing a patch or an update to an app, or to the 
     
     
  
 
 
	 00:26:01
     ◼
      
     ► 
     game, and they'll call them "quality of life improvements," which are changes that 
     
     
  
 
 
	 00:26:05
     ◼
      
     ► 
     don't change the fundamental nature of your app, or of the game in this case, but are 
     
     
  
 
 
	 00:26:10
     ◼
      
     ► 
     things that make using it better. 
     
     
  
 
 
	 00:26:13
     ◼
      
     ► 
     Like it's just a quality of life thing. 
     
     
  
 
 
	 00:26:14
     ◼
      
     ► 
     It makes doing this operation that used to be kind of annoying or complicated or awkward 
     
     
  
 
 
	 00:26:20
     ◼
      
     ► 
     simple or more straightforward. 
     
     
  
 
 
	 00:26:22
     ◼
      
     ► 
     And like that kind of quality of life update, when I'm looking at an app that I have and 
     
     
  
 
 
	 00:26:26
     ◼
      
     ► 
     I'm trying to think of what are features I need to add, the first thing that I always 
     
     
  
 
 
	 00:26:30
     ◼
      
     ► 
     try and think through and I think is a great place to start is like are there any quality 
     
     
  
 
 
	 00:26:33
     ◼
      
     ► 
     of life improvements I can do? 
     
     
  
 
 
	 00:26:35
     ◼
      
     ► 
     Is there some operation right now that is common and frequent but awkward and annoying? 
     
     
  
 
 
	 00:26:40
     ◼
      
     ► 
     And if I can find anything like that, that is by far the low-hanging fruit that I need 
     
     
  
 
 
	 00:26:44
     ◼
      
     ► 
     to make sure that I'm taking care of before I worry too much about inventing new problems 
     
     
  
 
 
 
	 00:26:51
     ◼
      
     ► 
     Like, are there existing problems that I have that the app solves, but solves in a way that 
     
     
  
 
 
	 00:26:56
     ◼
      
     ► 
     I can make better? 
     
     
  
 
 
	 00:26:58
     ◼
      
     ► 
     And if I do that, that's where I think you get the most bang for your buck. 
     
     
  
 
 
	 00:27:01
     ◼
      
     ► 
     And that's where building features out and doing these little improvements that you can 
     
     
  
 
 
	 00:27:05
     ◼
      
     ► 
     you can ultimately, you can over time make your app 
     
     
  
 
 
	 00:27:09
     ◼
      
     ► 
     just more, better and better without making it 
     
     
  
 
 
	 00:27:11
     ◼
      
     ► 
     more and more complicated, or more and more sprawling. 
     
     
  
 
 
	 00:27:16
     ◼
      
     ► 
     - All right, thanks a lot for listening this week. 
     
     
  
 
 
	 00:27:18
     ◼
      
     ► 
     Please recommend us on Overcast if you get a chance, 
     
     
  
 
 
	 00:27:20
     ◼
      
     ► 
     help spread the show, tell a friend, 
     
     
  
 
 
	 00:27:22
     ◼
      
     ► 
     we'd love to get more listeners to the show. 
     
     
  
 
 
	 00:27:25
     ◼
      
     ► 
     And if you wanna support our network and us at Relay FM, 
     
     
  
 
 
	 00:27:28
     ◼
      
     ► 
     Relay FM just launched memberships recently, 
     
     
  
 
 
	 00:27:31
     ◼
      
     ► 
     so you can pay money optionally to any Relay FM show 
     
     
  
 
 
	 00:27:35
     ◼
      
     ► 
     or to all of Relay FM shows. 
     
     
  
 
 
	 00:27:37
     ◼
      
     ► 
     If you wanna just give like a nice 
     
     
  
 
 
	 00:27:38
     ◼
      
     ► 
     basically monthly donation to us. 
     
     
  
 
 
	 00:27:40
     ◼
      
     ► 
     We'd appreciate that if you feel like it, 
     
     
  
 
 
	 00:27:41
     ◼
      
     ► 
     if not, no big deal. 
     
     
  
 
 
	 00:27:42
     ◼
      
     ► 
     Thanks a lot to Imageous for sponsoring. 
     
     
  
 
 
	 00:27:44
     ◼
      
     ► 
     And yeah, thank you all for listening, 
     
     
  
 
 
	 00:27:46
     ◼
      
     ► 
     and we'll talk to you next week.