298: The Storm - podcast episode cover

298: The Storm

Jul 19, 202430 minEp. 298
--:--
--:--
Listen in podcast apps:

Episode description

The podcaster did not provide a description for this episode.

Transcript

Welcome to Under the Radar show about independent iOS app development. I'm Marco Arment and I'm David Smith under the radar is usually not longer than 30 minutes so it's get started. Congratulations. Thank you so much. So the the overcast rewrite has launched. First of all, I must thank you for many things. One of which at the top of mine right now is thank you for convincing me to do the phase rollout and not really so long once. I can say that is something that I have learned the hard way.

Yes, so it turns out you are occasionally right about things. I'm glad I did that because the very first day which was a few days ago now the very first day there weren't any like massive problems but there were some small problems and I was able to get a point point one update out later that day or actually the following morning that that address a bunch of those so thank you for that.

But last episode we had the storm before the storm and now I think we have the storm because it's all going well. However, there is a lot to do. There is a lot to deal with. There's a lot of a huge amount of feedback. So just for reference right now, the so I did the phase rollout and paused it after 1% on day one because there were some bugs I wanted to fix that on day two I did the second one the second update I pause I have that phase rollout as well.

So that's still that's still going out. I think I'm at like the 10% mark or something like that now. But just for reference, I already have something like 16% of my user base using the new version. Part of this is because they just you know they maybe they saw saw it breeze by my announcements like if they follow me my social accounts or whatever.

You know they might have seen that or they there was a couple of good press articles they might have seen those they might have gone to manually update before the app store would have pushed it to them. So I actually have a decent number of you know it's like 16 to 20% depending on how it's measured of my users are currently on one of these new versions.

The downside to that is that I currently just unread in my inbox and mastodon have about 500 mastodon replies to the overcast account that I have not seen yet. And I currently have 1200 emails that are mostly and this is this is only from the last like you know three days yeah I'm just slowly falling behind further and further on. So I I'm definitely.

There and this is again this is only with you know 16 to 20% of the of the user base having this version of the app so I'm thinking a couple things number one I'm thinking I maybe you should pause this roll out again today and let me let me

myself catch up on some of these common bugs and feedback items and number two I'm kind of thinking I should find a better solution to sifting through all of these then just me like reading and deleting each one one by one and slowly adding them to Apple notes when I discover new bugs and something that.

So there's there's a lot going on here but the good thing is that so far the feedback has been either bug reports or mostly good and a little bit bad and that's given how much I changed in this update I think that's a pretty big win like I was very worried last episode that the feedback would be more negative now and again in all fairness.

Because of who has it so far I expect the feedback to trend more negative over the following couple of weeks because as the as the phase roll out gets to everybody it's going to reach people who don't follow me on social media who are not ATP listeners who are not reading like the websites that did press articles for me and I would expect those users to be less interested in my reasons for changing things and maybe have less context for them and therefore I would expect those users to trend more negative in their ways.

So I don't think I'm going to be out of the storm yet for a little while but with as much as I changed I really thought they would be way more negative feedback things I thought would be small problems have been big problems and things I thought would be big risks have been small problems.

So for instance I made a few little feature removals here and there of the app but only a couple of only one big one I thought the big one I thought was streaming and I explain why an ATP and basically the gist is removing streaming was kind of necessary to deal with the realities of today's dynamic ad insertion and podcasts because any two subsequent request to the same file or not guaranteed to get the same file and so if you start playing an episode of the same file and I think that's a good thing.

So if you start playing an episode it starts buffering the download fails in the middle and then you hit that boundary in the audio and it's been resumed from that point the resumed download might have different ads of different lanes at different times in the file and so you might have a weird audio splice at that point and you might get double content or missing content it's a whole mess.

I remove streaming for lots of reasons that's that's one of the big ones but also having the audio engine not support streaming at all allows me to both have you know some feature they couldn't do before and also that allows me to to pave the way to modernize the audio engine into the you know swift in the sink world in the future in ways that would be way way technologically simpler and just less complicated not easy but less complicated.

So that's there's big future reasons why I wanted to see if I could get away with that streaming and I thought the vast majority of the negative feedback would be about the streaming removal and it turns out most people don't care even streaming users some of them have said you know what you're right I've been using this but it does have all these weird problems and bugs when dealing with the AI and so a lot of people have actually said good you know I'm glad you removed it so that has proven so far to be not that bad of a removal.

