0:00:00Hello, and welcome to Developing Perspective.
0:00:03Developing Perspective is a near-daily podcast discussing the news of note in iOS, Apple,
0:00:07and the like.
0:00:08I'm your host, David Smith.
0:00:09I'm an independent iOS developer based in Herndon, Virginia.
0:00:13This is show number 17, and today is Friday, August 26, 2011.
0:00:18The format of Developing Perspective is that I'll cover a handful of links, articles, things
0:00:22I found interesting in the last 24 hours or so, and move over into a more general discussion
0:00:27towards the end.
0:00:29The show will never be longer than 15 minutes.
0:00:31Without further ado, let's get to it.
0:00:34All right, so our first link today
0:00:35is to something called Playbook--
0:00:38see, it's Thoughtbots Playbook.
0:00:41And specifically, this is just a very interesting guide
0:00:43that Thoughtbot, which is a pretty famous consulting shop,
0:00:47has put together.
0:00:48And they kind of walk through how they do what they do.
0:00:53And so it talks about how to get started,
0:00:55how to choose platforms, building a team,
0:00:57working in feedback loops, finding a rhythm,
0:00:59setting up technical infrastructure,
0:01:01choosing process tools, understanding design,
0:01:03measuring results, budgeting, using trends,
0:01:06and working in Boston are their subtitles.
0:01:09And I've only been able to crack the surface of this.
0:01:11There's a lot of information here.
0:01:13And I think it's just really good so far.
0:01:16I've been very impressed by how to under--
0:01:19they're analyzing and dissecting how
0:01:21it is that you can make a very successful consulting company.
0:01:25I think this would also apply generally
0:01:27to probably product companies.
0:01:29It may not be as applicable to small independents,
0:01:32such as myself, other than just finding little nuggets.
0:01:35But I think it's definitely relevant to anybody
0:01:38working with a larger team or with clients.
0:01:40So definitely worth checking out.
0:01:43Next, there's an excellent follow-up
0:01:45to Ole Bergman's What's New for Developers in macOS Lion.
0:01:53I think I may have-- I think I've linked to this before.
0:01:55There's now a part two to his original part one discussion.
0:02:00It's a wonderful thing where it's almost
0:02:02I wish Apple put out one of these
0:02:04rather than their kind of terse, hard to dissect release notes.
0:02:07Because it's just basically, in paragraph by paragraph,
0:02:10walking through exactly what has changed.
0:02:14And not necessarily in an API level,
0:02:16because that's only vaguely interesting,
0:02:18but in like, what would you use this for?
0:02:19How is that important?
0:02:20Those types of things.
0:02:21So if you do any kind of Mac development,
0:02:23definitely worth checking that out.
0:02:25I learned a lot from that.
0:02:28Next, it's kind of a sad day in many ways.
0:02:32So yesterday, obviously, the big news of yesterday
0:02:35was that Steve Jobs resigned as CEO
0:02:37and became chairman of the board.
0:02:39And while nowhere near as significant of a transition,
0:02:43Commander Taco resigned from Slashdot.
0:02:46And now I'm not a huge Slashdot fan.
0:02:48I bruise there from time to time.
0:02:50I used to enjoy it more probably when I was in college.
0:02:53And I was a bit more, shall we say, in that crowd.
0:02:57But I've been reading--
0:02:59the first time I read Slashtop was probably back in--
0:03:03I don't even know.
0:03:03It seems like it would probably be in the late '90s.
0:03:07And it's kind of set--
0:03:09he's always been there.
0:03:10I mean, it's just one of those fixtures in tech culture.
0:03:15And he resigned.
0:03:16He's moving on to other things.
0:03:19And it's just kind of one of those like, huh, what a week,
0:03:22when two fairly famous people, certainly in different leagues,
0:03:26in the tech world transitioned out of their current role,
0:03:30which is just kind of sadness in a nostalgic way.
0:03:34Next, there's an interesting article
0:03:36I found talking about a recent hack that was done on RSA.
0:03:42And if you've ever seen those little tokens with numbers
0:03:46that cycle through, they're little RSA cohens,
0:03:50a lot of higher security people or higher security facilities
0:03:55and companies need them.
0:03:56And so if you've ever worked for a large enterprise company
0:03:59or know someone who has, you've probably seen this thing.
0:04:01Every 30 seconds, the random numbers change.
0:04:04And the theory is that it makes it incredibly difficult
0:04:08to hack someone's password because the password changes
0:04:10every 30 seconds, but in a way that
0:04:13is sort of very understandable and usable from a user's
0:04:16perspective.
0:04:17And this is talking about how the hack that broke that
0:04:20actually worked.
0:04:21And it's just kind of an interesting thing
0:04:23from a social engineering perspective,
0:04:25where the way they actually managed to hack it
0:04:27was to get a Trojan inside of the RSA network.
0:04:32And the way they did that was by sending an email that said,
0:04:372011 recruitment plan.
0:04:39I forward this file to you for review.
0:04:42Please open and view it.
0:04:43And so that's what they sent to dozens of people
0:04:46within RSA, EMC, the companies that run this,
0:04:51and somebody opened it.
0:04:53And then it's the usual-- within inside of Excel,
0:04:56there was a flash-embedded document
0:04:59that then proceeded to take over everything.
0:05:01And then they opened a back door and all that kind of stuff.
0:05:04But I was just kind of fascinated.
0:05:05And they have a video of what this looks like,
0:05:08which is definitely worth checking out.
0:05:10But it's just fascinating how just sending
0:05:12that email to hundreds of people within a company,
0:05:16the likelihood of someone opening it and just checking it out.
0:05:20I don't know, if I forward this to you for review, please open and view it.
0:05:24And someone does.
0:05:25And it's just kind of one of those things where it reminds me no matter how complicated
0:05:29or sophisticated your security system is, it's ultimately, if people have to use it,
0:05:35it's fundamentally going to be flawed in ways like this.
0:05:38So it's just always worth keeping in mind.
0:05:42Lastly, there's a link to an article published by a lawyer,
0:05:47Ryan Roberts, which no offense to him,
0:05:49but it's kind of interesting thing.
0:05:50I was looking through this.
0:05:51And basically, he said, it's like a checklist
0:05:54for if you were launching a startup.
0:05:56And it walks through, oh, you should
0:05:58choose this kind of corporation.
0:06:00You should incorporate in Delaware.
0:06:02You need 10 million shares, of which 8 million shares
0:06:05should be distributed to the initial founders.
0:06:07And it goes on and on and on.
0:06:09And it seems very interesting and helpful
0:06:12if that's something that you're interested in.
0:06:14But I must say, as I read through it
0:06:16and I was kind of looking through all of the investing
0:06:19schedules, a four-year investing schedule with a one-year cliff
0:06:22and all this stuff, I'm like, you know,
0:06:24I'm glad that I don't work for a startup,
0:06:26that I don't have a startup in a way that
0:06:28for that would be significant.
0:06:29The business I have is a single member LLC.
0:06:32I own it.
0:06:33And it gets money.
0:06:34And that money gets put in my bank account
0:06:37after working through the business's accounting.
0:06:40And that's about it.
0:06:41There's not really all this craziness and shenanigans
0:06:44and things that go on.
0:06:45And that just sounds as though that would be very distracting,
0:06:49where I'm independent to make things, to build things,
0:06:52to have a business of making software,
0:06:54not to be in the business of having a corporation
0:06:58and managing all of the things that go into that.
0:07:00Now, I'm sure you can outsource a lot of that.
0:07:02And I'm sure that's part of why, as a startup lawyer,
0:07:04he's putting out a guide like this, because this
0:07:06work he does for other people.
0:07:08But it definitely was just kind of one of those like, yep, that reminds me why I do
0:07:13what I do rather than sort of our heading down that road of trying to start an apps
0:07:18company startup or something like that.
0:07:20Anyway, so that's it for today's links.
0:07:23Hopefully it's nice to be back getting a lot of links after yesterday's sort of break from
0:07:28the norm.
0:07:29Hopefully that's interesting and useful to you.
0:07:31And so for the rest of our general discussion today, I'm going to move back to what I was
0:07:35talking about two days ago, which is about hourly billing.
0:07:38And specifically, I'll start off talking about the way I do it,
0:07:41because I think I gave a little bit of short change
0:07:43to that, because I would try very, very hard
0:07:45to keep the show to 15 minutes.
0:07:46And I think I kind of rushed at the end.
0:07:48So I was going to walk through my policy
0:07:49again, because I think that might be interesting.
0:07:51And then some kind of other thoughts about hourly billing
0:07:54and the pros and cons of it.
0:07:56So essentially, what I was saying for my policy
0:07:58for hourly billing-- and a lot of this
0:08:00is to deal with the strange cases where you get,
0:08:03you know, essentially the ability to double book, double bill for the same time.
0:08:09You know, whether you're working on one project, you know, say the classic would be if you
0:08:12have a contract where you're paid for travel and then you work for another client while
0:08:16traveling on a plane, for example.
0:08:19You can in theory bill both clients for that and kind of how to work through that.
0:08:24And then also in terms of how do you deal with things like rounding and those types
0:08:27of things.
0:08:28And so this is basically the way that I do it.
0:08:30And it may not be right or wrong.
0:08:32Ultimately, the most important thing that is however you do it is that you're clear
0:08:35with your clear upfront in your contract with your clients about exactly how you do it and
0:08:39you're both fine with it.
0:08:41Because ultimately, that's the only thing that really matters.
0:08:43I mean, there's a lot of these things you can kind of get into about, "Oh, this one's
0:08:47better than this way."
0:08:48But if you create a system and the client agrees to that, then you're fine.
0:08:53So basically, the way that I do it is I only charge one client at a time for my time.
0:09:00So if I was in a circumstance where there is an opportunity to double book, what I would
0:09:06typically do there, so in the example of travel, is I would charge the person who I was doing
0:09:12the active cognitive focused work for my time, and the person who has travel would essentially
0:09:18get a discount from that.
0:09:19So you know, if I'm taking eight hours to travel somewhere for somebody, and I do two
0:09:23hours of work for someone else, the travel gets only billed at six and the other person
0:09:27gets billed at two.
0:09:29seems the fairest because what they're really paying for me is my attention for my focus
0:09:36and for the work that I do for them. And so it seems only fair that the person who gets
0:09:39the strongest amount of my attention is getting charged for that. Then beyond that, in terms
0:09:47of how I handle our rounding and those types of things, every project I work on has sort
0:09:52of a minimum amount of time that I bill in. And so this is typically a quarter of an hour,
0:09:56half an hour. I used to do tenths of an hour, but that became a bit too granular,
0:10:02sort of for practicality's sake. And essentially what I do there is, so say for
0:10:07argument's sake, I'm billing to the half hour. And what I do is, as I'm
0:10:13working, I keep track of the actual time that I'm working on projects. And the way
0:10:18I do this, typically I've tried all kinds of time tracking systems, you know,
0:10:22Billings and oh gosh, there's dozens of them and I've never found one that really worked for me
0:10:28What I find that works is a piece of paper
0:10:30Typically, it's just a notebook that I sit next to my next to where I work and I record the time that I start and
0:10:36The time that I stop and the project I'm working on
0:10:38And you just kind of get into the habit of doing that. I think that there's a bit of discipline there
0:10:43That's also good that you think about
0:10:45When you're moving from one project to the other that you take a moment and you kind of think about that transition
0:10:51So you're not just kind of flitting between things back
0:10:53and forth.
0:10:55And you just record the time.
0:10:57And then actually, so at that point,
0:10:59I have the time recorded to the minute, essentially.
0:11:03And then I use that, add all those up, round
0:11:06to whatever the number is, charging a minimum
0:11:10of whatever my unit is.
0:11:12So if I only work on a project, say, for example,
0:11:15for five minutes in a day, I will still
0:11:17charge them a half an hour for that, just in the sense
0:11:20I find that that's really that that sort of makes sense and works well for me that there's a minimum amount of time
0:11:26that I'm giving you any amount of attention that I'm getting sort of
0:11:29Renumerated for that and that specifically is a lot to deal with sort of the scenario
0:11:33I often find where you end up in a project that kind of drags on a little bit towards the end
0:11:38And there's just a lot of correspondence and you're never really getting a large chunks of work
0:11:42But you're doing a lot of little work that you're doing like two minutes here two minutes there two minutes there
0:11:47And it's just a way to sort of capture that in an honest way, I think.
0:11:52And that's basically how I do it.
0:11:53I find that works pretty well.
0:11:54I think it doesn't take too much to manage.
0:11:57It's fairly straightforward.
0:11:59And I think it seems fairly honest that at the end of the day, the bigger parts of that
0:12:03I think are just having the mindset of what you're trying to do is capture how much of
0:12:08your attention you're giving to each of your clients and then be paying them accordingly.
0:12:14So that's essentially how I do it.
0:12:17For the last part of this discussion,
0:12:18what I'm going to talk about, though,
0:12:20is why I really don't like hourly billing.
0:12:22And I think the biggest part of this
0:12:24is that hourly billing, I think, incentivizes the wrong behavior.
0:12:28So with an hourly work, you're ending up in this strange place
0:12:33where you're paid for how long it takes you to do what you do,
0:12:37rather than it being paid for your expertise and ability
0:12:42to execute in an efficient way.
0:12:45So if, for example, I'm working on a project--
0:12:47and this has happened to me dozens of times--
0:12:49where, say, it's a $10,000 project with an hourly cap.
0:12:54Say, for argument's sake, I was working at $100 an hour,
0:12:56so it's $100, $100 an hour, $10,000.
0:13:01The problem with that is, for me,
0:13:02is if I'm able to accomplish the work that they want done
0:13:05in, say, 50 hours or 60 hours, then I'm
0:13:10only going to get paid for $6,000, $7,000,
0:13:14whatever that is, dollars on that project.
0:13:16And that's a strange incentive for me,
0:13:19because the client has said this work is worth $10,000 to them.
0:13:25That's why they put the cap on it.
0:13:27But I'm not going to get paid for that.
0:13:30So they're getting a nice discount.
0:13:31Now, it works sort of the other way as well, in terms of,
0:13:34if something ends up taking longer,
0:13:36then you are paid for all of the time that it takes.
0:13:39So if I originally say it's going to be 100 hours,
0:13:42turns out to be 150 hours.
0:13:44Obviously, I would have had to have gone back to the client and explained what happened
0:13:48and at that point move on from, in terms of having them understand why I need to go over
0:13:54and adjust the cap.
0:13:57But it feels like that's always been kind of a strange thing.
0:14:00I mean, maybe it's just the way that I work or how bad I am at estimating.
0:14:03But I'd say the vast majority of the time, I'm able to do something in a shorter amount
0:14:07of time than it actually takes.
0:14:09And that's really a bad incentive.
0:14:10And that's where typically I try and move towards fixed-price jobs.
0:14:13Fixed-price jobs, you have a bit of more risk, but I find it's a good incentive because for
0:14:18me then, my goal is to get that project done as quickly as I can because if I can get it
0:14:22done quickly, then I make more money.
0:14:24Because if I do two fixed-price jobs in the time it would have taken one hourly job, I've
0:14:28made twice as much.
0:14:29And that's a really good incentive.
0:14:31And I like aligning financial incentives with productivity incentives.
0:14:35That works well for me.
0:14:36All right.
0:14:37That's it for today's show.
0:14:38Hope you enjoyed it.
0:14:40As always, if you have any thoughts, comments, questions, hit me up on Twitter.
0:14:43I'm @_DavidSmith or just follow me there.
0:14:46Tell your friends if you like the show.
0:14:47It's the best way to share it around or rate it on iTunes.
0:14:49Anything like that I really appreciate.
0:14:51Otherwise, have a good weekend.
0:14:53Happy coding and I'll talk to you on Monday.
0:14:55Bye.