#20 - Parkinson’s Law
00:00:00
◼
►
Hello and welcome to Developing Perspective.
00:00:02
◼
►
Developing Perspective is a near-daily podcast discussing the news of note in iOS, Apple,
00:00:06
◼
►
and the like.
00:00:07
◼
►
I'm your host, David Smith.
00:00:08
◼
►
I'm an independent iOS developer based in Herndon, Virginia.
00:00:11
◼
►
This is show number 20, and today is Thursday, September 1, 2011.
00:00:16
◼
►
The format of Developing Perspective is that it'll cover a handful of articles, links,
00:00:20
◼
►
things I found interesting since the last show, and then move over to a more general
00:00:23
◼
►
discussion towards the end.
00:00:24
◼
►
This show will never be no longer than 15 minutes.
00:00:27
◼
►
Let's get started.
00:00:29
◼
►
My first link today is by Brett Terpstra entitled,
00:00:33
◼
►
"Why Markdown?
00:00:34
◼
►
A Two-Minute Explanation."
00:00:35
◼
►
And it's kind of an interesting article that he wrote.
00:00:37
◼
►
Brett Terpstra is probably one of the most knowledgeable people
00:00:40
◼
►
about Markdown that I know, behind maybe just
00:00:43
◼
►
a few other people.
00:00:44
◼
►
But he definitely knows his stuff.
00:00:46
◼
►
This is an interesting article because it talks rather
00:00:49
◼
►
than talking about the what of Markdown,
00:00:51
◼
►
how the syntax works, how to parse it, tools that use it,
00:00:55
◼
►
It's more the why.
00:00:57
◼
►
is sort of like five reasons why Markdown is better
00:01:00
◼
►
than sort of the alternatives for creating HTML or just
00:01:03
◼
►
generally rich formatted text.
00:01:06
◼
►
Definitely worth reading if you have any interest in sort
00:01:09
◼
►
of doing any amount of writing, whether for a blog
00:01:11
◼
►
or for a book or whatever it may be.
00:01:14
◼
►
It's a really interesting article,
00:01:16
◼
►
but sort of just reinforcing the why that Markdown is so good.
00:01:20
◼
►
All right, next I wanted to point out
00:01:22
◼
►
that yesterday the Spotify team released an iOS
00:01:25
◼
►
SDK for their service.
00:01:28
◼
►
So Spotify, if you're not familiar with it,
00:01:29
◼
►
is kind of an online music service that
00:01:33
◼
►
lets you listen to almost every song you've ever
00:01:36
◼
►
heard of in a fairly easy, low subscription per month kind
00:01:42
◼
►
And essentially what they've done here
00:01:43
◼
►
is they've opened up an SDK that lets you incorporate
00:01:45
◼
►
Spotify and their music streaming and things
00:01:47
◼
►
into your application.
00:01:49
◼
►
One thing to point out is that it's free and easy
00:01:52
◼
►
to do for non-commercial applications,
00:01:54
◼
►
but any application that has any commercial value.
00:01:57
◼
►
So it's either charged for the app or includes advertising.
00:02:02
◼
►
There's a special arrangement that you
00:02:03
◼
►
don't have to do with them.
00:02:04
◼
►
Who knows exactly what's involved with that.
00:02:06
◼
►
But if you're just doing it as a side project, a hobby,
00:02:10
◼
►
something, it's definitely an interesting thing to look into.
00:02:13
◼
►
It could be kind of fun.
00:02:15
◼
►
All right, next I was going to talk about-- this
00:02:18
◼
►
is a very good article talking about--
00:02:22
◼
►
I think I referenced it a couple of episodes ago,
00:02:25
◼
►
but there's a thing called GitFlow,
00:02:27
◼
►
which is kind of a philosophy or a process of managing
00:02:32
◼
►
a Git repository for a large team.
00:02:36
◼
►
It's kind of been making the rounds recently
00:02:38
◼
►
and been doing pretty well.
00:02:39
◼
►
And specifically, this is Scott Chacon,
00:02:42
◼
►
who is probably in many ways sort of the godfather of Git.
00:02:46
◼
►
At least he seems to be always--
00:02:49
◼
►
he was either one of the founders, one of the very early
00:02:52
◼
►
employees of GitHub.
00:02:53
◼
►
And his name and Git are kind of always combined in my mind.
00:02:59
◼
►
He talks about how they do-- what the Git workflow
00:03:02
◼
►
at GitHub itself is.
00:03:04
◼
►
And it walks through a lot of really interesting things
00:03:07
◼
►
about tools you can use inside of GitHub, which
00:03:09
◼
►
is my preferred source control system,
00:03:12
◼
►
and just kind of walks through all of how they do it,
00:03:15
◼
►
why they do it, and it's just really a good read.
00:03:18
◼
►
I think it reinforces one thing that
00:03:20
◼
►
is very different between it and GitFlow,
00:03:22
◼
►
is that it's very much a lightweight approach, which
00:03:25
◼
►
fits very well with Git.
00:03:27
◼
►
Because Git, at its core, is all about lightweight branches.
00:03:29
◼
►
It's about having a much more free flow thing
00:03:33
◼
►
without friction.
00:03:35
◼
►
If I want to create a branch, I can just do it.
00:03:37
◼
►
There's no cost.
00:03:38
◼
►
It's not this big time intensive process.
00:03:40
◼
►
You can just do it, and you've got it.
00:03:41
◼
►
So definitely worth reading, especially if you
00:03:43
◼
►
use GitHub for your source control.
00:03:45
◼
►
There's a lot of good tips and processes in there
00:03:47
◼
►
that I think a lot of developers could learn from,
00:03:50
◼
►
especially some of their things around code review and things
00:03:54
◼
►
Some tools that I wasn't even aware were in GitHub
00:03:57
◼
►
that are pretty cool.
00:03:59
◼
►
All right, next I have an article.
00:04:01
◼
►
It's really a video.
00:04:02
◼
►
It's a fascinating little video about watching Steve Jobs talk
00:04:06
◼
►
to an audience member during WWDC 1997.
00:04:11
◼
►
So this was quite a few years ago.
00:04:14
◼
►
But it's just a fascinating thing
00:04:15
◼
►
where essentially one of the audience members in internet
00:04:19
◼
►
parlance was trolling.
00:04:21
◼
►
He was kind of asking a question that
00:04:22
◼
►
isn't so much a question as sort of an insult
00:04:25
◼
►
wrapped up in a observation.
00:04:28
◼
►
And it's just really-- it's just a really good video
00:04:32
◼
►
because you kind of get this insight into how he works
00:04:35
◼
►
and how he thinks, where he's like, you know,
00:04:37
◼
►
no matter what you do, people are going to not like it.
00:04:41
◼
►
And that's unfortunate.
00:04:44
◼
►
It would be great if you could please everybody,
00:04:46
◼
►
but you can't.
00:04:47
◼
►
And all that really means is some people
00:04:50
◼
►
are going to be sad, but we're going to try and make
00:04:53
◼
►
the vast majority of people very happy.
00:04:55
◼
►
And it's just really worrying.
00:04:57
◼
►
He obviously says it much more eloquently than that.
00:05:00
◼
►
It's just worth thinking about more generally.
00:05:02
◼
►
It's a great little video in terms of it's a nice way
00:05:04
◼
►
to see Steve back in his heyday.
00:05:06
◼
►
But I definitely recommend just getting a sense of that
00:05:10
◼
►
And being like, you know, that's true.
00:05:11
◼
►
No matter what you do, you're going to be--
00:05:14
◼
►
you can't be all things to all people
00:05:19
◼
►
when you're making a product.
00:05:21
◼
►
No matter what you do, someone's going
00:05:22
◼
►
to mind it some other way.
00:05:24
◼
►
And you just need to accept that and then sort of adjust
00:05:26
◼
►
accordingly.
00:05:28
◼
►
And lastly, I have a link to an article
00:05:31
◼
►
that I wrote yesterday entitled 5% Off Everything.
00:05:35
◼
►
And it was a realization, basically,
00:05:36
◼
►
that. So Apple has an affiliate program. In the US, it's through link share, it's through
00:05:41
◼
►
other people in other countries, which basically means that if you have a link, I got it because
00:05:46
◼
►
I can link to one of my products. Say for example, I link to SimpleCasts or my recipe
00:05:52
◼
►
book or one of my other apps. And I have a link on my website, I have a link cross-promotionally
00:05:57
◼
►
or however I do it. And that link takes them to my app in the App Store. That infrastructure,
00:06:06
◼
►
an affiliate link lets me get a little kickback from that purchase.
00:06:10
◼
►
And you can essentially use it as a way to get an extra 5% off, so sort of back on that
00:06:17
◼
►
But what I realized is you can also create affiliate links to just stores.
00:06:22
◼
►
So to the iBook store, the Mac App Store, the regular App Store, and the iTunes store.
00:06:27
◼
►
And if you go to, and if you click on one of those links yourself, buy whatever it is
00:06:33
◼
►
you're going to buy.
00:06:34
◼
►
I was buying an app and a book, you can then fairly
00:06:39
◼
►
straightforwardly get 5% back on that purchase.
00:06:43
◼
►
We did 5% off.
00:06:44
◼
►
So if you buy a $10 app, you get $0.50 off, which is great.
00:06:48
◼
►
It's just sort of free money, and it's nice to kind of have
00:06:51
◼
►
that benefit.
00:06:51
◼
►
And I think in aggregate, it's something
00:06:53
◼
►
that's going to sort of save me a lot of money overall.
00:06:57
◼
►
But one thing that I did and what this article walks
00:06:59
◼
►
through that I wrote is what I did
00:07:02
◼
►
is I created a little single purpose website, which
00:07:06
◼
►
is just a file on this web server I host somewhere.
00:07:09
◼
►
But basically, I can open up any time I want to buy anything.
00:07:11
◼
►
I can open up my iPad, my iPhone, my Mac,
00:07:14
◼
►
and it has just a list of those store links.
00:07:16
◼
►
I can click on one.
00:07:17
◼
►
It takes me to the store.
00:07:18
◼
►
I finish whatever I'm going to buy.
00:07:19
◼
►
So now every time I want to buy something,
00:07:21
◼
►
I open up that website.
00:07:23
◼
►
I click the link, and then I buy it.
00:07:25
◼
►
It takes a lot of the hassle out of doing it.
00:07:27
◼
►
If you're trying to do it via link share, where you could
00:07:30
◼
►
find the product that you want inside of their deep link
00:07:32
◼
►
maker and so on.
00:07:33
◼
►
It's just a really low friction, easy to use thing
00:07:37
◼
►
that I think will overall save you
00:07:39
◼
►
a little bit of money, which is always nice.
00:07:42
◼
►
All right, I'm going to move over to our general discussion
00:07:45
◼
►
And originally I'd said yesterday
00:07:47
◼
►
that I was going to be continuing my process
00:07:49
◼
►
on my article, the arc about how to submit apps,
00:07:54
◼
►
what that process is like.
00:07:56
◼
►
But after listening to yesterday's show,
00:07:57
◼
►
I realized that it was kind of an interesting lesson
00:08:00
◼
►
in and of itself about the software development process
00:08:03
◼
►
and about some of the things that can go wrong.
00:08:06
◼
►
So if you listened to yesterday's show,
00:08:07
◼
►
or if you haven't, and if you want to just go back,
00:08:09
◼
►
so that was show 19, setting up for the App Store,
00:08:14
◼
►
the interesting thing that I found is it was a very good
00:08:16
◼
►
example of Parkinson's Law.
00:08:19
◼
►
And Parkinson's Law, if you're not familiar,
00:08:21
◼
►
which I have linked to the Wikipedia page in the show
00:08:23
◼
►
notes, is basically that work expands so as to fill
00:08:27
◼
►
the time available for its completion, which
00:08:30
◼
►
is a fancy way of saying that if you assign
00:08:33
◼
►
a task a certain amount of time, it'll
00:08:35
◼
►
take roughly that amount of time to do.
00:08:37
◼
►
And the crazy thing is you can expand and contract
00:08:40
◼
►
the amount of time, and it will still roughly fit.
00:08:44
◼
►
And what I found interesting is obviously
00:08:46
◼
►
with developing perspective, I kind of
00:08:47
◼
►
have a policy that I say the show will never
00:08:50
◼
►
be longer than 15 minutes.
00:08:52
◼
►
So every time I'm recording-- so like right now,
00:08:54
◼
►
I'm about to hit nine minutes.
00:08:56
◼
►
So I have six minutes left in the show.
00:08:58
◼
►
And what I found yesterday is, as I'm
00:09:00
◼
►
talking through this process, it's
00:09:01
◼
►
a big topic for setting up for the App Store,
00:09:03
◼
►
provisioning profiles, certificates, all this stuff.
00:09:06
◼
►
And I could talk to a large extent.
00:09:10
◼
►
I could talk to a short extent.
00:09:12
◼
►
And this will cover the same topic.
00:09:14
◼
►
The problem that I found-- and this has happened to me many,
00:09:17
◼
►
many times when developing software--
00:09:19
◼
►
is I started off kind of going through things
00:09:22
◼
►
that are at a good pace, a moderate pace.
00:09:24
◼
►
And I got to a good stopping point,
00:09:26
◼
►
where essentially my discussion was fairly complete,
00:09:29
◼
►
but I was in about 12 minutes.
00:09:31
◼
►
And so now I've got three minutes left.
00:09:32
◼
►
Maybe I can jump into another topic,
00:09:35
◼
►
embellish this a little bit more, add a little bit more depth.
00:09:38
◼
►
And then towards the end, all of a sudden I look up,
00:09:41
◼
►
and I'm at 14 minutes and 10 seconds.
00:09:43
◼
►
Oh, goodness, I've only got 50 seconds left.
00:09:46
◼
►
And so I start rushing, and I'm kind of throwing it together.
00:09:49
◼
►
And the end of the show is kind of bad.
00:09:51
◼
►
And I have to apologize to my audience about that.
00:09:54
◼
►
But it was an interesting lesson, I think, in terms of what's happened to me many times
00:09:59
◼
►
with software, where I say, "Okay, I'm going to have this feature done by next Friday,
00:10:07
◼
►
next month, whatever it is.
00:10:09
◼
►
And it'll take roughly that amount of time, irrespective of how long it actually should
00:10:16
◼
►
have taken."
00:10:17
◼
►
And so I just thought that was kind of an interesting lesson, because what I really
00:10:22
◼
►
should have done, and this is what I've sort of tried to learn and do in software, is say,
00:10:27
◼
►
you know, at 12 minutes it was done.
00:10:29
◼
►
That was a good discussion.
00:10:30
◼
►
I'm just going to leave it there and pick it up the next day.
00:10:33
◼
►
Or in the software world, the equivalent is to try and not be too bound to timelines and
00:10:39
◼
►
milestones and say, you know, this feature's done.
00:10:43
◼
►
It's good enough.
00:10:44
◼
►
It's, you know, it's very, it's exactly, you know, it's sufficient.
00:10:47
◼
►
Is maybe a better word for it in a more succinct way.
00:10:51
◼
►
And rather than be saying, well, I gave myself a week.
00:10:58
◼
►
Maybe I should just keep trying at it.
00:11:00
◼
►
And then the problem is, then you end up taking it to this other place where you can't finish
00:11:05
◼
►
it or you have to rush to finish it.
00:11:07
◼
►
And it ends up being very messy or very awkward and those types of things.
00:11:12
◼
►
And so it's just kind of a lesson to learn that it's typically best to let things organically
00:11:17
◼
►
take as much time as they need.
00:11:20
◼
►
And that could be either longer or shorter.
00:11:21
◼
►
But rather than putting sort of artificial milestones on it,
00:11:24
◼
►
I've definitely run into this many times
00:11:26
◼
►
with consulting projects, where a client says,
00:11:28
◼
►
I need it done by this date.
00:11:31
◼
►
And I find work to do to fill that time,
00:11:35
◼
►
because that's the nature of the project.
00:11:37
◼
►
That's what they're paying me to do.
00:11:38
◼
►
Or this just happened a lot when I was a 9 to 5 employee.
00:11:41
◼
►
So we need this thing done by this time.
00:11:43
◼
►
Whereas there's a certain mindfulness
00:11:45
◼
►
and a certain consciousness that's important to be
00:11:48
◼
►
able to say, you know, where it is now is good enough.
00:11:51
◼
►
And you draw a line.
00:11:53
◼
►
And then often what I find will happen is you'll end up with,
00:11:55
◼
►
A, a better product because you've stopped it
00:11:58
◼
►
at a place that is much more typically elegant
00:12:01
◼
►
and streamlined.
00:12:02
◼
►
And then you also have time to improve it or other features
00:12:06
◼
►
as you go forward.
00:12:07
◼
►
You're not spending time creating work for yourself.
00:12:10
◼
►
You're spending time just on really
00:12:13
◼
►
essential, important things.
00:12:15
◼
►
Maybe you could throw in the 80/20 here.
00:12:17
◼
►
It's like you're, rather than spending all your time
00:12:20
◼
►
on that last 20%, you're just knocking out
00:12:22
◼
►
80% of the application, of the functionality,
00:12:27
◼
►
of the feature set in a way that is very efficient.
00:12:30
◼
►
And then you're allowing yourself to be very retrospective,
00:12:34
◼
►
introspective about what to do with the rest of the time.
00:12:37
◼
►
And that's going to be it for today's show.
00:12:39
◼
►
Let's see, I've got two minutes to spare.
00:12:42
◼
►
And I'm not going to keep going to fill out that time.
00:12:44
◼
►
I'm just going to say, as always,
00:12:46
◼
►
If you want to contact me, I'm @_davidsmith on Twitter, or there's now a contact form
00:12:51
◼
►
on the website, which is developingperspective.com/contact.
00:12:54
◼
►
Otherwise, if you like the show, please make sure you tell a friend, tell two, tell three.
00:13:00
◼
►
Spreading the word is the best thing you can do to thank me for putting the show if you
00:13:05
◼
►
Otherwise, have a good day, happy coding, and I will talk to you tomorrow.