DevelopmentNow Blog
 Tuesday, December 09, 2008

I was reading over Raven Zachary's O'Reilly post about turning ideas into execution and found the comments as interesting as the main post. In a nutshell, Raven mentioned that there are a lot of people with ideas for iPhone apps, but that building an iPhone application is too expensive (i.e. $125/hour) for many to capitalize on their ideas, and that the demand for iPhone developer talent far outstrips the supply. In the comments, however, were a number of apparently-experienced iPhone developers without enough work and expressing frustration that they're struggling to find clients willing to pay them even $50/hour.

This gaps between supply and demand is nothing new in any service industry, including the IT/software development world. Varying rates aren't just common in the iPhone world -- for example, I have have met US-based sysadmins and web programmers, some of whom charge $125/hour and some who charge $25/hour. Normally the $125/hour people are far more experienced than the $25/hour people, but not always. I suspect that iPhone rates are already drifting down into a varying range (instead of everyone getting $125/hour), and as others have noted, the fact that you can build an iPhone app already doesn't mean you can instantly charge anyone $125/hour. I have come across a number of clients who turned us down because they found someone willing to build them an iPhone app for $3000 flat. Did they end up with a crappy, late app? Possibly, but maybe not.

Even in our experience building mobile & social apps, we've found clients who have healthy budgets for whom we're a true bargain, while also finding clients with no capital looking for a $500 application. We've even gotten a few calls from offshore firms looking to outsource mobile development to us (we're in Portland, OR).

It's my belief that you can charge a lot per hour if 1) you are good, and 2) you can find clients willing and able to afford decent rates in exchange for reliable quality development.

#1 isn't always required, although if you can explain to your client that paying an experienced developer $100/hour for 10 hours of work is more effective than paying a junior developer $30/hour for 40 hours of work, then you're halfway there. Just like if you have an important or critical plumbing problem in your house, are you going to hire the seasoned veteran for $90/hour or the CraigsList special for $25/hour? Unfortunately, some clients only see the hourly rate (and not the total cost), while others have a certain budget or rate expectation already built in.

#2 is about networking, advertising, sales, careful client selection, and offering something worth the extra fee (because you're seen as an "expert" or have specialized skills). Getting a decent influx of clients and finding the ones that fit your offering is important. For us, we try to find clients that have established budgets and for whom on-time, quality, experienced, creative execution is worth the extra expense (although honestly we're more affordable than a lot of other development shops). It's no surprise that a few of our clients found us after being "burned" by other developers who were cheaper but either didn't deliver or went AWOL. Sometimes you can find someone very cheap who's also very good, but many times you're just gambing. Plus, hiring a developer at a super-low rate opens you up to the huge risk of that developer finding a better-paying contract halfway through your project. And if that happens, guess where he's going to focus more of his/her energy?

Also, I think #2 is sometimes difficult for developers, as it's full of soft skills, so a lot of excellent coders find themselves struggling to find clients willing to pay $50/hour while reading with some amazement about other programmers turning away work at $125/hour.

December 9, 2008    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 21, 2007
I thought about calling this entry "Don't Spend Two Hours to Save $20", but it lost out on the internal blog title poll. Both phrases are about how it's easy to end up spending hours & hours to avoid paying a nominal amount.

People who know me know that I like to talk about productivity a lot. Granted, I see the irony of me talking about productivity while I sit around writing blog posts, but anyhow.

Have you ever...

One of the things I've learned over the years is to not be afraid to spend a little money to save a lot of time. Assuming your time has value, it makes a lot of sense. So have you ever:
  • Spent hours creating a program to do something, instead of buying a $25 piece of software that does all that you need and more?
  • Used poorly-written, cumbersome free software to do your daily work, instead of paying $30 for a program that works really well?
  • Saved $20 on a new tech gadget by trolling FatWallet and TechBargains for a week, sending in multiple rebates, asking store managers to price match, and/or driving back to the store to do a return/rebuy or price guarantee?
  • Avoiding paying a $25 shipping fee on furniture or other large items by driving down to the store yourself, strapping the items to the top of your car, heading back home, unloading it, and carrying it into the room?
  • Bought a cheap piece of crap to do something (a rake, a wrench, a garden hose reel, a heatsink) that required extra time or money to get it working correctly, and/or broke after a short while and required replacement?
...and so on. It's easy to get sucked into saving a little money, but unless you enjoy the time spent saving that cash, you should make sure to be aware of how you spend your time and ensure that it's really getting you somewhere. As programmers, we love writing software, and it's really easy to say "hey I can quickly write or build my own X for free!" I've done that a lot (and heard similar sentiments from other developers), and while it's fun writing little utilities and tools, they have a habit of taking longer than expected.

A Full Price Lesson

I had a friend back in Chicago who asked me to come with him to buy some stuff for his computer. I mentioned that he could save a lot by checking out various deals, and that different stores had different prices, so that he could buy his keyboard at one vendor, his antivirus software somewhere else, a mouse on Amazon, and then send in some rebates to save even more. I mentioned that he should keep an eye on bargain-shopper sites and only buy when items go on sale, do some online research to compare price-for-performance between different items, and other price-shaving tips.

After a long spiel on techie thriftiness, he promptly ignored me and dragged us into Office Depot, where he asked my advice on what a good keyboard, mouse, and antivirus vendor were. I told him, and he grabbed the items, paid at the counter, and strolled out.

