0:00:00Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing
0:00:04news of note and iOS development, Apple and the like. I'm your host, David Smith. I'm an independent
0:00:08iOS and Mac developer based in Herne, Virginia. This is show number 85 and today is Thursday,
0:00:13October 4th. Developing Perspective is never longer than 15 minutes. So let's get started.
0:00:17All right. So today I'm going to talk about what could best be summarized as pragmatism.
0:00:23And I have a couple of different examples and things to get into. But ultimately,
0:00:28Now, it was something that I was struck by recently that I wanted to kind of elaborate on here on the show.
0:00:33But I think pragmatism is probably one of the most important attributes of being successful as a developer.
0:00:37And by that I mean, when I say pragmatism, what I'm talking about is the understanding that everything you do
0:00:46when you make something is a trade-off, is a compromise.
0:00:55Every time you say yes to something, you're almost always saying no to something else.
0:00:59And the more you can understand and wrap your hands around the fact that you're making those
0:01:05tradeoffs, I feel like the better you can be at being practical to being realistic and
0:01:10being pragmatic about how you approach them.
0:01:14This is relevant, I find, often, especially when you get to the phase that I'm in right
0:01:18now with the weather app that I've been talking about for a while that's coming out soon.
0:01:24And what I say is, you know, you always have this fear, at least I do, that I'm not necessarily
0:01:32shipping the best app that I possibly could.
0:01:36So like I talked about in the last episode, I recently shipped version one of Check the
0:01:41Weather, the weather app I'm working on.
0:01:42It should hopefully, if Apple is true to form, will likely go into review today or maybe
0:01:48tomorrow.
0:01:49And so the first version will be approved then, though I'm still looking at a launch
0:01:52of October 17th, just in terms of it's base,
0:01:55and so I can do some of my marketing stuff.
0:01:58But that version that I shipped is, I think, really good.
0:02:04But it's not perfect.
0:02:07It's not sort of the-- I don't know what you call it--
0:02:10like the Socratic ideal, or that concept of something
0:02:17that's just perfect.
0:02:19It's exactly what I wanted it to be.
0:02:21And I'm okay with that.
0:02:24There was a period in my time, in my development career where I really would
0:02:27struggle with that, where I would constantly sort of be beating myself up
0:02:32with this focus on I need to ship the best I can possibly do.
0:02:36And the problem is I found is that I never shipped anything.
0:02:40And that's sort of the direct result of that is it's impossible to ship your best
0:02:47work, I think.
0:02:52Because by definition, it'll never be there.
0:02:53There's always something that you could do to make it better.
0:02:57And better could mean a lot of different things.
0:03:01But at some point, being pragmatic about it and saying, "Okay, this is good enough.
0:03:03This is going to be useful.
0:03:09This is going to be functional.
0:03:11This is really going to hit it," is kind of what you're striving at, rather than perfection.
0:03:13And I think it's important to emphasize that in the Mac and Apple community,
0:03:18especially for--
0:03:18I've talked to a lot of newer developers.
0:03:21And I feel like you come into this community,
0:03:23and there's this kind of unwritten rules or things people talk about,
0:03:26how, oh, we sweat the details.
0:03:30And every pixel's got to be perfect, and all this kind of thing.
0:03:34And you talk about great companies like Panic, for example, or Tapbots,
0:03:38or these kind of people.
0:03:39And it's like, oh, my goodness.
0:03:41Everything they ship is just absolutely pristine and amazing.
0:03:44The reality is that isn't true.
0:03:46These are the great developers shipping great software.
0:03:49But the reality is they're not-- they
0:03:54are uncompromising in certain areas, which is great.
0:03:59And that's something that I certainly strive to myself.
0:04:01But they're not uncompromising to a point
0:04:05that they never ship.
0:04:07If what they shipped was perfect and their best work possible,
0:04:11the first time, there wouldn't be Coda 2 or Coda 2.1, even moreover.
0:04:16So this is just something that I've been struggling with a little bit, and it's always the hard part at the end of a project.
0:04:23You're like, "Okay, this is good enough. This is what I'll ship."
0:04:27And I was struck by it a little bit yesterday.
0:04:31So yesterday, Tapbot's released Netbot, which is an alpha.net, essentially port of Tweetbot,
0:04:32which is my favorite Twitter client.
0:04:36I've been talking about it actually, I think since the first episode of Developing Perspective,
0:04:41I talked about how much I liked Tweetbot.
0:04:45So it's been a long time.
0:04:47And the thing that you look at, and it's like I look at it and it's great.
0:04:50And I think some people, other people say, "Oh, Felix is better."
0:04:53Or whatever.
0:04:58There's other kinds of different alpha.app.net clients.
0:04:58But the thing that I'm struck by, though, is that they're both--
0:05:02Netbot isn't perfect.
0:05:04You know, there are some glaring challenges and problems with it.
0:05:08But it's a very pragmatic response from an independent developer.
0:05:11They see an opportunity to make some money,
0:05:14to leverage something they've already done,
0:05:18essentially huge amounts of code and design and graphics
0:05:21that they've already built. They're just porting them over to a new platform.
0:05:24And they're going to ship that as quickly as they can, especially
0:05:27given the ambiguity and anxiety I'm sure they have from what Twitter's
0:05:30doing on Tweetbot, on one of their other main products.
0:05:34And that's a very pragmatic thing.
0:05:36And you can see these compromises they made.
0:05:38It's like you open up the tutorial screen in Netbot
0:05:41right now, and it shows Tweetbot screens.
0:05:44There's things in there that just don't exist in App.net
0:05:49right now.
0:05:50But that's fine.
0:05:51As a person who bought their app, I don't really mind that.
0:05:54The core experience is smooth and works.
0:05:58is exactly what I'm used to coming from Tweetbot and using it all the time.
0:06:02So for me, I'm like, that's great.
0:06:03You know, I can go ahead and use it.
0:06:05And that was just a pragmatic choice that they made to say, you know, it's
0:06:08not going to be perfect, but I'd rather ship something that's 99% there or 90%
0:06:13there now, then try and polish and polish and polish and never quite get there.
0:06:18And so I also wanted to loop this around to another kind of challenge that I've
0:06:24been sort of thinking about recently as I start to head towards the marketing
0:06:28side of this new app that I'm launching.
0:06:33And there's always this latent anxiety, at least I have, that
0:06:35the fear that I'm going to ship something that won't live up to its hype.
0:06:41Now, I'll get to talk in subsequent episodes a little bit about how I'm
0:06:45going to be trying to build hype for this app.
0:06:51I'm going to build a marketing push, kind of grab it, hopefully get some
0:06:53attention for it.
0:06:53But there's certainly latent in that.
0:06:55There's part of me that gets really nervous when I do that.
0:06:58Because you want to--
0:07:00A, you only have so much sort of marketing capital
0:07:02that you can spend.
0:07:04And then two, there's always this thing
0:07:05that I'm going to be talking about this app
0:07:07as though it's really good.
0:07:08That's awesome.
0:07:09It does a lot of great stuff.
0:07:10I think all those things are true.
0:07:12There's always this fear that I spent all this time and effort
0:07:15hopefully building up a reputation among people
0:07:18who I respect in the community at large.
0:07:20And you want to put something out there.
0:07:22And there's always that fear that they're going to come back and be like,
0:07:24this is, this is kind of lame.
0:07:27Like, really?
0:07:28This is, this is what you've been working on.
0:07:29Like that's not, that's not very good.
0:07:31And I suppose if that was the case, you know, that would certainly
0:07:34be hurtful and hurtful and problematic.
0:07:36And you certainly mitigate that by doing things like beta testing, by
0:07:39showing it to friends and by, like I talked about two episodes ago, kind of
0:07:43working out from, you know, starting with people who love you, people who like you
0:07:46and then moving out to people you respect.
0:07:48But the reality is, your app will never live up to its hype, because by definition, that's
0:07:55what hype is. Hype is taking all the best attributes of something that you've created
0:08:01and putting them out and showing those to the world and ignoring all of the downsides.
0:08:07If you're giving a perfectly even and balanced perspective on something, then it's not really
0:08:11marketing. It's not really hype. I'm not saying that you want to be disingenuous, but it's
0:08:15unlikely that you're going to have this even imbalance.
0:08:19It's like, here's this thing, and here's all the things
0:08:22that I wish it could do better.
0:08:24I wish it did this.
0:08:24I wish it could do that.
0:08:26That's not really marketing.
0:08:28That's just kind of odd.
0:08:30And so by definition, you're not ever
0:08:33going to be able to live up to your hype.
0:08:34You want to be honest and clear about what your app can
0:08:37and can't do.
0:08:38It's not about being deceptive.
0:08:39But I sometimes have this paralysis.
0:08:43As I've been getting ready to send it out,
0:08:45It's kind of to beta test or to send it out to the press.
0:08:48I have this fear like, Oh gosh, is it really ready?
0:08:50You know, it's like, do I want to show it to the guys at Mac stories?
0:08:54Do I want to show it to the guys at Mac world?
0:08:56Do I want to show it to the guys at the next web?
0:08:59Like, do I want to show it to these people who, you know, whose opinions I
0:09:04value and whose tastes I respect?
0:09:07Do I want to show it to these people if it's not going to be awesome, if it's
0:09:12not going to be impressive?
0:09:14And certainly it's like these are things and decisions that I've made earlier in the process that I'm hopefully able to say, yes, this is great.
0:09:22People are going to really like it. And I think that's the case. I think that it's really good.
0:09:28And I'm starting to get more and more proud of it in that way of feeling comfortable to show it to people.
0:09:34But there's definitely an anxiety that you have that it's just not going to live up to it.
0:09:38And you're kind of going to shoot-- it's going to fall flat,
0:09:40and you'll kind of feel foolish.
0:09:42Or you're not really--
0:09:45it's like all this work wasn't going anywhere.
0:09:47But looping back to being pragmatic about it,
0:09:50it's like you just can't--
0:09:51the reality is you can't think that way,
0:09:54because you'll never get anywhere then.
0:09:56You're never going to ship something that's perfect,
0:09:58and you're never going to ship something that will ever
0:10:01live up to the best ideals of what's possible for it to do.
0:10:05And you may get closer and closer.
0:10:07I mean, this was actually kind of an amusing thing.
0:10:09I was looking at--for some reason, I ended up on the old pages of the Instapaper blog,
0:10:17the official Instapaper blog.
0:10:19And if you look at it, there was something kind of amusing, was there was a demo video
0:10:25of the original implementation of tilt scrolling, which if you're not familiar with Instapaper,
0:10:28it's a great app by Marco Orment for time shifting your reading of articles.
0:10:33And it is a first implementation of tilt scrolling, which is where you tilt your phone and the
0:10:37the word scroll up and down, which is a nice way to deal with pagination or so you're not
0:10:41just constantly flipping your finger up and down.
0:10:43But if you look at the app and you look at it in the context of what the app is today,
0:10:48it's kind of rough.
0:10:51And some of that's certainly fashion, but some of them that that's just the process
0:10:54of iterating on something for so long that you've really gotten rid of all the rough
0:10:59edges.
0:11:00And that's kind of cool.
0:11:03When I see that, that's reassuring, that an app that I respect and I liked today didn't
0:11:08necessarily start out that way.
0:11:11It's kind of like, you could even take that same approach and talk about the approach
0:11:15a lot of people say Apple takes, where you want to ship something that is solid, useful,
0:11:21and really good at a core set of functionality, and then you want to hone and expand that
0:11:26incrementally from there, rather than trying to ship something that does all things for
0:11:30for all people on day one, but wouldn't necessarily do any of them really well.
0:11:35And so that's kind of what I've been thinking about recently.
0:11:37And so I guess that the sort of the summary of that is just be pragmatic
0:11:42about what you're building and don't worry so much about trying to live up
0:11:47to some impossible ideal, maybe that you would like you want to work hard.
0:11:52Do you want to do awesome things, but you don't want to get too wrapped up
0:11:55in somehow reaching this impossible ideal that you never end up getting anywhere.
0:12:00or you end up feeling really bad about what you've done
0:12:03and not being proud of it and excited about it.
0:12:05Because ultimately, that's what's going to be contagious.
0:12:08That's what's going to-- if you're excited about something you made,
0:12:10people are going to understand and respond to that in a way
0:12:13that if you're just kind of like-- it's like the classic thing if you're
0:12:16demoing your app to somebody and you're like, here it is, what do you think?
0:12:19And then you start immediately making excuses.
0:12:22That's not cool.
0:12:23It's like, oh, I'm sorry it doesn't do this.
0:12:24One day I'd like it for it to do that.
0:12:26That's not cool.
0:12:27embrace what it is and just go with it.
0:12:31And I think that's really the reality of,
0:12:33in order to be a successful developer, especially
0:12:35an independent one, you just have to be able to let go.
0:12:37You have to make good compromises.
0:12:40And ultimately, it's just going to come down
0:12:42to if you're making good choices and you're building solid code,
0:12:45I think it will work out.
0:12:47All right, that's it for the topic of today's show.
0:12:50A couple of things I wanted to loop back on.
0:12:52So first, I've had a couple of people ask--
0:12:54or I got a lot of feedback back from the discussion--
0:12:57the question I asked, and I think it was the last show,
0:13:00maybe the show before, about direction for the show
0:13:02to head as I'm starting to wrap up this--
0:13:05the arc of the weather app.
0:13:07And so I was going to talk about briefly the response I got
0:13:10from that.
0:13:11And basically, it seems most people
0:13:12wanted to stay largely developer focused,
0:13:15and I'm definitely cool with that.
0:13:17There'll be a few little, obviously, topical things
0:13:19that come up, as they relate to developers.
0:13:22I have a few ideas and concepts for a more--
0:13:26maybe a slightly less developer-oriented show or topics.
0:13:30And what I may end up doing is just moving those
0:13:32into either another show, into another feed,
0:13:35that kind of thing.
0:13:36Just in terms of the form of the formative development
0:13:38perspective is so short and focused, a single topic,
0:13:41and being developer-focused I think makes sense.
0:13:45But that's just something I wanted to respond.
0:13:47I thank you all for all your feedback.
0:13:48I really do appreciate it in all the various places.
0:13:52that you sent it back.
0:13:53And two, I've had a couple people just
0:13:55be asking me about the weather app, when can I get it.
0:13:57And I really appreciate that support.
0:13:59Like I said, October 17 is my expected launch day.
0:14:03So when it gets approved, hopefully it'll
0:14:05get first approval tomorrow or Friday.
0:14:09And then I have a point release bug fix
0:14:12that I'm going to resubmit then.
0:14:14And this is something that I think I talked about before.
0:14:16But essentially, I'm trying to take this two submission
0:14:19before launch approach.
0:14:22because I feel like it gives me a much more certainty about when I can actually launch it,
0:14:25so I can coordinate my activities a little bit better.
0:14:27So that's what I'm doing.
0:14:28So Wednesday, October 17th is the day that I'm targeting.
0:14:31And I really appreciate all the people who've said,
0:14:33"You're definitely going to buy it," because that's just reassuring
0:14:36and very validating for the work I do here.
0:14:39So anyway, that's it.
0:14:40If you have any questions, comments, concerns,
0:14:42I'm on Twitter @_davidsmith.
0:14:44I'm on thealpha.app.net @davidsmith.
0:14:47I'm on tent.io @davidsmith.tent.is.
0:14:51and I'm on the web at developingperspective.com and David-Smith.org.
0:14:57So those are all the places you can get ahold of me. Thanks.