Under the Radar

Under the Radar 91: Removing Features


00:00:00   welcome to under the radar a show but

00:00:02   independent iOS app development I'm mark

00:00:04   Worman and I'm David Smith under the

00:00:06   radar is never longer than 30 minutes so

00:00:08   let's get started so today we wanted to

00:00:10   talk about having to remove features of

00:00:13   the apps and this is you know I've done

00:00:16   this a lot over time so a lot of times

00:00:18   it's kind of questionable whether like

00:00:20   you really have to remove something it's

00:00:23   kind of a blurry line of like are you

00:00:24   removing something because some

00:00:26   condition is changing or somebody is

00:00:29   forcing you to remove it or are you

00:00:31   removing it because you don't like the

00:00:33   feature anymore or they it's hard it's

00:00:35   too hard to support or something like

00:00:37   that and I've done a lot of both

00:00:41   honestly more the latter than the former

00:00:44   honestly but III think but what I'm

00:00:48   facing this summer is is I'm having to

00:00:52   remove the send to watch feature from

00:00:55   overcast this is a feature that would

00:00:58   use the iPhone app to transcode the the

00:01:02   podcast file to a smaller size and then

00:01:05   set in bacon smart feed and then send it

00:01:07   over Bluetooth to the watch and then the

00:01:10   watch would have its own local copy of

00:01:11   the file and then it could play the file

00:01:14   directly from the watch to a pair of

00:01:16   bluetooth headphones if you were you

00:01:19   know out running with the watchman and

00:01:20   didn't have your phone with you this is

00:01:22   a feature that people had requested for

00:01:25   ever since the first watch came out it

00:01:27   was it was the number one feature

00:01:28   request from watch owners was the

00:01:31   ability to have standalone playback you

00:01:34   know playback without your phone and

00:01:36   basically and and this feature I took me

00:01:39   a very very long time to get this

00:01:40   working I worked a lot on it this past

00:01:42   winter

00:01:42   I've probably invested something like

00:01:45   three or four months of development time

00:01:46   and to just this feature and the the

00:01:50   main problem I kept facing was the the

00:01:54   background audio playback api's on watch

00:01:57   OS are very very rudimentary because

00:01:59   watch OS has to run on this very very

00:02:01   low power device and one thing that

00:02:04   basically doesn't exist in watch OS is

00:02:06   background execution of apps like

00:02:10   few can do it mainly late workout

00:02:12   processing apps can do it but almost

00:02:14   nothing else on watch os is allowed to

00:02:16   persistently run in the background the

00:02:19   way audio apps on iOS are you know in

00:02:22   iOS you have audio playback voice you

00:02:25   have location tracking like turn my turn

00:02:27   directions all these kinds of apps can

00:02:29   stay in the background indefinitely as

00:02:32   long as the user is using them they can

00:02:33   keep staying the background on watch OS

00:02:35   that list is much shorter it's it and

00:02:37   notably does not usually include audio

00:02:40   apps and so there is there are a few

00:02:43   api's you can use them the biggest one

00:02:45   is the WK audio file player api but it's

00:02:48   very very rudimentary and honestly I've

00:02:52   had a lot of problems and shortcomings

00:02:53   trying to use it a lot of bugs a lot of

00:02:56   just missing features because the way it

00:02:58   works is it actually is out of process

00:03:01   it you basically hand it a file URL and

00:03:05   it plays and then your app gets

00:03:07   terminated in the background and then

00:03:09   you know at various times your app could

00:03:11   be woken back up again to be notified of

00:03:13   stuff going on and the audio player

00:03:15   maybe if you're lucky or if the user

00:03:17   interacts with you you'll obviously wake

00:03:19   up for that but otherwise you're kind of

00:03:21   just you're not running and that that

00:03:23   makes it very very hard to make a good

00:03:26   audio playback experience especially for

00:03:27   things like podcasts that have to be

00:03:29   resumable they have to save your

00:03:30   position and stuff like that and in so

00:03:34   forever 4 months I was fighting these

00:03:37   api's I was I just I could not get a

00:03:40   good experience out of watch background

00:03:43   audio playback the problem was not

00:03:45   sending the files over all of that has

00:03:46   its own problems of things like it's

00:03:48   very very slow there's no way to detect

