00:00:05 ◼ ► And I'm David Smith. Under the Radar is never longer than 30 minutes, so let's get started.
00:00:19 ◼ ► And one of the apps that, obviously I have a lot of apps, and I've quietly retired many of them in the past.
00:00:25 ◼ ► The ones that never had any downloads, the ones that just didn't work out, and you kind of just remove them from the store, and that's that.
00:00:32 ◼ ► But I had one of them, I had to remove an app from the store that wasn't one of those apps, that had some success.
00:00:41 ◼ ► I think this is actually the first app of yours that I've ever both heard of and downloaded that you're also now killing.
00:00:50 ◼ ► And the app is called Check the Weather, and it is a weather app that at the time I launched it, and I know exactly when I launched it,
00:01:03 ◼ ► And I publicly announced its end of life last Monday for that reason, when I was planning this and scheduling it out,
00:01:09 ◼ ► and I looked at the schedule and I was like, "Wait, I think I launched it somewhere in the middle of October."
00:01:23 ◼ ► It's a strange thing in some ways to try and describe what it is or what it does, what made it special.
00:01:28 ◼ ► Because a weather app is like, they're all strange in the sense that they all have the same basic data,
00:01:54 ◼ ► What happens if I take a run at a very well-established category, doing everything right?"
00:02:12 ◼ ► It had great voiceover support. It had all the things that in my mind were always the things that you had to do
00:02:19 ◼ ► to launch an app that was, you know, if you're going to do it right, if you're going to give it an honest chance.
00:02:24 ◼ ► And, Inc., if you're curious, if you're a listener to this show, but you weren't a listener to the podcast I used to do
00:02:52 ◼ ► But anyway, the long and the short of it is I had this app, I launched it, it did great.
00:02:57 ◼ ► It had a very big, spiky launch. I think it peaked at number three overall in the App Store,
00:03:10 ◼ ► just celebrating having my wife, I found someone to watch the kids and came into the office
00:03:36 ◼ ► and for something like a weather app, that means I'm turning off the API at the back end.
00:03:47 ◼ ► Because the tricky thing with an app like Check the Weather is that, at least the way that I launched it,
00:04:28 ◼ ► And ongoing costs are really rough, especially when they aren't just two or three Linode boxes.
00:04:40 ◼ ► I had some custom fonts in this application that had annual subscriptions that I have to pay.
00:05:07 ◼ ► Especially these days, you can often get decent fonts for either free or for maybe a few hundred dollars.
00:05:18 ◼ ► Sure. Because any of these things, it was always a strange thing because it forced me to,
00:05:31 ◼ ► It had that big spike at the beginning, and then it all kind of fell to almost nothing.
00:05:54 ◼ ► And every month when I get my bills from the radar provider and the weather data provider,
00:06:09 ◼ ► because there's a pricing change with my radar provider that meant that it would just have gone from,
00:07:06 ◼ ► But it's hard when you kind of have something that you feel more emotionally invested in
00:07:19 ◼ ► And so I think I definitely, in this case, I probably did let it go longer than in retrospect I should have,
00:07:25 ◼ ► and not necessarily even just for the money reasons, because I think what you're saying makes sense.
00:07:43 ◼ ► And every time an iOS update comes out, it's like, "Hmm, should I do this to check the weather?"
00:07:48 ◼ ► Like the Apple Watch came out, and I was like, "Oh, there's some really cool things you could do
00:07:56 ◼ ► It just really isn't getting traction, and I don't know if just putting more effort into it
00:08:10 ◼ ► is a bit better incentive to make sure that when something is clearly not going anywhere,
00:08:19 ◼ ► Anyway, so that is why I have gotten to the point that I had to pull "Check the weather" from the store.
00:08:24 ◼ ► And it's probably worth mentioning a little bit about kind of what that process looks like mechanically
00:08:32 ◼ ► before we get into some of the kind of the implications and things that come out of that.
00:08:36 ◼ ► So when you decide that you want to pull an app from the App Store, it's surprisingly easy to do.
00:08:45 ◼ ► I think it's Availability and Pricing is the area in the App Store that you can go into,
00:08:49 ◼ ► or in iTunes Connect that you go to, and say, "You know, it says you removed from sale."
00:08:53 ◼ ► You used to have to go in there and specifically select every country that you didn't want it in
00:09:08 ◼ ► And then you have the more interesting question, perhaps, of how you communicate to your users.
00:09:14 ◼ ► So most of the people who download your app don't know who you are, they don't follow you on Twitter,
00:09:24 ◼ ► I've certainly done the "I have a blog post mentioned on Twitter" to kind of put it out as best I could.
00:09:30 ◼ ► For most of your users, either you would need to do an app update and just mention this in the release notes,
00:09:37 ◼ ► that the app is going away, or you would probably need to have some mechanism built into the application
00:09:48 ◼ ► At this point, the app has so few users that I didn't decide that something like that was worth doing,
00:09:53 ◼ ► of building a special build of the app and putting it out there that popped up a window that said,
00:10:08 ◼ ► And in this case, it's turning it off because the usership has fallen off dramatically.
00:10:12 ◼ ► But I certainly have friends who ended having to end a product in some ways because it was too successful,
00:10:20 ◼ ► that it had gotten ahead of itself in terms of usership, but didn't have a revenue model to back it up.
00:10:25 ◼ ► At a certain point, they're just like, "Well, I just have to turn it off because the money is just running away from me."
00:10:39 ◼ ► In this case, because I'm not hosting much myself, there's not like I have servers and infrastructure that I have to physically unwind.
00:10:47 ◼ ► I mostly am just stopping paying for things, and then the ultimate providers will turn it off.
00:10:57 ◼ ► It's easy to not think about when you're making something, but what would I actually do if I needed to turn this off?
00:11:04 ◼ ► At some point, if some of my other projects that have web services that I run were to go away,
00:11:10 ◼ ► it's kind of a tricky question to be like, "Well, what do I do with the data, for example?
00:11:18 ◼ ► It's the kind of thing where it can so easily get away from you when you're developing.
00:11:32 ◼ ► Oh, sure. I mean, it's probably also worth saying that a lot of these same considerations come into play if you ever transfer an app.
00:11:47 ◼ ► All of the various things that you've ever paid for or bought associated with the development of an app,
00:12:08 ◼ ► There's all--I think there's three or four different weather data providers that I have created accounts with at some point for this app.
00:12:17 ◼ ► And while, in some ways, some of them would just kind of turn off on their own if their usership went to zero,
00:12:30 ◼ ► so I don't have all these little open things in the future that could come back and bite me in some weird way.
00:12:37 ◼ ► Then on the flip side, on the positive, say, "Hey, the app had been acquired and been shipped over to somebody."
00:12:45 ◼ ► "Here's all of the things that I actually have to give you," which is way more than just the source code to the app.
00:12:51 ◼ ► We're sponsored this week by Pingdom. Go to pingdom.com/radar to start monitoring your websites and servers today.
00:12:58 ◼ ► Pingdom offers a 14-day free trial, and when you enter offer code RADAR at checkout, you get 20% off your first invoice.
00:13:04 ◼ ► Pingdom is focused on making the web faster and more reliable for everyone who has a site or service.
00:13:13 ◼ ► So if you're a Pingdom user, you can monitor the availability and performance of your servers, databases, websites, all very, very easily.
00:13:20 ◼ ► They take care of this by using more than 70 global test servers that emulate visits to your site.
00:13:25 ◼ ► They can check its availability as often as every minute, and they can do different tests with that,
00:13:31 ◼ ► they can check for certain strings on the resulting page, they can check for certain timeouts.
00:13:37 ◼ ► Pingdom is incredibly great. I use it to monitor all my stuff, and I've used it since the Tumblr days,
00:13:42 ◼ ► a very, very long time ago, since long before they were a sponsor, before I even started podcasting at all.
00:13:47 ◼ ► I've been using them for a very, very long time, and I have had nothing but great experiences with Pingdom.
00:13:52 ◼ ► That's why I can personally recommend them, even though they cannot pay me to say that.
00:14:05 ◼ ► and the various optional conditions you want to check for, and they take care of the rest.
00:14:09 ◼ ► When they detect an outage, you can be immediately alerted, so you can fix the error before the downtime affects you.
00:14:19 ◼ ► and people on Twitter telling you, "Hey, by the way, you know your site's been down for the last couple hours."
00:14:25 ◼ ► And with Pingdom, you will be the first person notified so you can fix it before anybody else really sees it.
00:14:30 ◼ ► Go to Pingdom.com/Radar for a 14-day free trial, and use offer code radar to get 20% off at checkout.
00:14:39 ◼ ► So the other kind of consideration or thing that I've--all this process that made me think of,
00:14:44 ◼ ► because it's probably only sort of helpful to talk about the actual instances of this app,
00:14:54 ◼ ► are there lessons that I can learn from this that I think would be useful going forward?
00:15:00 ◼ ► And the first one that I was trying to think of and came up with was the importance of being careful
00:15:13 ◼ ► Because I feel like it's easy when you're starting out, and everything's kind of rosy and nice,
00:15:28 ◼ ► And it's a tricky thing maybe on this case was the pricing, where it's really not a sustainable business model
00:15:38 ◼ ► But in the early days of the app, I kind of gave the impression, whether implied or actual,
00:15:42 ◼ ► you know, I have to actually go back and look at my communication to see what I actually said,
00:15:59 ◼ ► whether necessarily or just because of the way that I feel going forward, that kind of reduce my options.
00:16:10 ◼ ► So whatever I communicated to those people that first day when everything was cheerful and rosy
00:16:21 ◼ ► And it definitely kind of makes me think of as I launch things now or as I move forward,
00:16:26 ◼ ► while it's also good for me to be thinking about, you know, is this sustainable and so on,
00:16:31 ◼ ► but it's even the importance of being careful about what I say, that I'm not making promises into the future.
00:16:54 ◼ ► You know, you can't use those words with actual honesty because you can't give someone an unlimited something
00:17:01 ◼ ► or a lifetime of something because you're making promises into the future that you really can't stand behind.
00:17:08 ◼ ► And that's probably a dangerous thing for me, especially a small developer, to ever do.
00:17:12 ◼ ► Well, especially because when you have a paid-up front app or any kind of--however people are paying for it.
00:17:17 ◼ ► If somebody pays for your app, many people, maybe even most people, have this expectation at the moment of payment
00:17:28 ◼ ► And of course, in reality, that's not how anything in this industry works, but that is kind of like the mindset.
00:17:34 ◼ ► And that's why people get so upset when an app that they paid for two years ago all of a sudden gets discontinued
00:17:45 ◼ ► People, when they pay up front as something that's presented as a one-time fee, they really do assume,
00:17:53 ◼ ► even if it's subconscious, they see that purchase as a lifetime purchase, when in fact that is impossible to sustain.
00:18:01 ◼ ► I mean, people--basically, software needs ongoing revenue streams because people expect ongoing updates,
00:18:16 ◼ ► And yet, they pay once up front and they expect all those things to come for free forever.
00:18:22 ◼ ► So, like, some kind of recurring subscription or recurring revenue model, whether it's subscription or ads or other things,
00:18:28 ◼ ► the reason why this is so helpful is because that matches up more to people's expectations of what the product will do for them
00:18:36 ◼ ► But when you have something like you had with Check the Weather, which was what, like three or four bucks up front?
00:18:41 ◼ ► Yeah, so it was like, you know, whatever it is, three or four bucks up front, then, you know, people who paid three or four bucks
00:18:46 ◼ ► two, three years ago, you know, they're going to expect that app to still be working now if they're still using it.
00:18:59 ◼ ► I mean, if you had--I mean, we can talk about different business models and stuff, but, you know,
00:19:06 ◼ ► If it were ad funded, then, you know, it would just kind of keep making money through usage,
00:19:21 ◼ ► But people really do, you know, when it comes to, you know, geeks like us know to doubt claims of unlimited or lifetime.
00:19:33 ◼ ► They expect it to be a lifetime purchase, even though they might not care in a year or two.
00:19:41 ◼ ► Sure. And I think beyond even just the consideration of, like, what's the best business model,
00:19:46 ◼ ► and obviously, like, in retrospect, I think of myself four years ago being very naive that this kind of would have worked.
00:19:52 ◼ ► And I think the important thing there is to, A, to think it through, that, like, I got so caught up in the actual process of building it
00:20:01 ◼ ► and thinking that it was cool, that I don't think I thought four years into the future about what would happen.
00:20:14 ◼ ► I likely should have given some thought to how I talked about it and how kind of the expectations that I set.
00:20:22 ◼ ► You know, maybe I should have said, you know, the app includes weather data for two years,
00:20:29 ◼ ► But there's sort of the expectation that maybe down the road there will be some more money that you'll have to pay for me to keep doing it,
00:20:37 ◼ ► and communicating that rather than kind of, if you don't say anything, like you're saying,
00:20:42 ◼ ► the customer's expectation is that it's like, well, I make one payment, and then it's the rest of my life,
00:20:47 ◼ ► or as long as I want to use it, you know, I will be sitting there ready for them to help them, however that goes.
00:20:57 ◼ ► Like, especially in the earlier days of the apps, like four years ago when you launched this,
00:21:10 ◼ ► it was just an upfront paid app, it was first 10 bucks, then about a year later lowered it to five bucks,
00:21:22 ◼ ► but every month I just kept selling more copies of the app, and so the growth was just funding it.
00:21:28 ◼ ► Like, just the additional new copies that we're selling every month, that was enough to fund the app.
00:21:39 ◼ ► to unlock the good features, and it did the same thing, and it worked fine for a little while.
00:21:45 ◼ ► But as the app store has gone on, that incredible growth that we had in the earlier years
00:21:50 ◼ ► is harder and harder to come by, and the money you're getting from each person is often going down,
00:21:59 ◼ ► And so now, you really have to think from the beginning, how am I going to get ongoing revenue from this?
00:22:06 ◼ ► Whereas even as recent as four years ago, when you launched this, we really didn't have to think about that.
00:22:23 ◼ ► But, I mean, nevertheless, the reality is, it's something that I mention here as a cautionary tale,
00:22:44 ◼ ► but in this case he wasn't acting as my lawyer, but he was, you know, a lawyer who was telling me,
00:22:48 ◼ ► the reason he likes doing contracts for developers is his job, he felt, was to think through
00:23:01 ◼ ► that they're sitting down with a client and they're super excited, like it's the first big client they've ever gotten or whatever,
00:23:07 ◼ ► and they're really excited about it and they can talk about all the fun things they're going to do
00:23:15 ◼ ► and you just don't think about these things that, what do we do in the sense of a contract?
00:23:31 ◼ ► Like, those kinds of contingencies, those kinds of things that you never really hoped for,
00:23:42 ◼ ► the app would just keep going forever, but if you force yourself to think about the weird,
00:23:48 ◼ ► not so great things up front, you can just plan for them, or at least have some sense of what you might do,
00:23:54 ◼ ► and it probably would have helped, in this case, would have helped me avoid, kind of, it feels a bit awkward.
00:23:59 ◼ ► It feels a bit more like I'm letting people down, and generally people have been really gracious about it.
00:24:07 ◼ ► and probably about half of the users buying it in the first month, is that that was all four years ago,
00:24:13 ◼ ► and so either they've stopped using the app, or if they have used it, they've been using it for four years,
00:24:26 ◼ ► Think about what this would look like down the road, and have, if not a plan in specifics,
00:24:48 ◼ ► as only ever using the latest app on the latest version of the OS, which is in general surprisingly true,
00:25:09 ◼ ► And I need to make sure that I go and turn off those first accounts that I used to get weather data from,
00:25:21 ◼ ► I went and looked in my analytics, and I have people who are using the app that was published in 2013 still.
00:25:29 ◼ ► As of a couple of days ago, I was still having people who were hitting my web services with that version string.
00:25:52 ◼ ► and I think the version they were using there was the last version that worked with iOS 6 or with iOS 5 even.
00:26:14 ◼ ► but when you turn things off, it is definitely something that I felt like I have to think through now.
00:26:19 ◼ ► Are there any things that old, old versions of the app do that I need to think about now?
00:26:28 ◼ ► And in a weird way, it gives me thought to being careful or being thoughtful as I develop about where I put things in the app.
00:26:37 ◼ ► It reminds me, there's a mechanism in Check the Weather to dynamically change some of the API keys inside of the application
00:26:48 ◼ ► so that if I had a problem with the weather provider, I could in some ways switch things around dynamically,
00:27:01 ◼ ► this is a good reminder for me of building mechanisms like that into our apps is probably a good idea,
00:27:08 ◼ ► at least to some degree, because you can't always rely on the App Store updates being the way you change that.
00:27:14 ◼ ► You know, if something breaks, I have to go and submit it, and even though App Review is amazing--
00:27:18 ◼ ► I had an update yesterday where I submitted it in the morning, and about three hours later it was approved,
00:27:34 ◼ ► Yeah, it's also really nice to have, from day one, a mechanism server-side to show a message,
00:27:54 ◼ ► rather than have it--once everything shuts down, rather than the app just launching and erroring out with some kind of server error,
00:28:04 ◼ ► Right, then to have a different method where you can put a file in S3 somewhere that basically--
00:28:15 ◼ ► It's something that I have occasionally built into my apps, and I've been very thankful every time I have.
00:28:24 ◼ ► as I finish up this app, it's a weird thing because I still have ideas for what a cool weather app could be and do,
00:28:33 ◼ ► and I've had to go navigate a little bit the thought of, "If I made another one, would it make people mad
00:28:39 ◼ ► or feel like I've cheated them out of something, or I should have just put that into the app that they've already paid for?"
00:28:55 ◼ ► if the reality is I just need to take the lessons I learned from this, put it into it, and that will be okay.
00:29:12 ◼ ► And so in this case, I was having the thought, "I don't know why--part of why I didn't pool check the weather
00:29:21 ◼ ► Maybe I'll put them in to check the weather, and then sort of keep it around just to avoid people being mad.'"
00:29:27 ◼ ► But the reality is, if I have those ideas, and at some point down the road I want to do it, I should just do it.