Meanwhile I removed a small preference that I haven't given much thought to over the years because it doesn't usually come up called one tap play and so the way in overcast the way the episode sells when you tap them they expand into the little button row and then you can tap the play button from there well I had an option from a long time ago to make it so that if you tap the episode row instead of expanding into the button row it just starts playback and then it swapped the info button on the right side for a drop down button that would drop those.

If you want to that instead so kind of flip the behavior of tapping the cell and I removed that thinking like I had this a long time ago I hardly ever test this I don't want to write this entire UI twice like I figure let me remove that and see if anybody really cares turns out a lot of people care like that that I think has been a more controversial removal than streaming so we'll see I might bring that back I haven't decided yet I'm not right now I'm still in bug fixed mode so I'm not in a feature expansion mode yet.

But you know it's so and as for the design I really thought I would get more pushback and you know certainly of course I'm getting those emails saying like I'm never using your app again you ruined it you have to bring back the old app you know of course I get those you get those with that with any kind of change but the numbers of those have been substantially lower than I thought as a percentage of overall feedback so I think overall I am pleasantly surprised with how well this has gone there are a lot of people that are not going to be able to do that.

There are still some some bugs I'm trying to fix the biggest of which is that for some reason continuous play is not working reliably in certain conditions and I haven't yet figured out what those conditions are but so that's what I'm working on later today actually but I overall this has actually gone surprisingly well it's a little too early to judge things like server load because again it's you know most of the customer base doesn't have the new version yet but so far that's looking okay.

And I think overall I am pleasantly surprised that like it's it's going better than I expected any and I had you know kind of middle expectations I didn't want to get my hopes up too high and I was a little afraid of you know certain risks so far the biggest risks have not played out I didn't mess up the in purchase as far as I can tell I didn't set my entire customer base on fire I didn't break the servers most people seem to like it so I think I always wanted to do that.

I think I overall got out of this you know okay and now I just have a mountain of bugs and tweak requests that I'm going to want to address and mountain of feedback and things like that but it's all it all seems very achievable it's not like you know that I expressed in the past and I went into a little bit more in ATP last week I express in the past like the feeling of just being overwhelmed and feeling like I could never get out like

when I was in the in the hard part of the rewrite about seven or eight months ago it just felt like I was never going to get this done it felt like I was not making progress it was daunting it was way too much ahead of me I was I felt I never never never going to get there and now I got there and yeah there's still a lot to do but I made it I'm on the other side the rewrite is out there I am and now I'm able to actually really work on it.

You know more quickly and more easily and it's more and my my time is more productive with this new foundation so it I'm finally on the other side and it feels fantastic.

Yeah and it's awesome like I think it's important probably to take a moment before we get to into the like where happens from here to just have that a moment of looking back and how impressive and accomplishment it is what you've got we sort of achieved here in the sense of you have essentially completely rebuilt the application.

While in it sort of without people most of your users knowing or carrying or having a problem about it from the ground up like they like they were going in the going in the old app and then you completely switch a route out the this new app that's built with completely new underpinnings a whole new database system a whole new UI system all these massive fundamental changes and it's like there's so you know there's there's it's like oh there's a little bump and then now it's fine again like I'm going to do this.

Now it's fine again like that is in and of itself a tremendous accomplishment that is no small thing that there haven't been these any kind of Matt you anytime you completely overhaul and not just over like completely replace the fundamental data layer that undergirds the entire application. It's quite an impressive thing to do that and then have it not blow up or have some weird side issue or some person has some dated set that causes some issue that you weren't aware of like I've never.

I did my vague update to bidometer plus plus right to dissimilar thing but mostly on the UI layer I've not touched the data layer I'm terrified of ever changing the data layer like only the deprecation of objective see I think would make me.

Replace that data layer so what you've done is a very impressive and awesome thing that I think it's just good to linger on a moment like that is really cool and I think it's easy to kind of take for granted that nothing terrible happened when nothing terrible happened.

But it's I've done updates where things did not go well and it is not a given that any amount of preparation any amount of testing will catch issues that could be potentially you know hopefully not broadly catastrophic but catastrophic for particular users and so that is very cool and I think it's wonderful and I hope you took them some time to celebrate reaching this point I know it's it's something it's it's it's and sometimes I'm kind of glad that we've been talking about this on under the radar for so long.

Because we have almost the we captured like this journey from its very early stages and you know there been episodes we've talked about of the despair you were just alluding to of the this like oh my goodness am I ever going to get out of this swamp like every step you take you find two more steps you have to take and it's just