00:03:50   the progress of a transfer which is very

00:03:53   very bad for the user experience but

00:03:56   even if you can get past the

00:03:57   transferring of the files or even if you

00:03:59   could have the watch download the files

00:04:01   directly over over Wi-Fi or over maybe a

00:04:03   future cellular connection and watch you

00:04:05   still have would have the problem of

00:04:07   background audio playback on watch OS

00:04:09   and so what happened was this past

00:04:12   spring an app called watch player by

00:04:14   peter knapp came out and it it uncovered

00:04:17   for me a new method basically if you if

00:04:21   you said you were a work out process

00:04:24   you could use a V audio player and use

00:04:28   it directly and your app would stay

00:04:29   running all the time without interfering

00:04:32   with other workout processing apps it

00:04:34   would just do the right thing it would

00:04:35   do what you want it would it would stay

00:04:37   in the background

00:04:38   as audio was playing and allow you to do

00:04:41   things like save your position reliably

00:04:42   and not have to deal with all the out of

00:04:44   process bugs of WK audio file player and

00:04:46   stuff like that it was and it didn't

00:04:49   have any kind of weird interaction with

00:04:52   remote controls or the now playing

00:04:54   screen which is part of the problems I

00:04:55   have with the deputy audio file player

00:04:57   API it has a lot of weird interactions

00:04:59   there anyway so this was finally a way

00:05:02   to fairly reliably play audio in the

00:05:05   background on watch OS so I switched

00:05:07   over to this method and I released this

00:05:09   feature and it turns out that this was

00:05:13   not intended to work this way by Apple

00:05:17   and so this feature no longer works this

00:05:20   way in watch OS for watch OS 4 you can

00:05:23   only if you want background audio

00:05:25   playback you can only use WK audio file

00:05:27   player all the the method of saying your

00:05:30   a workout app to really play audio that

00:05:32   no longer works and watch OS 4 so now

00:05:36   I'm faced with this massive dilemma of

00:05:38   well I can go back and rewrite the whole

00:05:42   thing again for WK audio file player the

00:05:44   out of process API but that had a lot of

00:05:47   problems and a lot of bugs and a lot of

00:05:50   shortcomings and just weird behavior

00:05:53   like for instance it tries to it tries

00:05:56   to hook into the remote control buttons

00:05:58   so if you were to hit you know skip

00:06:02   forward or seek forward on a bluetooth

00:06:04   headphone or if you were to go to the

00:06:05   now playing screen and hit the

00:06:07   fast-forward button what that does for

00:06:10   double K audio file player is what you'd

00:06:11   expect from music it goes to the next

00:06:13   track podcast apps all interpret this as

00:06:17   seek forward by 30 seconds or whatever

00:06:20   you've set it to so for podcasts what

00:06:22   you want is very very different than

00:06:23   that and when you are controlling the

00:06:25   audio player and you have a proper

00:06:27   remote control API like you do on iOS

00:06:28   you can interpret that as whatever you

00:06:31   want and you can you can do that on

00:06:33   watch OS because this is all happening

00:06:36   out of

00:06:37   process out of your control with WK

00:06:39   audiophile player watch OS tries to do

00:06:41   try to do the right thing so it's it

00:06:43   just invalidates that file and seeks to

00:06:46   the next one if you are podcast app you

00:06:49   don't have a next one or you might have

00:06:51   used a WK audio cue file player or audio

00:06:54   file queue play or whatever it's called

00:06:55   but you have you have no way to

00:06:57   interpret that that click as something

00:07:00   else or that that fast forward command

00:07:01   of something else

00:07:02   so it just ends the track you're

00:07:04   listening to and goes to maybe the next

00:07:06   podcast whatever else and I tried so

00:07:09   many crazy hacks with this so for

00:07:11   instance splitting up podcasts into like

00:07:13   10 second chunks and just giving the key

00:07:15   like 400 files for first show I think

00:07:19   what could go wrong yeah unsurprisingly

00:07:21   watch OS did not appreciate that

00:07:23   approach various resource limitations I

00:07:27   think it probably didn't expect me to

00:07:29   have a playlist with 400 entries of

00:07:31   ten-second files so yeah that didn't

00:07:33   that wasn't great and so again like I I

