00:00:04 ◼ ► app development. I'm David Smith. Usually I am joined by Marco Arment, but unfortunately
00:00:08 ◼ ► he has lost his voice and that makes broadcasting profoundly difficult. But nevertheless, the
00:00:17 ◼ ► Okay, so I'm not sure how many people actually who listen to the show would remember, but
00:00:24 ◼ ► back several years ago, I used to do a show by myself called Developing Perspective, and
00:00:29 ◼ ► that show was never longer than 15 minutes, which was a constraint that I put on myself,
00:00:37 ◼ ► mostly so that I would actually do the show. I found that when I started it out, I just
00:00:42 ◼ ► wanted to have a podcast, and I decided that having it be this open-ended thing was much
00:00:47 ◼ ► more intimidating than every week, just saying, "Well, I'll just sit down and think of 15
00:00:52 ◼ ► minutes of things to say. How hard can it be to talk for 15 minutes?" And so I developed
00:00:57 ◼ ► the skill of doing that, and what I decided to do this week, because Marco is sick, was
00:01:01 ◼ ► to refresh that skill and do two roughly 15-minute segments of the show this week, partly because
00:01:11 ◼ ► I think that works well for a single-person thing to break it into chunks, but also just
00:01:17 ◼ ► as a general rule, I try and make sure that I never lose skills once I gain them. I think
00:01:22 ◼ ► in general that's a good way to approach life, that in general we should hopefully be learning
00:01:26 ◼ ► new things as we go. We should be improving ourselves and getting better, and if I lose
00:01:32 ◼ ► a skill that I've learned or it becomes too rusty to be useful, that's not great. That's
00:01:36 ◼ ► problematic. And so I was like, "Well, this is actually a perfect opportunity for me to
00:01:41 ◼ ► refresh the skill of doing a single show, a one-man show, 15 minutes or less, not because
00:01:47 ◼ ► I expect to need that skill in the short term, but nevertheless I want to make sure I don't
00:01:51 ◼ ► lose it." So that's the general flow of this week, and I'm going to do two short segments,
00:02:01 ◼ ► so if it doesn't work, don't worry, just come back next week and it'll be back to normal.
00:02:06 ◼ ► So for our first topic that I wanted to talk about this week, I'm going to talk about the
00:02:24 ◼ ► in this week, and this is a pattern that has happened many times over my development career
00:02:36 ◼ ► see something that I could be a part of, and sometimes these opportunities are big, sometimes
00:02:43 ◼ ► these opportunities are small, but nevertheless, these are opportunities. And the pitfall and
00:03:07 ◼ ► will be slightly problematic or won't be genuine or true to my interests or passions or whatever
00:03:12 ◼ ► you want to look at it. And the specific example why this is top of mind for me this week is
00:03:23 ◼ ► Apple Watch Series 3 now has the ability to track skiing and snowboarding workouts. And
00:03:28 ◼ ► Apple has kind of made a big deal about this. You know, a big article in their main PR section,
00:03:34 ◼ ► they seem to kind of push it out to a variety and a pretty wide swath of news publications.
00:03:42 ◼ ► They're trying to make a big deal out of this. And that's awesome. And one of the people
00:03:46 ◼ ► who are being featured in this is a friend of mine, Curtis Herbert, who makes the Slopes
00:03:50 ◼ ► app, which, you know, by all accounts, I'm not a skier or snowboarder myself, which I'll
00:03:54 ◼ ► get to in a minute is why this is problematic. But he makes this great app that looks perfect.
00:03:59 ◼ ► And he's had this great Slopes diary where he has talked through kind of the independent
00:04:05 ◼ ► development aspects of this app. It's a very, you know, he, for the most part, is an independent
00:04:17 ◼ ► there with a couple of other apps. But what's awkward for me is that this was a feature
00:04:22 ◼ ► that I thought about adding to Workouts++. Because basically, in the Series 3 Apple Watch,
00:04:29 ◼ ► they, you know, they added a, you know, some tools to make monitoring skiing and snowboarding
00:04:37 ◼ ► workouts fairly straightforward, that in many ways, I can treat them like other workout
00:04:42 ◼ ► types that, like a run or a cycle or something like that, where the watch itself is doing
00:04:48 ◼ ► a lot of the tricky processing that I ordinarily would need to have done myself, you know,
00:04:56 ◼ ► in terms of safe, you know, segmenting your activity so that it can detect when you're,
00:05:04 ◼ ► things out, calculating a variety of statistics about this. And it made it a lot fairly straightforward.
00:05:10 ◼ ► And when I saw this feature come out, or be added to the SDK, I knew this was something
00:05:15 ◼ ► that Apple was going to kind of be putting some weight behind. And I think some of that
00:05:19 ◼ ► was just because, A, they mentioned it specifically during the Series 3 Apple Watch, like on stage
00:05:27 ◼ ► presentation that they made this kind of offhand comment that didn't really have any best,
00:05:32 ◼ ► any backing in like, information at the time that he just like, Jeff Williams just mentioned
00:05:43 ◼ ► really there wasn't much to it until I think it was watchOS 4.2 actually added the, the
00:05:51 ◼ ► workout types and all this workout processing stuff. And so then suddenly all these apps
00:05:54 ◼ ► could take advantage of it. And, you know, it's like, when it's mentioned on stage, when
00:06:00 ◼ ► it's mentioned kind of late cycle like this, it seems like the kind of thing where it's
00:06:03 ◼ ► a good marketing opportunity for Apple to kind of create a something topical and newsworthy
00:06:09 ◼ ► about a product, you know, just try and, you know, bump up sales again, thought that they
00:06:17 ◼ ► rush of watch purchases, I imagine they're looking for opportunities to, you know, give
00:06:26 ◼ ► to get a Series 3 Apple Watch. And so it made sense that this was going to be something
00:06:35 ◼ ► a skier or snowboarder, I have like fallen down the hill a few times in my life, trying
00:06:40 ◼ ► to ski, or trying to snowboard, but it's never really been something that I do. It's something
00:06:50 ◼ ► And it was interesting. But it wasn't, it's not something that I avidly do. It's not something
00:07:01 ◼ ► ways straightforward, like I could very easily add it to Workouts++. But I didn't really
00:07:11 ◼ ► be interested in. And then also, it was kind of tricky for me, because to really test something
00:07:21 ◼ ► And I'm sure I could have found somebody to beta test it or kind of work on it. But it's
00:07:33 ◼ ► You know, I similarly in Workouts++, I don't do a lot of swimming myself. But I have my
00:07:45 ◼ ► me a lot of good feedback. And you know, going swimming on a regular basis is much more practical
00:07:50 ◼ ► than going skiing or snowboarding on a regular basis. And I mean, I remember seeing Curtis
00:07:54 ◼ ► talking about how he, you know, had to go on these trips where he was, you know, skiing
00:07:59 ◼ ► down a mountain with a, you know, a laptop in his backpack, trying to kind of then like
00:08:11 ◼ ► no simulator support for it either. So that was doubly tricky. So in the end, I decided
00:08:26 ◼ ► tracking apps. And then now, this week, you know, I see the fruits of what may have possibly
00:08:33 ◼ ► been if I had pursued it. And that's not to say that if I'd added it to Workouts++ that,
00:08:48 ◼ ► wanted to unpack why I don't regret it. And I think it's coming from an experience I've
00:08:58 ◼ ► that there is going to be this sort of this opportunity for quote unquote, like free publicity.
00:09:04 ◼ ► And I've got pursued it in the past. But the awkward reality is that publicity is not free.
00:09:10 ◼ ► That is, in fact, comes with tremendous costs. And often they are the kind of external hard
00:09:26 ◼ ► were introduced to iOS, they were kind of pushed and promoted. And it seemed like something
00:09:37 ◼ ► great, let's go for it. Let's make some iMessage apps. And I made iMessage apps for a bunch
00:09:40 ◼ ► of my apps. And as best I can tell, it's led to almost no use or very limited use, nevertheless.
00:09:54 ◼ ► apps are very poorly used. And I have to maintain them going forward. And I didn't really get
00:10:01 ◼ ► much out of it. In that case, there was, you know, Apple was promoting them. And I my apps
00:10:09 ◼ ► were picked up in a couple of the, you know, the promotional things in the App Store. And,
00:10:13 ◼ ► you know, certainly not to the degree of an article in, you know, in the PR section. But
00:10:22 ◼ ► thing is, even when I was making them, I was looking at these things and being like, is
00:10:26 ◼ ► anyone actually going to use this? Like, is this really the way someone is going to, you
00:10:32 ◼ ► know, choose to interact with the app and we're like kind of forcing it into into something
00:10:37 ◼ ► that I didn't really understand, that I didn't use myself and that, you know, as a result
00:10:43 ◼ ► was never really going to have that level of care and attention and quality that I think
00:10:49 ◼ ► you you would hope or I, you know, I ideally have in a product you make. And this is where
00:10:55 ◼ ► I think sort of like the end lesson comes from this is that it's important to, you know,
00:11:01 ◼ ► develop things because you want to develop them that because you think it'll be interesting
00:11:19 ◼ ► that I use every day that are solving actual felt problems that I feel and apps that I'm
00:11:25 ◼ ► not developing out of a fear of missing out on an opportunity that I'm not just like doing
00:11:29 ◼ ► it because or to try and time or take advantage of something because if I don't use if I don't
00:11:36 ◼ ► use it on a regular basis, if it isn't, you know, sort of any in any way kind of overlapping
00:11:41 ◼ ► with my interests, it's it even if it does get picked up, even if it does create an opportunity,
00:12:05 ◼ ► like super glad and excited for the people who got picked up. But definitely in the back
00:12:09 ◼ ► of my mind, I had this twinge of, well, that could have been me, you know, well, like I
00:12:33 ◼ ► with in terms of a motion and activity that would simulate skiing was that I rode my bike
00:12:40 ◼ ► up the biggest hill I could find in my neighborhood, and then sort of glided down the hill as you
00:12:47 ◼ ► know, sort of fairly quickly, and got to the bottom, waited a minute and then walked my
00:12:56 ◼ ► times to simulate being a ski run, which half worked half didn't, but was, you know, nevertheless,
00:13:01 ◼ ► slightly comedic. And I imagine me, my neighbors think that I was kind of crazy to just be
00:13:06 ◼ ► I was just biking up and down this hill over and over and over again. But you know, that
00:13:11 ◼ ► was not the life that I wanted. And so I decided to can it and I feel good about that. So you
00:13:19 ◼ ► you're doing it for good reasons and for reasons that you think it might be sustainable going
00:13:26 ◼ ► This episode of under the radar is brought to you by Linode with Linode you have access
00:13:29 ◼ ► to a suite of powerful hosting options with prices starting as low as $5 a month and you
00:13:33 ◼ ► can be up and running with your own Linode server in the Linode cloud in under a minute.
00:13:38 ◼ ► Linode offers industry leading performance with native SSD storage, a 40 gigabit network,
00:13:42 ◼ ► and 95 processors. They have 10 data centers spread all over the world for great redundancy
00:13:47 ◼ ► as well as moving your servers close to your customers. They have an API that's great for
00:13:52 ◼ ► automating tasks and getting quickly set up and repeatably set up and as well as making
00:13:57 ◼ ► everything accessible and manageable via command line. And all of Linode's pricing tiers now
00:14:07 ◼ ► surprised at the end of the month and they offer great things like backups and node balancers
00:14:16 ◼ ► find to be tremendously useful and they allow me to not worry about the servers the server
00:14:21 ◼ ► side of my hosting. I can focus on the application side which is great. And they have fantastic
00:14:26 ◼ ► pricing their prices for one gigabyte of RAM start at only $5 a month and they offer all
00:14:35 ◼ ► show if you sign up to at Linode.com/radar you'll only be supporting us but you'll also
00:14:40 ◼ ► get $20 towards any Linode plan on a one gigabyte RAM plan that would be four months free and
00:14:47 ◼ ► you also have a seven day money back guarantee so there's nothing to lose. So you can go
00:14:56 ◼ ► the promo code radar 2018 at checkout to make the same savings. Thank you so much to Linode
00:15:02 ◼ ► for sponsoring this show. All right. So I also for the second topic for the second episode
00:15:09 ◼ ► the second sub episode inside of this episode I wanted to talk a little bit about communicating
00:15:14 ◼ ► changes to customers. And this is something that I ran into this last week as well where
00:15:21 ◼ ► I made a big change to the way that pedometer++ works in terms of the ability to migrate steps
00:15:28 ◼ ► from one app from one phone to another. So if you get a new phone you can move your old
00:15:31 ◼ ► history along with it even if you're not doing a backup and restore to that phone which is
00:15:36 ◼ ► a feature a lot of people have wanted for a while. And it's top of mind because I added
00:16:03 ◼ ► open the updates tab in the App Store. If you have automatic updates turned on the updates
00:16:08 ◼ ► will just you know kind of happen for you in the background and even if you do periodically
00:16:23 ◼ ► in my mind I hadn't really thought about it when I did this update. I hadn't really thought
00:16:28 ◼ ► more in more detail about how best to communicate this change. But in retrospect I really should
00:16:35 ◼ ► have it's really is something that I should have talked about or thought about and tried
00:16:47 ◼ ► it's a feature that they want I and it's in the app you know hopefully they can find it
00:16:52 ◼ ► because for every one person who is actually going to reach out to me and say hey you know
00:17:00 ◼ ► just assume it isn't there and leave the app frustrated and I definitely don't want that.
00:17:05 ◼ ► So first I guess the first lesson from this experience is to assume that nobody ever reads
00:17:11 ◼ ► the release notes. Some people will and that's great and I think it's important to write
00:17:21 ◼ ► know we are always striving to make our app better. This app this update includes stuff.
00:17:26 ◼ ► That's not really helpful. I don't find those kind of release notes particularly useful.
00:17:36 ◼ ► will tend to do that but and I can understand why they do that but I find especially being
00:17:42 ◼ ► an independent developer it's a great opportunity to endear myself slightly to my users to write
00:17:48 ◼ ► good change notes and to make them personal like I try and actually write them as though
00:17:52 ◼ ► I'm writing a letter to my customer because if the customer is reading that that is functionally
00:18:00 ◼ ► of that but I think I need to assume that nobody's ever going to read those and so think
00:18:06 ◼ ► about whenever I make changes to the application how to communicate that. The one extreme this
00:18:13 ◼ ► is something that I've never done myself and honestly I would not recommend but it's probably
00:18:16 ◼ ► worth mentioning is the approach of the like big pop up or banner or like the modal blocking
00:18:28 ◼ ► have like it's slightly grayed out with like call outs or arrows or you know bubbles like
00:18:38 ◼ ► over here here's this cool new thing and the reason I tend to not like those is it assumes
00:18:46 ◼ ► that A that the user is going to be interested in whatever the new feature is you know that
00:18:50 ◼ ► they're going to want to go you know they want to interrupt whatever it is they're doing
00:18:55 ◼ ► even though in this case you're interrupting them and ostensibly for their benefit it's
00:18:59 ◼ ► still you're interrupting them you're still doing something that is not the reason they
00:19:03 ◼ ► open the app in the first place most likely and so it's you're kind of getting in their
00:19:08 ◼ ► way and it also is it kind of is awkward to manage in terms of which you know in practice
00:19:25 ◼ ► over time your user base will grow which is wonderful hopefully but you know if there's
00:19:29 ◼ ► this this the retention rate of most applications is relatively low you know say 10% 20% and
00:19:35 ◼ ► so you're most of your people are being onboarded for the first time anyway and so you really
00:19:41 ◼ ► you should also make sure that it is optimized not just for communicating change but for
00:19:46 ◼ ► communicating in the first place that for helping a new user understand the application
00:19:50 ◼ ► and you can't you know it's not like if every time I make a change I added a new pop-up
00:19:55 ◼ ► or a new bubble or something to the application you know and you launch the app and it's like
00:20:04 ◼ ► apps where it's like you know would you like the tip of the day and it's a kind of an in
00:20:13 ◼ ► detailed to the point that you know users are going to need a lots of help to find their
00:20:19 ◼ ► way around like that's tricky and problematic and I can it's understandable like I'm not
00:20:29 ◼ ► much rather have an application that is intuitive and understandable without needing to result
00:20:36 ◼ ► So how to how to do it and as I was thinking about this and what am I going to be doing
00:21:05 ◼ ► to do it for you know use in Excel or numbers or something or they want to you know they
00:21:12 ◼ ► want to be able to have a an exchangeable format of their step data so great I've added
00:21:23 ◼ ► the sort of the export transfer file in the same email that you get when you export the
00:21:28 ◼ ► CSV because that was very straightforward it was very simple to do there and intuitively
00:21:32 ◼ ► it made sense to me but I realize in retrospect there's no way for them to know that this
00:21:38 ◼ ► new thing is now there and so one little change I'm going to make is I'm going to tweak the
00:21:45 ◼ ► the copy of that section of the app so rather than saying export steps you'll now say export
00:21:54 ◼ ► I'm not like duplicating buttons and options in the application which could add more complexity
00:21:59 ◼ ► but I'm just adding a word and I think that word will do a long way to communicating that
00:22:06 ◼ ► this is possible and hopefully for new customers who find themselves in a situation where they
00:22:10 ◼ ► want to transfer their steps they'll now immediately know how to go there another thing that comes
00:22:15 ◼ ► to mind and this isn't applied in my particular situation but is that is important to always
00:22:20 ◼ ► think about what the default for a new option should be and be thoughtful about this because
00:22:31 ◼ ► so for example in my big update that I'm working on for sleep plus plus I'm adding a the concept
00:22:46 ◼ ► you know try and reward you or encourage you when you've done that and not like punish you
00:22:53 ◼ ► able to do that and you start to think about well how am I going to communicate this new
00:22:59 ◼ ► feature well it's like hey it's important to have a thoughtful default that if I default
00:23:04 ◼ ► that to a number that is too high it's going to come across immediately in the negative
00:23:15 ◼ ► all the nights turn red because oh man you you know you haven't been hitting your sleep
00:23:19 ◼ ► goal recently but they haven't even set their sleep goal well that's kind of that's not
00:23:23 ◼ ► so great so instead I'm going to set the you know it's like I'm going to default the goal
00:23:31 ◼ ► I'm going to go for seven hours you know it's like in general most people say eight hours
00:23:35 ◼ ► is a good goal for sleep I'm going to start at seven and then hopefully for a lot of people
00:23:40 ◼ ► they'll have a lot of you know have this kind of nice mix of red and green steps you start
00:23:58 ◼ ► the default such that it is intriguing rather than confounding hopefully that will help
00:24:04 ◼ ► and I think in just in general whenever you add a new feature it's you know it's something
00:24:17 ◼ ► you know just the user needs to should they want should they have to actively take steps
00:24:22 ◼ ► to turn it on or should it just automatically be turned on and you just have to be really
00:24:30 ◼ ► find is it's deciding the right time to prompt for privacy options in iOS so as another example
00:24:39 ◼ ► in the sleep plus plus update there's automatic sleep tracking now which requires that you
00:24:44 ◼ ► give me your you know prompt you that you have to give me permission to access a variety
00:24:50 ◼ ► of other health database types and in general that you know is is fine but I don't want
00:24:57 ◼ ► to necessarily you know then that the first time you launch the app after you have installed
00:25:07 ◼ ► hey I need your health data like that's kind of creepy and not really great and so what
00:25:12 ◼ ► I'm expecting to do instead is pop up a message at the top of the app at the top of the main
00:25:19 ◼ ► table view saying hey the app can do sleep automatic sleep sleep tracking now would you
00:25:28 ◼ ► up the health permission prompt at that point and I think that's going to be a much more
00:25:34 ◼ ► comfortable thing that you know more people are going to want to actually give me access
00:25:38 ◼ ► to their health data in that way and I think overall that's probably going to be a more
00:25:47 ◼ ► they want to turn it on because honestly most people do want to probably want to turn it
00:25:50 ◼ ► on but nevertheless if I prompt if I just pop it up right away initially like that might
00:25:56 ◼ ► be really confusing or it might not be a nice feeling that like all of a sudden they didn't
00:26:02 ◼ ► do nothing change from their perspective because the app just updated underneath of them and
00:26:06 ◼ ► then now all of a sudden I'm asking for their health data so that's just something I'm going
00:26:18 ◼ ► you know kind of allow you to get full credit in some ways for these changes that you're
00:26:23 ◼ ► making though I suppose no matter what you do here it's also probably just worth saying
00:26:28 ◼ ► I expect that people are still going to miss it and the people you're still going to get
00:26:31 ◼ ► customer support requests asking for features that are things that you missed and I'll leave
00:26:36 ◼ ► you with something that I think it was I think it was Gus Mueller the maker of Acorn was
00:26:47 ◼ ► it was him he was talking about how he likes getting customer support requests for things
00:26:51 ◼ ► that are confusing because they're an opportunity to see where the problems are in your design
00:27:03 ◼ ► as as a negative experience that like someone asking for a customer support is can be a
00:27:08 ◼ ► bad thing but on the flip side you know here's an opportunity to make the app clearer that
00:27:26 ◼ ► an opportunity and if if you try and communicate that change and your customer doesn't get
00:27:36 ◼ ► that's it for this this week like I said hopefully next week we'll be back to our normally scheduled