you eventually that can be very daunting but like you've come through to the other side and the beautiful brutal tragedy that's fabulous about software development is that you get to the other side and then it's just like more work to do right you never get to the place where you're done it's never the kind of work where I've always think it's kind of a great way to describe software we we we describe when we actually take what we're working on and show it to the public as releasing it.

And I always have in my mind this vision of like I don't know if you've ever done farmers carries when you're working out where like you pick up something heavy like a like a dumbbell and you hold it and then you walk for a certain distance essentially until you can't hold on to it anymore and then you have to then you put it down it's working on your grip strength.

And it's like you get to this point and some ways with the software I feel like it's the same thing it's like you just get to this point that you can't hold on to it anymore you just have to get it out there and you let it go and then the work continues by you when you like you have this moment to take a deep breath then you reach down you pick it up again and you just keep walking like and every now then you just keep you every now then you release it and you have to put it down and that's but the work is never done you never get to the end of this thing and that's that's part of what we love about what we do it's kind of the tragedy of it is the beauty of it as well.

Yeah, I love this metaphor so much like that's exactly how it is but it's it's in its and that's why I think it's important when we have those moments to take a deep breath that we actually take the deep breath and we actually are like yeah we did it like that was really cool what we just accomplished you know that last section and sometimes the set the time between putting down the weights.

A short and it's only a few steps and sometimes it's things like this where you've like walked around the block twice and it's as you've gone it's getting harder and harder in some ways to keep going because the longer those gaps the more that's changed the more the risk the more sort of the burden that you're carrying with you but you did it and I think that's really cool like we've come through that process I'm very glad you did a slow roll out because inevitably you've caught the kind of just the fundamental truths that there is no amount.

Of preparation that will find everything that's just like the nature of the beast and so you end up in a place that it's like you'll find these bugs and but the nice thing about this is that you are like the moment you did that first release is almost certainly like the widest.

Like range of bugs that exist in this modern version of overcast and so from here you're just narrowing that down and narrowing that down and narrowing that down and so you know finding way to work through the bug reports and the issues and the feedback and all that like that is absolutely a useful thing but the nice thing is from here it's like you're narrowing that that scope down and I think fairly soon you'll have a sense of like you know I always feel like there's this point in development where you get to this place and you're like okay.

Like this is good enough like not that there's no problems with it but it that it's good enough that there aren't any of these pressing issues that really have to be resolved and hopefully you know it'll be a week or two and then you'll be at that place you have a couple of bug fix you know point releases out of overcast you reach that point and then it's like okay now what do I want to work on not what do I have to work on.

And you know I love the metaphor of the you know hope just having to put it down after a while like because that that is how it feels the way I've always released software is basically that I work on I work on something for a while and then at some point I'm like I just have to release this this is either either like what I'm working on is I think so compelling I want to get it out there or what I'm doing is so much better than what is out there that I want to get this out to you know like I'll see somebody you know like my

wife using the old version of the app is currently the app store and I'll be like oh my God that's so bad I what I'm working on so much better I have to get it out there like I do have that kind of

motivation. But yeah it is it is quite a feeling now to be on the other side of it because I'm no longer first of all no longer like you know rushing to hit a certain date like I hit the date I wanted to it was the overcast 10 year anniversary I'm so happy I hit that date that it meant so much to me it was such a great story for both for my own mind and for the public it really meant a lot to me to hit that date I didn't think I could and I did it and that's

that's huge. But now I'm to the point where like now I don't have that massive time pressure now the only pressure is trying to stop getting 1200 emails and so I can so I can get you to get back to other stuff but you know so now it's like I'm looking at what are the common issues people complaining about or reporting you know what like what are the common bugs that can fix but even that like I'm working on that and that's getting better and so I will soon probably within a few

weeks I will be at a point where like the fires are all put out you know even the smaller ones are mostly put out and then I can start building and I can start taking advantage of this awesome foundation I now have to start doing you know real feature work you know that's something that I haven't done in a long time and I'm very much

looking forward to that you know being able to actually iterate actually add more features actually make cool stuff like you know I had this this fairly little feature called undo seek that I mentioned before where you know if you take a large seek in the app you know you accidentally drag the bar or whatever you can undo it

within it within a short time people love that that took me like half a day people love it and so what I want I want to get to the point where I'm able to do more things like that and I have so many ideas but they were just not going to fit in this release time wise this release was basically get what I already have for the most part rewritten and out the door and I didn't even get everything like you