00:07:35   tried all these hacks to try to get this

00:07:37   this wk audiophile player to give an

00:07:40   experience good enough for podcast

00:07:42   listening and basically it just didn't

00:07:44   happen it didn't happen four months ago

00:07:46   you know it didn't happen for the four

00:07:47   months I was working on it last winter

00:07:49   and I've tried over the last few weeks

00:07:51   to do it again and with watch OS 4 and

00:07:54   it's not any better in watch OS 4 it

00:07:56   still has all the same shortcomings and

00:07:59   all the same bugs and yes I have filed

00:08:00   many radars and I have I have you know

00:08:04   forward them to evangelists and things

00:08:06   like that but the fact is like

00:08:08   background audio playback I don't think

00:08:10   is is a very high priority on Apple

00:08:12   watch compared to like everything else

00:08:14   they have to do like apples very busy

00:08:16   this time of year with things like iOS

00:08:18   and you know the new phones at never and

00:08:20   all the new stuff for iPad and

00:08:21   everything so while I have filed bugs

00:08:24   and contacted you know the appropriate

00:08:25   people I I don't think I I don't think

00:08:28   these bugs are going anywhere basically

00:08:29   the beta Siri the beta season is almost

00:08:31   over and they haven't gone anywhere so

00:08:33   so I wouldn't expect them to

00:08:34   so I'm faced with this decision of like

00:08:36   do I move to this new API which is much

00:08:40   worse for my purposes in every possible

00:08:43   way and way buggy or introduces all

00:08:45   sorts of new problems and requires all

00:08:49   sorts of crazy hacks like you

00:08:51   using the timer and pulling things that

00:08:53   are supposed to be kvo compliant but are

00:08:54   and stuff like that like just a lot of

00:08:56   bugs and a lot of weird workarounds that

00:08:58   you have to do pulling things to see if

00:09:00   they're playing is or if they're stalled

00:09:02   because sometimes the is playing

00:09:04   attribute is wrong like it's there's all

00:09:06   sorts of problems that I can't even I

00:09:10   can't even overstate how many problems

00:09:11   there are with this API and so I can

00:09:14   switch to that but it's going to be way

00:09:16   way worse than it is now and right now

00:09:19   the feature is barely shippable as it is

00:09:21   like with the watch OS 3 version that

00:09:23   was barely shippable and I probably

00:09:24   shouldn't have shipped it but I did or I

00:09:27   can remove this feature now and just say

00:09:30   sorry everyone it didn't work out and

00:09:33   this has complicate like some people

00:09:35   have said like well I can I'll just

00:09:37   leave my watch on watch OS 3 well that's

00:09:40   not very that's not gonna work because

00:09:42   first of all if I leave this feature in

00:09:44   for everyone else when they upgrade to

00:09:45   watch OS 4 it stops working even if I

00:09:47   don't recompile the app for macho' s4

00:09:48   and then second of all if I update my

00:09:51   app to iOS 11 and watch OS 4 then if

00:09:55   their watch is still on three it'll just

00:09:57   be deleted from the wrap when they

00:09:58   update the phone app so they would have

00:10:00   to also not update to iOS 11 and that's

00:10:02   unlikely you know so anyway I'm

00:10:05   basically stuck and I have to remove

00:10:07   this feature and this is this is really

00:10:11   a tricky decision because the good thing

00:10:14   is not a lot of people use this feature

00:10:16   it's used by something like 0.1%

00:10:18   according to my analytics of active

00:10:21   users so it's it's a very very low

00:10:23   number but that point 1% is gonna be

00:10:27   really mad and I've tried to warn them

00:10:30   on Twitter ahead of time and say you

00:10:31   know hey just so you know I've been

00:10:32   working on this not going well but but

00:10:35   I've decided it's really out now and I'm

00:10:37   not going I'm going to remove this

00:10:38   feature like the decision is made and

00:10:40   I'm also going to remove it like now

00:10:43   rather than in in a month and a half or

00:10:46   whatever you know whenever iOS 11 ships

00:10:48   and watch OS 4 because I don't want my

00:10:52   entire iOS 11 updates story to be a

00:10:56   removal of a major feature and I don't

00:10:58   want all the one star ratings that I'm

00:11:00   definitely going to get by removing this