Initially I was shocked at his cavalier attitude at paying full price, but then I realized that he was done in 15 minutes. Done! I'd still be driving around, cutting out UPC symbols, etc. a week later.

I still remember that experience whenever I start thinking about how I can save $10 on a hard drive by comparing 4 different drives at 5 different sites over the course of 2 weeks.

If you're not working, you aren't getting paid

I'm not saying you shouldn't try to save money, nor should you throw money away. Nor should you buy things you don't need if something free will work just fine. Nor should you avoiding writing your own tools.

I'm just saying that if your time is valuable, think about how your time is spent, and just be conscious of where your hours are going vs where they'd go if you spent an extra $20-$100. Over the past two years at DevelopmentNow, that really hit home. We do 100% project work here, so if we're not working on a client's site, we don't get paid. With that in mind, I felt more comfortable paying a little to gain a lot (of time). Especially in IT, there are opportunities to spend an extra $20 to save hours.

Examples from the field

For example, I set up an Unfuddle account for the company. Unfuddle is sort of like BaseCamp+Subversion+Ticket system, but it was ready to go instead of me spending hours (days?) setting up SVN, Trac, and other stuff for free. I'm also probably going to buy phpEd or some other commerical PHP editor. Why? Because I get a lot for that $100 or so, and I buy it & I'm done. I take a lot of screenshots, too, and need more features than Cropper + Ifranview currently provide, so I'll probably buy SnagIt for $40. Plus I order most things (including furniture) online & have it delivered right to my door -- not only does it save me time, but it's better for the environment than driving my car around.

Wrapping up

So...that's how not to spend two hours to save $20. If you get paid hourly, saving $20 via two hours of unpaid work carries a real opportunity cost, which is how you go about losing 20 (or more) dollars an hour.

November 21, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Thursday, November 08, 2007

Ice Cream for Everyone wrote about their experiences in hiring a designer, listing out where they placed ads and what kind of candidates they found. Me the Geek also has a list of specialty job boards for finding programmers, and has a great quote (from Michael Arrington) on why companies often choose to post ads on smaller, niche boards:

The idea is that the best candidates read these blogs, and by definition are up to speed on cutting edge tech issues. By advertising there, you get the benefit of access to those candidates, without the hundreds of unqualified resumes that come flying in from a Craigslist or Monster.com listing.

I like playing devil's advocate, so I'll say that while it's true that sharp people keep up with technology, there are also a lot of bright programmers who don't read TechCrunch. There are also ones who read TechCrunch, but not the TechCrunch job boards.

A friend of mine runs a consulting company and had his best success on Monster.com, of all places. He mentioned that while he had to wade through a lot of bad candidates, the mere fact that Monster.com cast such a wide net helped ensure he'd find someone. He also felt that if people were looking for a job, they'd be sure to check Monster.com -- he didn't think there would be many viable candidates who ignored Monster and only focused on niche boards.

Anecdotally, I posted ads on ThinkVitamin and Authentic Jobs, and I did get a number of resumes from really sharp-seeming developers. However, they were on average outside the range that I could afford. When I posted on CraigsList, I actually didn't get as many responses as I thought I would -- largely because posting ads was free (until recently), and so your CraigsList job ad would get buried within a day or two by tons of staffing company ads.

So...maybe I don't get it. Or maybe if you're on a tighter budget, niche boards aren't the right place to look. But now that CraigsList charges $25 per ad in Portland, I might get better visibility.

 

November 8, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, November 07, 2007
Yes I've been busy lately. In fact that's what I wanted to blog about.

A while back, I was going through my finances to see how much I spent on different things. I wanted to know what my budget should be. When I'd go through the credit card statements, I'd see utilities, food, and other fixed costs. Restaurants, entertainment, etc. But there would always be one or two oddball one-off purchases (e.g. plane tickets one month, a new refrigerator another month, a new PC some other month, etc.) that I didn't want to include in the budget. "That fridge was a one-time thing, I shouldn't include that $500 in my budget," I'd say. But each month there's be some other random purchase that wasn't accounted for in the budget I drew up. And so these one-time purchases kept blowing my carefully detailed budget.

I eventually realized that I needed some sort of $500 "Random" or "Miscellaneous" category in my monthly budget because it dawned on me that there was always some important -- but new and unaccounted for -- item being purchased. So after I restructured my budget to assume that I'd "buy a fridge each month" so to speak, things worked out better.

Since starting DevelopmentNow almost two years ago, I've come to a similar realization about what takes up some of my time -- I can't assume I'll be able to spend 100% of my time coding, because there's always something that comes up as part of running a business. Interviewing job candidates, talking with clients, purchasing things for the office, working with my accountant to incorporate the business, writing contracts, updating proposals, upgrading my site hosting -- the list goes on. All that stuff needs to be done, and probably takes up at least a few hours a week, but it's hard for me to know exactly what those 8-12 hours a month will be spent doing ahead of time. I can guess, but I won't know for sure. And it's different each month.

But I now know that I need to permanently budget for that time so that I don't overcommit myself. So if you find yourself repeatedly crunched by unexpected timesinks, you may want to add a good ol' 10-hour "Random Stuff" block to your monthly budget, too.

How to minimize the amount of random stuff, however, is a topic for another day.

November 7, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]