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