00:11:01   feature to apply to my big iOS 11 update

00:11:05   I want I want to get this out of the way

00:11:07   now and I and I want to kind of stop the

00:11:09   influx of new customers finding this

00:11:12   feature and getting accustomed to it

00:11:14   only to have it be ripped away from them

00:11:15   in a month and a half or whatever so I'm

00:11:18   going to remove this feature now and

00:11:21   it's it's always a very tricky balance

00:11:23   because like again it's like you have to

00:11:24   think about all these things that you

00:11:25   have to consider like you're definitely

00:11:28   gonna make a lot of people angry you're

00:11:30   definitely gonna get a lot of one-star

00:11:32   reviews it's going to hurt the app for a

00:11:35   while but the feature wasn't very good

00:11:38   to begin with and I've been getting

00:11:39   one-star reviews over the current

00:11:41   feature as it is today even even from

00:11:44   people who love the rest of the app but

00:11:46   they want this feature to work better so

00:11:49   they say one-star for their whole app

00:11:50   because they're mad at this feature so

00:11:52   like it's uh what should I do

00:11:55   does this sound reasonable I think it

00:11:58   does I think the reality in a situation

00:12:02   like this is that like the the biggest

00:12:04   things that come to mind is at a certain

00:12:06   point there's like the the sunk cost

00:12:08   fallacy that you have to deal with of

00:12:10   the that feeling of like because you've

00:12:12   put so much into something that you

00:12:15   should put more into it to save that

00:12:17   effort that you put into it before

00:12:19   mm-hmm

00:12:20   so like in this case the thing that you

00:12:22   I'd always have in the back of my mind

00:12:23   is this like am i continuing to work on

00:12:25   this feature because I've spent months

00:12:27   working on this feature or does this

00:12:29   feature still make sense in and of

00:12:31   itself like if I was coming at it fresh

00:12:33   to have that in the back of your mind

00:12:35   and then to it's like is what is this

00:12:38   feature getting in the way of you know

00:12:42   being made because you know it's it's

00:12:45   like especially as a 1 as a one-person

00:12:47   developer you know or even a small team

00:12:49   like you you're the one thing that you

00:12:53   can't get more of is time and attention

00:12:55   to work on your app and to make the part

00:12:59   of the vdf that 99.9% of your other

00:13:02   users interact with better and so the

00:13:06   biggest things I'm like it is so hard to

00:13:09   say did you just like accept the fact

00:13:13   that this is going to be unfortunate

00:13:14   that this is not going to be pleasant

00:13:16   for who knows how long for

00:13:18   you know I mean it could be indefinitely

00:13:20   problematic for the very small group of

00:13:21   people but hopefully it's you know for a

00:13:24   month or something or for a couple of

00:13:25   weeks when you know the update comes out

00:13:28   where this gets pulled but the reality

00:13:31   is trying to please that small group of

00:13:34   people indefinitely trying to sort of

00:13:36   pile hacks on top of hacks of this crazy

00:13:39   feature is just never gonna it's no it's

00:13:41   never gonna win and so you kind of have

00:13:43   to at some point just say you know we

00:13:45   tried it it didn't work I'm very sorry

00:13:48   and move on because otherwise you're

00:13:51   just yeah the app is just gonna get

00:13:53   stuck and I mean if it's in a weird way

00:13:55   it's like Thea the reverse of the Sun

00:13:57   cost fallacy is you start to think in

00:13:58   terms of like should I have pulled this

00:14:01   project earlier should I you know put it

00:14:04   in what could I have done in the mean

00:14:05   time and you know it's not that you want

00:14:08   to just you know only slightly try

00:14:10   experimental interesting features and if

00:14:12   at the first sign of trouble back out

00:14:14   because you know a lot of the cool and

00:14:16   interesting things that differentiate

00:14:19   apps and make them useful and

00:14:20   interesting are these kind of more

00:14:22   experimental like going down these crazy

00:14:24   routes and seeing if it can work and

00:14:26   coming up with interesting workarounds

00:14:28   and you know crazy hacks like I love

00:14:29   that part of things but I think at a

00:14:31   certain point you have to decide you

00:14:33   know is this could does this continue to

00:14:35   be worthwhile and it sounds like in your

00:14:36   skin your case like I absolutely agree

