Podcast Search

Developing Perspective

#85: Pragmatism.

Select a time to play from there. The line being spoken is highlighted as the audio plays.

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.