know that my my Siri and shortcuts support is still totally broken you know there are certain things that that just didn't make it you know I'm my storage management screen opm L import export like none of those made it I'm going to have to add those in the coming weeks but I have so many fun ideas for like nice features people will enjoy that

that are in the vein of undo seek like you know that that kind of you know quality of life or neat little improvement I have so many great ideas for that and I'm looking forward to finally for the first time in years being able to really do that we are brought to this episode by indeed or during the search for better when it comes to hiring the best way to search for a candidate isn't to search at all don't search match with indeed if you need to hire you need indeed indeed is

your matching and hiring platform with over 350 million global monthly visitors according to indeed data and a matching engine that helps you find quality candidates fast so ditch the busy work use indeed for scheduling screening and messaging so you can connect with candidates faster and indeed doesn't just help you hire faster 93% of employers agree indeed delivers the highest quality matches compared to other job sites according to a recent indeed survey leveraging over 140 million

qualifications and preferences every day their matching engine is constantly learning from your preferences so the more you use indeed the better it gets join with them 3.5 million businesses worldwide that use indeed to hire great talent fast listeners of the show got a $75

sponsored job credit to get your jobs more visibility at indeed dot com slash under the radar just go to I N D E E D dot com indeed dot com slash under the radar right now to support our show and say you heard about indeed on this podcast indeed dot com slash under

radar terms and conditions apply need to hire you need indeed our thanks to indeed for the support of this show and relay F M so I guess maybe something useful to talk through is just like from here now that we've had this awesome you know the accomplishment you've reached this you know this big milestone for overcast it's like how do you determine where to go from here and I think some of that you've really alluded to in terms of

is responding to customer feedback but I think certainly something that I've learned from my own experiences is that like customer feedback driven development is usually it's very inefficient at the at the best and it's worst it is pointing the app in the wrong direction because it's

pointing it in like 20 directions all at once because every user is coming at the app with a different use case a different mentality a different sort of desire or different reason why they use it and so you if you're trying to sort of chase too many of those you

end up just not going anywhere and so it's it's a very challenging problem and I mean I've been at the place where you are now of where you have this you know whatever the 12 you have 1200 emails it's like reading through all of those is almost certainly not the most productive use of your

time is on I mean it's barely even a productive use of your time in some ways is in my experience because a there's the sense of there's going to be a lot of duplication and a lot of repetition in that that there be if there's a particular issue that everyone's running into then they're going to run into the same issue over and over again and so you're going to have many reports of that and especially even once you fixed that issue you know and the issues that you fixed in the very first

point release you still likely are going to have emails from people who are opening that app version for the first time and having that issue because they got that version downloaded to their phone but they haven't run the app yet and so then the next time they run it

before it's done an update they're going to see the issue that you've already fixed and so it's just something that I would encourage you to be not necessarily view that 1200 emails or you know growing by the minute as a particularly is something you need to get

through as something that is worthwhile or important to get through that I think there is value to be gained there but it is very much almost like a statistical sampling approach perhaps I mean I think another approach obviously is to have someone else tackle that for you that is something that I found very helpful over the days especially even just from a mental health perspective even beyond the like technical aspects of that that's inevitably in there there'll be people who say

some very unkind things to you about the thing that you've spent the last year and a half of your life working very difficult you know through very hard times to accomplish and they're saying that it's not good and that a couple of those can really go the wrong way but either way if you the other approach is to just take the statistical sampling approach read 1% of those things expect that if you read of one brand like 1% at random from those you will likely

still capture all the issues or at least enough of the issues and then that if there are issues that persist as you get fewer and fewer feedbacks you can start to read more and more of them because it'll become less of a a burden but it is definitely something also where I think it's fun because now you're at the point where you can look at that list that you've almost certainly been keeping of features you want to implement and you can start

working on them and I think being focused on that and like that's where the actual impact comes from that there's one of you and you know many many more customers at the biggest impact you can have is not responding to those customers or dealing with them individually but doing things that will benefit them an aggregate and you know in bulk at once. Yeah exactly like that and I'm trying to keep a healthy balance of that.

I mean it is I have found it worthwhile to skim the emails and the and the massive on replies and everything that even like I try to at least skim each one because sometimes there will be some detail in what somebody reporting that actually helps me find the bug like you know right now I mentioned the continuous play being broken for some people. I still have not figured out what that is because it works for me and I cannot replicate the problem but it's pretty wide