00:14:38   that it's time for it to go and it's

00:14:41   just gonna be one of those things where

00:14:42   they will you know you can work on the

00:14:44   messaging around that you can try your

00:14:46   best to kind of message that and maybe

00:14:48   you'll end up putting message may be

00:14:49   having messaging in the app to try and

00:14:52   communicate that because in the majority

00:14:55   of you users almost certainly aren't you

00:14:56   know following overcast FM on Twitter or

00:14:59   whatever or reading your blog like

00:15:00   messaging that as best you can to try

00:15:03   and make sure that you know people are

00:15:05   at least have some understanding about

00:15:07   what's going on but ultimately it's like

00:15:10   the being held hostage by a vocal

00:15:12   minority is just going to stall

00:15:14   everything else out and though you know

00:15:16   if anything the best thing is to do is

00:15:18   to just call it quits like I like that

00:15:19   you're just you decided to do it early

00:15:21   and the cycle just get it done and just

00:15:23   put that to the side so you can focus on

00:15:26   your next big updates for iOS 11 because

00:15:28   you know

00:15:29   once you've done it the nice thing in

00:15:31   many ways at least it's a funny thing to

00:15:33   say but I want things I like about the

00:15:35   app store is that like I don't it's not

00:15:37   like I work in a physical retail store

00:15:38   or something like that where if I do

00:15:41   something that my customers don't like

00:15:42   they reach out to like to me

00:15:45   specifically in a like a physical way

00:15:47   that I can't avoid like if you make

00:15:50   something do something lips may upset

00:15:51   some people you can in some ways isolate

00:15:54   yourself from that and just move on at

00:15:56   least for a period of time let it die

00:15:57   down and focus on the things that are

00:16:00   gonna make your app better for everyone

00:16:01   else because almost certainly like that

00:16:03   is better for the future of the app then

00:16:06   trying to hold hold on to a feature and

00:16:08   like in this case your hand is kind of

00:16:10   forced but I mean there's even

00:16:11   situations where you have to make like

00:16:15   any change in an app is going to have

00:16:16   this exact same experience I think like

00:16:19   if you change the font or you change the

00:16:21   color or you change the layout people

00:16:24   will be upset like there's just that is

00:16:26   the that is the inevitable reality of

00:16:28   any change but if that change is making

00:16:30   the app better then it's kind of

00:16:33   essential to just develop a bit of a you

00:16:35   know it's like I struggled with this a

00:16:36   lot early in the early days of my to

00:16:38   indie career with this feeling very

00:16:41   personal about it but a certain point

00:16:42   I've had to just develop a thick and

00:16:43   thick enough skin to say whatever this

00:16:46   is the I'm trying to make the app as the

00:16:47   best app that I can make it and just go

00:16:51   with that and hope and hope that people

00:16:53   accept that you know like the majority

00:16:55   better for more people is always almost

00:16:58   certainly better than leaving it as it

00:17:01   was for a small group of people this

00:17:04   this has been a lot of my rationale for

00:17:06   for choosing to remove this feature now

00:17:07   because like I have you know like the

00:17:09   sunk cost fallacy is definitely a play

00:17:11   here and but but I think what you what

00:17:13   you just described and what I will now I

00:17:15   guess coin the the the lost opportunity

00:17:19   cost tragedy like I like I could have

00:17:24   done so much more for the main app in

00:17:26   the time I've spent on this feature and

00:17:27   and if I would have known this feature

00:17:30   would have cost so much time I probably

00:17:32   wouldn't have started tackling it in the

00:17:33   first place but you know that that's all

00:17:37   gone now like that now you have to focus

00:17:38   on well what do I have now and the fact

00:17:40   is I'm already like more

00:17:43   than halfway through the summer and I

00:17:45   have done relatively little to adapt the

00:17:48   main app for iOS 11 because I keep

00:17:50   getting stuck and watch problems and

00:17:53   developing for the watch in general it

00:17:55   as you know it's better than probably

00:17:58   anybody it's complicated and it's slow

00:18:00   going you know like it's it's a very you

00:18:03   know because it is first of all this

00:18:05   like kind of sister device to the phone

00:18:07   so it has like you have to do a lot of

00:18:09   things through the phone first and then

