#12 - Going on Vacation
00:00:00
◼
►
Hello and welcome to Developing Perspective. Developing Perspective is a near daily podcast
00:00:04
◼
►
discussing the news of Note and iOS, Apple and the like. I'm your host, David Smith.
00:00:09
◼
►
I'm an independent iOS developer based in Herndon, Virginia. This is show number 12
00:00:13
◼
►
and today is Friday, August 12, 2011. The format of Developing Perspective is that I'll
00:00:19
◼
►
cover a handful of links, articles, things I found interesting in roughly the last 24
00:00:22
◼
►
hours and then move over to a more general discussion towards the end. The show will
00:00:26
◼
►
There will never be more than 15 minutes, and let's get started.
00:00:29
◼
►
All right, first link I have today is an oldie but a goodie from Joel on Software.
00:00:34
◼
►
It's called Camels and Rubber Ducky's.
00:00:37
◼
►
And essentially, it's an excellent walkthrough back...
00:00:40
◼
►
He wrote this in 2004, but I only recently came across it myself.
00:00:43
◼
►
And it's an excellent walkthrough of principles of price theory.
00:00:47
◼
►
And so, that's kind of the fancy economics speak for things like demand curves, incremental
00:00:53
◼
►
costs, finding the optimum price, then you can scan other things like price segmentation,
00:01:00
◼
►
and all kinds of other interesting things that you get into with the concepts of, "Well,
00:01:04
◼
►
what do I charge for my software?"
00:01:06
◼
►
You have a spectrum, say if you're an iOS developer, you can go for free ad supported
00:01:10
◼
►
on the one end to all the way, I think the maximum price in the app store is $1,000.
00:01:15
◼
►
You can also create in-app purchases to do things.
00:01:18
◼
►
And this is just an interesting way to kind of look at it methodically.
00:01:22
◼
►
Unfortunately, the end result, after all of the introduction
00:01:26
◼
►
and theory, is that there's no right answer.
00:01:28
◼
►
You're always going to be stuck between two worlds of trying
00:01:32
◼
►
to find ways to have the people who really like what you do
00:01:37
◼
►
to pay a lot and the people who are sort of interested
00:01:40
◼
►
but not willing to really fork over a lot of dough
00:01:43
◼
►
to give you something.
00:01:44
◼
►
And this is why I would say right now it
00:01:46
◼
►
seems like the most predominant and profitable method
00:01:49
◼
►
to make money in the app store right now
00:01:51
◼
►
to have a relatively low initial price, say $0.99, $1.99, $2.99,
00:01:56
◼
►
something like that, and then have some kind of in-app
00:01:59
◼
►
purchase that allows your small group of very committed people
00:02:03
◼
►
who really like your app to give you more money for that.
00:02:06
◼
►
Whether that's in a game where you
00:02:08
◼
►
have some kind of consumable in-app purchase for coins,
00:02:11
◼
►
money, upgrades, whatever it is, giving yourself
00:02:14
◼
►
that kind of ability to be able to continue doing things,
00:02:18
◼
►
to continue finding ways for people to give you money
00:02:20
◼
►
just a great way to kind of maximize your profits. Of course, but you know, pricing
00:02:24
◼
►
is always just a hard question and there's no one answer and I think that's ultimately
00:02:27
◼
►
what makes pricing so frustrating. This is definitely a good read if you're not as familiar
00:02:31
◼
►
with kind of some of the theory and fundamentals of pricing. Next, there's an article over
00:02:38
◼
►
on Heroku. The actual article itself is talking mostly about their new CDER platform for hosting.
00:02:45
◼
►
But what I was really struck by here is it's in their initial discussion talks about how
00:02:51
◼
►
initially, so say in the days of yore and programming, often people were much more focused
00:02:56
◼
►
on a single language.
00:02:57
◼
►
You know, like, I'm a Fortran developer, I'm a C developer.
00:03:01
◼
►
And they'd sort of run that for their whole career.
00:03:03
◼
►
And it becomes something that was almost just sort of they would be a zealot for that language.
00:03:07
◼
►
And I was kind of struck by how they were saying that increasingly, that's sort of the
00:03:11
◼
►
opposite of the modern developer, where now most developers write in dozens of languages,
00:03:18
◼
►
and sometimes even on a regular basis.
00:03:20
◼
►
I was thinking to myself, in a typical week, I will write Objective-C, Ruby, SQL, HTML,
00:03:28
◼
►
and CSS at the very least.
00:03:31
◼
►
And then that's not even getting into sort of sub-languages within those things in terms
00:03:35
◼
►
of you could say that in many ways, you know, that using Cocoa and the way that Apple does
00:03:39
◼
►
those Objective C is a slightly different language
00:03:42
◼
►
than just sort of C in and of itself,
00:03:43
◼
►
or Objective C in and of itself.
00:03:46
◼
►
And it's just kind of remarkable to think that your brain's
00:03:48
◼
►
able to kind of be flipping between all
00:03:50
◼
►
those different languages in a way that makes sense and works,
00:03:53
◼
►
which is just kind of an impressive thing.
00:03:55
◼
►
And they also have a few interesting pointers
00:03:57
◼
►
in that article talking about just different ways
00:04:00
◼
►
that you can improve your skills and learn more languages.
00:04:04
◼
►
Next, there's an article-- well, it's
00:04:06
◼
►
the latest episode of Put This On,
00:04:09
◼
►
which is an excellent series about dressing appropriately
00:04:13
◼
►
and dressing well by--
00:04:16
◼
►
as it was just released, the last episode--
00:04:18
◼
►
this is episode seven-- is about personal style
00:04:21
◼
►
and definitely worth checking out.
00:04:23
◼
►
Next, there is a great little library
00:04:27
◼
►
that I just came across trying to wrap up the keychain access
00:04:32
◼
►
to make it a much more straightforward to work with.
00:04:34
◼
►
This is something that, if you've
00:04:36
◼
►
worked at all with the keychain, you
00:04:37
◼
►
just how much of a pain it is.
00:04:39
◼
►
It's a very low level C API that's kind of clumsy
00:04:43
◼
►
and often feels very strange coming
00:04:45
◼
►
from using a lot of the higher level Cocoa libraries to use,
00:04:49
◼
►
and especially to make sure you're using it correctly.
00:04:51
◼
►
The whole purpose of the keychain
00:04:52
◼
►
is to make sure that the data you put in it is safe
00:04:55
◼
►
from prying eyes.
00:04:56
◼
►
And so this is an excellent library that is, at first
00:04:59
◼
►
glance, looks really good for that as a way
00:05:01
◼
►
to keep that data secure, but have a really simple, easy
00:05:05
◼
►
interface for it.
00:05:06
◼
►
It basically just turns it into a plain key value store,
00:05:09
◼
►
and that's awesome.
00:05:11
◼
►
And lastly, the last link for today
00:05:13
◼
►
is an article by Brent Simmons talking about how to make
00:05:17
◼
►
less code with less effort.
00:05:19
◼
►
And so this is essentially ways to simplify your applications
00:05:24
◼
►
so that you can reduce the amount of code
00:05:27
◼
►
in your application.
00:05:28
◼
►
And it will likely mean that you'll write fewer bugs
00:05:31
◼
►
and better code.
00:05:33
◼
►
This talks about things like synthesized instance
00:05:35
◼
►
variables, reference counting, blocks in GCD,
00:05:40
◼
►
all those types of things are text snippets.
00:05:42
◼
►
There's lots of ways that we can improve
00:05:44
◼
►
the way we build things to write less code
00:05:46
◼
►
and accomplish the same thing.
00:05:48
◼
►
This is an excellent walk through on that.
00:05:50
◼
►
I think it's one of the fundamental truths of software
00:05:53
◼
►
that the less code you can write,
00:05:55
◼
►
the more likely what you wrote is to be correct.
00:05:59
◼
►
This is often expressed in things like dry development,
00:06:03
◼
►
so don't repeat yourself.
00:06:04
◼
►
Whereas if you ever have two lines of code
00:06:06
◼
►
that say the same thing, you're likely to be doing it wrong.
00:06:09
◼
►
And those types of ways of refactoring code down
00:06:11
◼
►
to very small, simple, and easily understood components
00:06:15
◼
►
leads to better code.
00:06:16
◼
►
And these are some tricks and tips to help you do that.
00:06:19
◼
►
All right, that's today's links.
00:06:21
◼
►
And for today's general discussion,
00:06:23
◼
►
I'm going to be talking about vacation.
00:06:25
◼
►
And it's a bit more timely and relevant
00:06:26
◼
►
because I'm heading out on a vacation myself.
00:06:29
◼
►
This will be the last episode for about a week
00:06:31
◼
►
of Developing Perspective.
00:06:33
◼
►
next week I'll be down at the beach with my family and not working at all. And so hopefully
00:06:38
◼
►
if you're a regular listener you'll just stay with me and pick right up a week later. But
00:06:43
◼
►
otherwise I hope it doesn't mess with your day too much. But anyway, I just wanted to
00:06:48
◼
►
talk a bit about going on vacation when you're independent. So if you're a 9 to 5 salaried
00:06:53
◼
►
employee vacation is a fairly simple thing. You get a set block of hours that you're allowed
00:06:59
◼
►
to take vacation for, plus a certain number of fixed holidays during the year that you're
00:07:03
◼
►
allowed to use.
00:07:05
◼
►
I remember when I was a salary programmer, I would know to the hour exactly, you know,
00:07:10
◼
►
it's like I currently have 37.25 hours of leave available.
00:07:14
◼
►
It was something that I was very aware of and very familiar with because I always looked
00:07:18
◼
►
forward to taking vacations.
00:07:20
◼
►
I would be planning them, kind of looking forward to it.
00:07:22
◼
►
You'd have to plan out your year to make sure you didn't take vacation when other people
00:07:25
◼
►
were on leave so you could cover each other and so on.
00:07:28
◼
►
And it became kind of interesting when I became independent because all of a sudden I don't
00:07:33
◼
►
have a bucket of leave.
00:07:35
◼
►
I don't have a vacation allowance.
00:07:37
◼
►
I can – ostensibly, I could work 365 days of the year.
00:07:41
◼
►
I could work two days of the year.
00:07:44
◼
►
And the spectrum between those is entirely up to me.
00:07:47
◼
►
And it's essentially I'm just trying to find that sweet spot between not doing enough work
00:07:52
◼
►
to not make enough money and working too much that I go crazy.
00:07:57
◼
►
So essentially what I've ended up finding is that, A, it's important that you do take
00:08:02
◼
►
It's just one of those, it's a really bad habit that I've fallen into from time to time,
00:08:06
◼
►
where there are, again, go six, seven months without any breaks.
00:08:09
◼
►
I'd be working five days a week, every single week.
00:08:12
◼
►
And the thing that you find is you usually lose perspective.
00:08:15
◼
►
You lose the ability to really understand what's important, to kind of understand, sort
00:08:20
◼
►
of gain that insight into, okay, this is worth my time, this isn't.
00:08:24
◼
►
You kind of get stuck into bad habits and ruts.
00:08:26
◼
►
And one of the best things to do is to kind of pull yourself out of that.
00:08:29
◼
►
And then when you come back, you're like, "Okay, what should I do?
00:08:33
◼
►
What is, you know, what's worth doing?"
00:08:34
◼
►
And you're not just sort of continuing this bad cycle of, you know, you kind of get into
00:08:40
◼
►
a project, get into a project, get into a project, and before you know it, you're, you
00:08:43
◼
►
know, you're a mile deep in it, and you can't really get out very easily.
00:08:46
◼
►
So definitely make sure you take vacation.
00:08:48
◼
►
Also, I think it's an important thing as a service.
00:08:52
◼
►
This is more of a meta thing, but it's related to this is that as an independent, it's very
00:08:57
◼
►
easy, especially if you do hourly work, to start thinking about your time in terms of
00:09:01
◼
►
your hourly rate.
00:09:02
◼
►
So say, for example, you charge $150 an hour as an iOS developer, which I think is a fairly
00:09:07
◼
►
common rate these days.
00:09:10
◼
►
And so that means if you work 40 hours in a week, you make $6,000 a week.
00:09:16
◼
►
But it's very, very dangerous if you start applying that to more sort of more generally
00:09:19
◼
►
When you start looking at it and say, OK, I could take a week--
00:09:22
◼
►
I could go to the beach for a week, or I could make $6,000.
00:09:26
◼
►
That's a very expensive vacation.
00:09:28
◼
►
There's very few vacations most people would go on that cost $6,000.
00:09:33
◼
►
And so it's kind of a dangerous slippery slope, though,
00:09:35
◼
►
because then you end up not taking vacation.
00:09:36
◼
►
You end up working too much, and then you end up burning out,
00:09:38
◼
►
and then you end up making less money because you're burned out.
00:09:42
◼
►
And so it's just a dangerous game to get yourself into.
00:09:45
◼
►
And so it's something that I definitely recommend you try and avoid that.
00:09:47
◼
►
There are some places where thinking of your time as money is appropriate.
00:09:51
◼
►
And I think for me that comes down to finding those activities that you do on a weekly ongoing
00:09:57
◼
►
regular basis.
00:09:58
◼
►
These aren't special activities, things like vacation.
00:10:01
◼
►
These are ongoing things that you do where you don't add value, where you're not doing
00:10:05
◼
►
something that someone else couldn't do better.
00:10:08
◼
►
Hopefully if you're a developer, part of why you're an independent, part of why you do
00:10:11
◼
►
what you do is that you're good and that you're doing something that no one else can do in
00:10:16
◼
►
the same way that you do.
00:10:17
◼
►
You have a distinctiveness about your ability that is worth money.
00:10:21
◼
►
For example, I don't mow my own lawn.
00:10:23
◼
►
And one of the big reasons why I do that is I don't really mow my lawn better than the
00:10:27
◼
►
guy I pay to mow my lawn.
00:10:28
◼
►
He probably actually does a better job than I do.
00:10:31
◼
►
And by allowing him to do that, it means that every weekend in the summer, whereas I could
00:10:36
◼
►
be spending two or three hours mowing my lawn, I'm spending that time with my family, helping
00:10:41
◼
►
me be recharged and restored for my next week.
00:10:45
◼
►
And for me, that works.
00:10:46
◼
►
Some people love mowing their lawn, more power to them.
00:10:49
◼
►
You could save all kinds of other activities, whether that's accounting, bookkeeping, operational
00:10:56
◼
►
For example, I have someone who does that kind of work for me, all the tax compliance,
00:10:59
◼
►
accounting, those types of things.
00:11:01
◼
►
I'm a developer, I'm not an accountant.
00:11:03
◼
►
So I hired someone with a finance background to do those things for me.
00:11:07
◼
►
It's all kind of related to the same kind of concept.
00:11:09
◼
►
And then what you end up doing is you're optimizing your time.
00:11:12
◼
►
When I'm working, I'm working and I'm doing the thing that I'm good at, the thing that
00:11:15
◼
►
I am truly distinctive in and I can make the most money doing.
00:11:19
◼
►
And then when I'm resting, I'm truly resting and I try very hard to do that.
00:11:22
◼
►
That when I go on vacation, sometimes I'll – and that's the interesting thing there
00:11:25
◼
►
is when I go on vacation, I'll often program the things there.
00:11:29
◼
►
I'm not working though typically on work that I actually – that's my main stuff.
00:11:34
◼
►
These are the side projects that I've wanted to do, that I've thought about doing.
00:11:37
◼
►
The toy ideas I've had that I'll then work on and I'll have this opportunity to do it
00:11:41
◼
►
when I'm on vacation where I'm relaxed, there's no pressure, I can just pick it up, put it
00:11:45
◼
►
down, there's no deadline, it's just kind of, you know, I enjoy programming, that's
00:11:48
◼
►
why I do what I do.
00:11:50
◼
►
There's nothing wrong with that.
00:11:52
◼
►
So just some things to think about.
00:11:54
◼
►
Like I said, I will be on vacation next week, so after this episode 12, the next one won't
00:11:59
◼
►
be until a week from Monday, and at which point we'll pick that right back up where
00:12:05
◼
►
we left off.
00:12:06
◼
►
Hope you have a good week, enjoy it, take it easy, maybe take some extra rest yourself,
00:12:12
◼
►
And otherwise, have a good week, happy coding, and I will talk to you in a week.
00:12:16
◼
►
Thank you, bye.