spread so I can tell like this is definitely a big problem. I'm trying to get logging out to these people as much as I can so I can if like you know I don't even have my logging infrastructure yet for the new version fully in place.

So like it's kind of hard for me to debug certain things so if somebody says something like I was able to find one bug because somebody said some configuration detail they were using some preference in a way that I never use it like a combination that I never use it and that doesn't get why the test it is not very common and I'm like wait a minute in this case they said this I wonder if

with these conditions and maybe this one thing can happen and I looked at the code and found like a possible race condition I was like oh my that's like that's it like that's probably what it is and then I issued a build and that ended up fixing it.

So sometimes finding a sometimes reading those emails actually is extremely valuable but I think it is you know as you said to a point like when I'm getting the same the same seven or eight things reported over and over again that is less useful to see each one.

It is more relevant to just recognize oh this is these eight things are what my users are having problems with and that's that is the end of that information as far as I'm concerned because when I'm hearing about it that much I'm going to have to fix all eight of them like that's like ultimately I'm

going to have to address all of these problems so I don't even need to do things like well what percentage of users are being affected like no if I'm getting 1200 emails and most important the same eight issues I probably need to address all eight of those issues and it's not

super important to know like you know all the details of exactly how and when to address those no if I'm getting that many emails in four days when I'm only X percent of my users even have this release I need to just do all of them.

But certainly as I go through the process and as I get closer to a stable point I will have to be a little more disciplined about how I how I prioritize things and even what I decide to listen to at all a lot of times people will report a problem or a complaint that I recognize their complaint but I think also like how should I solve this

first of all is this a need that I even need to solve should this person even necessarily be expecting my app to solve this problem and then secondly what's the best way to address their need even if it is not what they said you know the whole faster horse thing

like if if they're complaining that like for instance if the streaming removal impact somebody a lot because they keep thousands of podcasts episodes on plate and they want to pick and choose what they're listening to there's probably a better way to deal with that

than bring back the entire streaming infrastructure and all of the problems and risks and complexities that it brings maybe there's smarter ways to help prioritize downloads or to automatically download or automatically delete things or you know things like that

there's so many other options there so that's that's the kind of work I'm hoping to get back into over the coming months and of course I mean eventually I guess I'll probably have to rewrite the watch app but that's down the road some more honestly the biggest reason I want to rewrite the watch app is not that it so desperately needs it although it does because honestly no one's even complaining about it no one's even asking for this the biggest reason I want to rewrite the watch app

is that I can delete all the old code out of my project because all of the old model code and sync code and everything is all still in the project because the watch app uses it all and so that's the main reason this is not a good reason to do something that will probably take me like a month or more this is not a good reason to do it but that's that's what I have the whole you know next X months or years look forward to is you know that that kind of

debate but it's more like I'm just so happy to be back doing active work on the app again that people can actually see and feel and use and enjoy I haven't been for a long time and now I feel like I'm back yeah and I think even there like there is something like having the ability to feel a sense of like improvement in the app is going to be a tangible thing that I think your users experience that and in some ways I remember I think it was

well this was sometimes I will intentionally hold back a feature that I think is a good feature from a release so that it can go in the point one so that it gives a sense of inertia and a sense of like that the app is continuing to get better in a more tangible concrete way rather than waiting until both features were finished releasing one and then releasing the other one somewhat shortly thereafter is I think potentially a nice feet feel that your users can get and I think it's kind of

nice that you now have the ability to do that kind of thing that you could imagine a world where between now in the end of this year there are meaningful feature releases and updates and things that are happening to the app because you feel empowered and technically capable of doing that by when I was 18 comes out in whatever month and a half from now or something like you will have something there most likely ready to go and being available that fits in with the modern stuff and it's not this

weird hacky thing that you have to do because you're very swift and very async so anything that relates to that you're ready for and I think that inertia is going to feel really good both from your senses the developer and I imagine as a as on the customer

side as well. I mean that's literally what I've been waiting years to accomplish like every single WDC every single new I was released I've been thinking like how the heck am I going to wedge this in and now I'm just in such a better place to do that this is what I've been working towards and it's it feels just amazing to finally be here and to finally have this giant daunting task mostly behind me it's a great feeling.

Yeah, congratulations and I just couldn't be happier that we were able to close that chapter and open a new one about you know where overcast is going from here. Thank you so much and thanks everybody for listening and we'll talk to you next in two weeks. Bye.

This transcript was generated by Metacast using AI and may contain inaccuracies. Learn more about transcripts.