00:18:11   over the Bluetooth or Wi-Fi to the watch

00:18:12   and it also is very you know rudimentary

00:18:15   performance hardware because it has to

00:18:18   fit in a watch like it has to have the

00:18:20   power and hope to fit in the watch and

00:18:21   everything else like it's very low

00:18:23   powered hardware the OS is fairly young

00:18:25   the api's are fairly young and they're

00:18:28   and very limited so it's it's just very

00:18:31   slow going development wise everything

00:18:33   you do to develop for the watch is more

00:18:36   difficult and more cumbersome the cycles

00:18:39   of division of developing and testing

00:18:41   and debugging are all longer just

00:18:43   because it's this low-power thing that's

00:18:46   complex and tied to your phone so watch

00:18:50   development for me has just been a

00:18:51   massive time sync and a lot of a lot of

00:18:56   my users do use the watch app but you

00:19:00   know way more people use the watch app

00:19:02   than whoever used the send to watch

00:19:03   offline playback and part of that you

00:19:06   know the feature could be better I mean

00:19:08   I'm not saying it was perfect before but

00:19:09   you know it could be way better actually

00:19:11   but the fact is like it is not worth

00:19:14   investing as much time as I've been

00:19:17   investing in the watch app for the

00:19:19   amount of use that she gets you know

00:19:21   still by far like I have something like

00:19:22   15% of my users who have the watch app

00:19:25   installed but only about one percent of

00:19:28   the daily actives actually interact with

00:19:31   it like they have it running in case

00:19:32   they need it

00:19:33   very few people actually use it or

00:19:36   interact with it more than just looking

00:19:38   at it or glancing at it or even just

00:19:39   having it installed and never launching

00:19:41   it so I need to now just my time

00:19:46   allocation for the reality of the usage

00:19:49   of the watch app and how and how

00:19:52   expensive time wise it is for me to

00:19:55   invest

00:19:56   into it you know like I said like it's

00:19:58   just it's so it's just so slow going to

00:20:01   to make real progress on the watch it's

00:20:04   just it's difficult and it's expensive

00:20:05   so what I need to do now is focus on the

00:20:10   the main app the main UI the main

00:20:13   interactions people actually do with it

00:20:15   because that they know that's what I'm

00:20:15   focused on for I was 11 this is no

00:20:17   secret I'm as we discuss I'm adopting

00:20:19   the new drag-and-drop api's I'm updating

00:20:22   some of the UI you know here and there

00:20:24   for various like little behavioral

00:20:26   tweaks that people have wanted and stuff

00:20:27   like that so like I have I have a good

00:20:30   amount of work still to do all my table

00:20:32   views and iOS 11 have weird animation

00:20:35   bugs and are broken because of the way

00:20:36   the change table view sizing everything

00:20:38   I still haven't haven't started dealing

00:20:40   with that yet because I haven't had

00:20:42   times I keep losing time to massive you

00:20:45   know tar pits of watch development so I

00:20:48   just need to end the watch development

00:20:52   now and and it's okay like I'm going to

00:20:54   maintain the app and update the app over

00:20:57   time but it has to be a small scope it

00:21:01   has to be like this watch app will

00:21:04   continue to work and I'm gonna make it

00:21:06   as fast as I possibly can and even fast

00:21:09   to interact with which by the way is

00:21:10   actually better without the offline

00:21:11   feature because then I have back to a

00:21:12   one page interface and I don't have to

00:21:14   link all these dextra frameworks and

00:21:16   everything is what actually is way

00:21:17   faster without without the that the lot

00:21:20   the offline playback and it's easier to

00:21:23   touch it without your touch is being

00:21:24   interpreted as swipes so that's nice

00:21:26   anyway so the watch app is way better

00:21:29   without this feature and it's more in

00:21:32   line with the amount of time and has

00:21:34   earned from from my development time for

00:21:37   the usage it actually gets like for the

00:21:39   for those 1% of people who were

00:21:41   interacting with it every day I want to

00:21:43   make it really fast cuz 1% is not great

00:21:45   but it isn't like if I leave it without

00:21:47   the offline playback it isn't that big

00:21:49   of a time suck but that does not make it

00:21:52   worth investing half of my development

00:21:55   year into it when the rest of the app

00:21:57   needs attention to you know be

