Developing Perspective

#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:01   vacation.

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:55   things.

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.