00:22:00   responsive as week by indeed prime

00:22:02   indeed prime helps tech talent such as

00:22:04   yourself and other software developers

00:22:06   and data scientists simplify their job

00:22:09   search and

00:22:10   and their dream job indeed prime

00:22:12   candidates get immediate exposure to the

00:22:14   best tech companies with just one simple

00:22:16   application - indeed prime companies on

00:22:18   indeed primes exclusive platform message

00:22:21   the candidates with salary information

00:22:22   right up front and the average software

00:22:24   developer gets five employer contacts

00:22:26   and an average salary offer of one

00:22:28   hundred and twenty five thousand dollars

00:22:29   a year

00:22:30   indeed prime is a hundred percent free

00:22:32   for candidates no strings attached 100%

00:22:35   free for you sign up now and indeed.com

00:22:38   slash prime once again indeed.com slash

00:22:42   prime thank you very much - indeed prime

00:22:45   for sponsoring our show so the thing

00:22:48   that you as you're saying that that

00:22:49   Casso comes to mind I think just in

00:22:50   general is the being aware of the trap

00:22:55   of how we allocate our time as as we

00:23:01   work on our abs because this is

00:23:02   something that I've actually been

00:23:03   struggling with a lot recently and I

00:23:04   have like the double fold problem of

00:23:07   where do I allocate my time within an

00:23:10   app and then where do i hella Kate my

00:23:12   time within a variety of apps that I

00:23:15   have well of course and I think this is

00:23:18   this loops back into the sort of this

00:23:20   this topic around removing features

00:23:22   because it is so easy to get stuck in

00:23:26   these rabbit holes I find where you kind

00:23:28   of you're working on something that

00:23:30   isn't actually giving you a lot of

00:23:32   return and I think it is so like that

00:23:36   means that the traps that I am so easily

00:23:38   falling into ones where you get like the

00:23:42   feedback we get from our customers

00:23:43   whether that be an email or online you

00:23:45   know in in the app and the app store

00:23:47   wherever it comes comes from we get this

00:23:50   feedback and it's so easy to misconstrue

00:23:52   the representativeness of that feedback

00:23:56   and I think I can in this case it's like

00:23:59   if you you know you got the you had a

00:24:01   lot of you had this feeling that you had

00:24:03   a lot of people requesting offline watch

00:24:06   playback like from there you know this

00:24:08   was a highly requested feature since the

00:24:10   watch came out great it turns out point

00:24:14   1 percent of people actually used it in

00:24:16   practice right right like and I think

00:24:19   that is something that is it's like the

00:24:22   best way to remove a feature

00:24:23   probably is - never had it in the first

00:24:27   place which is pretty like like

00:24:31   pre-emptive removal which did you know

00:24:33   does it like doesn't it doesn't dig you

00:24:34   out if I say that the situation you find

00:24:35   yourself in now and I mean in the

00:24:37   reality is you're just gonna have to

00:24:38   sound you know it's like you just have

00:24:39   to navigate it as best you can

00:24:41   it's out in the world but I think to

00:24:43   wrap this up at the thing that comes to

00:24:45   mind for me is its I'm increasingly

00:24:48   trying to be very analytical about where

00:24:52   I'm spending my effort to try and

00:24:54   maximize the output from that because it

00:24:56   is otherwise I end up spending time on

00:24:59   these apps or on these features that you

00:25:01   know I get the impression are well are

00:25:03   very desired but the reality is they're

00:25:06   not in the common case they're these

00:25:07   sort of these edge case users or uses of

00:25:11   the app or honestly even more

00:25:13   problematic are thoth ones where they

00:25:15   change the core functionality to be

00:25:18   slightly worse make a custom or a

00:25:22   special use case slightly better like

00:25:26   those are the situations where it's I

00:25:28   think it's very important to when we're

00:25:30   going into these kinds of things it's

00:25:32   like to take that step back and say like

00:25:33   how many people realistically are going

00:25:35   to probably use this and do I have any

00:25:38   measures in my app that I can use to

00:25:41   identify that like you know even just at

00:25:43   the basic level of like what percentage

00:25:45   of my apps of users in this case like

00:25:47   have an Apple watch and like knowing

00:25:49   that number ahead of time you know like

00:25:51   that is the absolute if every single

00:25:52   person used it all that would be this

00:25:54   many people and like you can go down

00:25:56   that road of being very thoughtful about

00:25:59   it ahead of time because otherwise you

00:26:01   end up in you know in this situation and

00:26:02   I've gotten myself in there many times

00:26:04   myself where it's it's it's so easy to

00:26:07   get sucked it down these these things

00:26:09   that can become these likely yeah like

00:26:11   you sink you said tarp it's like that's

00:26:12   what it feels like sometimes where you

00:26:13   and almost certainly we're at our best

00:26:16   when we're able to move quickly when

00:26:19   we're able to focus on features that

00:26:21   look if we can make that core experience

00:26:23   better and better and better and

00:26:24   reflects like the refining having the it

00:26:28   having the attention and the patience to

00:26:29   refine that core experience over and

00:26:32   over and being okay with letting other

00:26:34   opportunities go fall to the side

00:26:37   because I think I don't know if you ran

00:26:39   into this but what I often run into

00:26:40   wouldn't these kind of these side

00:26:41   features is I have this this fear I

00:26:44   guess like the fear of missing out like

00:26:47   I don't want to be it's like I know this

00:26:49   opportunity exists like here's this

00:26:51   functionality here's this thing that I

00:26:53   could build you know in this case

00:26:55   building offline watch play black like

00:26:57   it's it's a known thing it isn't this

00:26:59   crazy novel invention that you've come

00:27:01   up with it's like it's a pretty obvious

00:27:02   next step be it's like is it getting

00:27:07   over the fear that someone else is going

00:27:09   to do it someone else is going to do it

00:27:12   better and as a result like they're

00:27:15   going to have this runaway success that

00:27:17   crushes you in your business like that's

00:27:20   a constant fear of mine but the reality

00:27:22   is that it's almost certainly not the

00:27:24   case it's possible like in the same way

00:27:27   that it's possible to like win the

00:27:29   lottery and in some ways the odds are

00:27:31   probably more similar it's like it's the

00:27:33   there's a point oh one percent chance of

00:27:35   this that that situation happening but

00:27:38   the reality is the vast move or more

00:27:41   likely thing is that your app will would

00:27:44   lose out and fall to and fall away

00:27:46   because the core experience got worse

00:27:48   over time rather than that it didn't

00:27:51   have some one little feature and like

00:27:54   that's really hard like I've had having

00:27:56   to say no to something that I know that

00:27:58   I can do but just would end up being

00:28:00   this massive time suck is really hard

00:28:04   but it's probably an essential thing for

00:28:06   us to do otherwise we're just gonna you

00:28:08   know like I don't know what the next

00:28:10   features that you are I we are going to

00:28:12   add to our apps that were ultimately

00:28:12   going to kind of regret and maybe you

00:28:14   have to walk back from and have to

00:28:16   navigate and take our lumps when we

00:28:18   remove it but almost certainly there's

00:28:21   opportunities are going to keep

00:28:22   presenting themselves and we just have

00:28:24   to try and focus on the right things

00:28:26   is this all your like subtle long way of

00:28:31   saying that you want me to bring back

00:28:32   one touch play back no no no no that's

00:28:35   fine

00:28:35   I'm okay with the to touch what about

00:28:38   the play button on the right side is

00:28:39   that is I could enough play button on

00:28:41   the right side is perfect okay yeah but

00:28:44   but it is an example of like it's that

00:28:47   it's that core experience of you know

00:28:49   overcast like the optimizing those are

00:28:51   those the behavior of playing a podcast

00:28:54   is like a core experience that should be

00:28:57   perfect

00:28:58   yeah and that's where you should be

00:29:00   spending your time rather than worrying

00:29:02   about the side features that a few

00:29:05   people use a few people love like there

00:29:07   may be super passionate and that's

00:29:08   awesome but that's not most your users

00:29:11   and that's get going down that road too

00:29:13   far it's just gonna end up you know

00:29:15   missing it's like missing out on way

00:29:17   bigger opportunities than missing out on

00:29:18   this small potato opportunity over here

00:29:20   not to mention I gotta fix on my broken

00:29:22   table views still that's alright thanks

00:29:25   for listening everybody and we'll talk

00:29:27   to you next week bye