Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Poll: What Do You Hate About Contracting?
30 points by ghempton on Sept 15, 2011 | hide | past | favorite | 63 comments
If you are currently doing contracting work, what is your biggest pain point in the process?
Preventing scope creep
62 points
Collecting payment on time
45 points
Getting good requirements up front
34 points
Finding projects that are the right length (either short or long)
29 points
Negotiating the rate
19 points


Source: I've run an iOS contracting company for the last three years. Here are some big problems:

* Lead qualification. This is an enormous problem. Lots of people want revenue sharing deals, etc., and it takes too long to work out whether they're serious about the project and whether I'm the right fit. What do they do for a living? Is this a corporate or personal project? etc.

* Client acquisition cost. Most of the options out there for advertising, etc., don't have a good ROI. It's super difficult to measure advertising effectiveness because you only have a handful of "conversions" (new clients) and thus your results are never statistically significant. It's all black magic and voodoo.

* Pricing. We do 99% fixed quote so hourly rate isn't really the issue. In my market, you adjust the scope to fit the budget, not adjust the budget to fit the scope. The problem is that clients play very close to the vest on what they want to spend, meaning I have to guess what they want to spend. If I guess right, I get the project, if I guess wrong, I will never hear from them again. The whole market is a game of chance, not a game of skill.

* Slow clients. It doesn't matter if the feature takes 1 hour or 5 hours if the client takes 4 weeks to get back to you. Tightening up our business process has improved this considerably from what it used to be, but I imagine a number of contractors experience this schedule unpredictability.

* Client education. Milestones, scope, test builds, etc., are just not in the vocabulary for non-software-background clients. Why the Estonian firm quoting $2000 for a $20k project is lying. How to collect crash reports. How to describe issues so that we can reproduce them. etc.

These problems are WAY bigger than anything you've listed. But about those:

* Project length - Rarely have I thought about this apart from the "Slow client" issue. There are no projects too short, or too long, for me to do, particularly if it's well-paying work.

* Good requirements - we usually write them. Being in the fixed quote business, we're pretty good at it.

* Scope creep - this is a minor problem for us, but we've tightened up the business process and are close to completely eliminating it as a problem.

* On-time payment - Another minor problem, recent changes to the business process are close to eliminating it.

* Negotiating the rate - we rarely do hourly work, so our version of this problem is the "Pricing" problem above.

If you are working on a startup in this space, please sign me up to give you feedback, as I could go on for hours :-)


My friend Mike has a company that does upside sharing for contract dev work, and their solution to the problem is to require 50% in cash as earnest money; makes the conversation simpler: if you're willing to put down 5 figures in dev expenses, you're probably for real.

(Thankfully, revenue sharing doesn't make sense for our business).

The other big problem you touched on that isn't in the poll is client scheduling; clients will slip and slide all over the calendar, and it's nothing to them (they're used to slipping), but for an outside firm, it's havoc.


Amen about the lead qualification. I just had this happen today: I spent a few hours on an email for a potential client whose project sounds like 3-6 man-months of work.

Now, does he really have that kind of dough laying around (ie: angel funding), or will I never here from the client again because he was hoping to get it done for $200? (Or worse: profit sharing / equity arrangements. Equity doesn't pay my rent.)


How big a problem is that variant of qualification, really? Why don't you just approach these things as if there's no real business there?

I may be jaded about this because so many of our bids are competitive, and even a simple bid takes a couple hours to put together. We win most of them, but you get used to sinking time into deals that don't pan out and build it into the process.


> How big a problem is that variant of qualification, really?

I think there's a little bit of culture shock going on here between our particular contracting fields.

If you're doing enterprise-ish security contracting, you're not going to get an unemployed person in your lead pile by accident. I get three e-mails from unemployed people a week. I get 20+ leads a month from questionably-funded "startups". The number of revenue sharing posts per day on Craigslist is competitive with the number of police stations in the metropolitan area. etc.

Just to have a 30-minute conversation to determine if somebody is funded or not simply does not scale to the number of interested parties. Even reading all the e-mails and throwing them away is a massive time sink. Let alone estimating anything, thinking about the feasibility of anything, etc.


Why do you entertain any of those projects? Why don't you just ask "is this a budgeted project? What is your allocated budget?"

(Seriously asking because I'm curious).


There are three reasons:

1) The sort of people who pass through the existing filters I have in place (I show some prices on the contact form) who have unfunded projects will claim that they are funded. The question has a shannon entropy of zero.

2) Everyone, funded or not, is cagey about the actual budget. In the iOS world, "funded" can mean anything from $500 to $500,000. If I say "So, what are you looking to spend?" they will reply "I'm not really sure what the project will cost, can you estimate it for me?" You get this line the same from a CEO or from an intern, from a bank manager or from an unemployed person calling on a payphone. If I say "Our average project cost is X", I am turning away some projects we could legitimately do for less than X with a very comfortable margin while accidentally dangling a carrot in front of a client who has a project that's really 3 * X. The former is an invisible cost, the latter may mean lots of time spent on useless estimates instead of actual billable work.

3) I used to have an e-mail autoresponder that would inquire about budgets, but on a typical day I started spending more time reading replies to my autoresponder than writing actual code. asking the question isn't scalable.


I have a policy in which I don't estimate jobs where my gut says will take more than 40 hours worth of work. Beyond that it's Agile style iteration work.

I think this has two advantages: I don't put that much time into "no real business here" leads, or (if there is business there), there's no way I know the whole scope of a large project in one conversation.


That's interesting. So when you say that it's more than 40 hours (at least $X cost), do you still give a high end range or just say "we'll see how it goes?"


I'm not sure a high end range makes sense without sitting down with the client and spending time on creating an Agile product backlog. (With a product backlog then we can start getting a vague scope).

I've actually revised my standard "potential lead" email based on some of the conversations in this thread. I now make it explicit that (a) I can help put together an Agile product backlog, for those larger project, and (b) make my hourly rate for this project manager/product owner work very explicit (to filter out those that don't actually have money)


This is interesting to me. Budget isn't something the conversation leads with?


I've been thinking about revising my tactics some, to try to get a potential client to spill what kind of budget they have to work with before I even start thinking about anything else.

It certainly helps sometimes in picking out project infrastructure ("I have to do this cheaply, so let's get inventive")


If they don't give me a budget I give them an hourly rate until I know what budget they are working with. That said, I prefer to work on an hourly arrangement if at all possible.


I think starting with an hourly rate is uninformative. For example, if a client's budget is low I might grab a RAD tool to get the job done (while letting the client know that this decision might hinder flexibility in the future.).

"You want a database on the web, that you can customize yourself, for $600? Great, let's grab a copy of FileMaker Pro, or sign up for Quickbase.com and get going" Yes, those solutions may limit potential of the app down the line, but they might actually be the right fit.

I'm another hourly-rate-all-the-way guy, but if I can extract the budget out of the client, then I can decide (essentially), "Given the client's other requirements, will a RAD/off-the-shelf/OSS-package-with-a-custom-theme work for this project... or do I just politely tell the potential client to get bent?"


In my experience an hourly rate usually either a) extracts the budget number that they have or b) gets the response of OK lets just do it hourly or c) I get show to the door.

In situation A it is usually because they see my hourly rate a pricy and so they give up their max budget, as a negotiating tool. In which case I tailor the solution to that budget.

In situation B they generally have a budget in which they don't see my cost as even making a dent in.

Finally in C generally we would have never had a meeting of the minds in the first place. I don't compete on price, there was a point where I had the price shoppers filtered out of my sales pipeline, but as we are bringing on new clients again, we do end up in situation C from time to time.


Money should be talked about in the first 30 minutes of discussion about any client project. Rates, budgets, ability of client to pay, etc.


What forms of advertising have you tried if you don't mind me asking? Just online stuff?

Effective or not, I've been struggling to think of ways to advertise a small contract development business to enterprises other than adwords and seo.


"enterprises"? of what sort? a particular industry? Networking with people in that industry at their events, perhaps even speaking at those events, would do you a world of good, ime.

Find some local networking groups that deal with the industr(y|ies) you target, and start to infiltrate their ranks :)

P.S. "low/no cost marketing" is one of the sessions at http://indieconf.com this year :)


Oh for sure, networking and word of mouth seems to be 95% how the business works. I was just interested specifically in whether any success had been had with any forms of advertising other than adwords and seo.


On the slow client problem, how did you tighten up your business process to remedy this?


Getting paid. I finish work; I send an invoice; I get an email back saying "thanks, we'll process this right away"; and I wait. A month later, I send another email and get told that it "slipped through the cracks" or "got lost", and a week later I get a check in the mail.

I think I'm batting roughly a 50% average on getting paid without sending the "uh, where's my money" email. I always get paid eventually and without complaints, so it's not as if people are trying to avoid paying; it just seems that people who hire me almost universally suck at doing paperwork.

And really, that's a bad way to suck. I suck at doing paperwork, but I at least pay my bills promptly.


Welcome to life in the big city. Your most lucrative clients are likely to end up being the biggest pain to handle receivables from.

There's not a whole lot you can do about it, is there? It's usually not your direct contacts who have anything to do with it, so it harms the relationship to complain to them about it (they have better things to do). Tracking down the right person in accounting or purchasing to get things moving is a waste of your time. For a long time, before we had a dedicated finance person, we just built these delays into our process.


It's not that I care about the time; I'm not so close to the margin that it really matters whether I get paid this month or next month.

The thing which annoys me is that I get paid promptly... after I nag. And it seems that 50% of the time, if I don't nag, I don't get paid at all. (I once had an invoice go unpaid for 6 months because I lost track of which ones were still outstanding. Invoices I sent to the same client in March, April, May, and June had been paid, but the invoice I sent in February hadn't.)


The 6-month-old invoice aside, we've been running into many more cases since last November of clients "stretching" their invoices -- waiting until the due date before mailing it, waiting until we contact them, that sort of thing. Like you say, they're usually quick once we (politely and gently) ask again.

I've also been hearing of this from my other clients who are running their own businesses. It seems to be endemic at the moment.


Ditto here. Maybe not 50%. Well... some of the work I do involves state agencies, and I've learned to deal with the pace of the machine. That said, once something's been 'approved' (meaning, an invoice has been approved) it's almost always < 60 days with the state.

I've had some clients I've worked with start off by saying (couple times a bit rudely) "now look here, we can't pay the day you submit an invoice - don't even think that's going to happen - it'll usually be 2-4 weeks before you get a check!". I figured they'd been burned pretty badly by people pestering them for money.

Turns about about 1/3rd of my subcontractors pester me the same, and I encouraged it because I used to paypal money the same day or next day after getting an invoice from them. I can do it, but there are times when I'm dealing with a lot of people, and other work, and simply don't have the time to deal with 'paperwork' but maybe once per week. I don't get the rudeness from people as much as the 'hey, i really need this money to buy food this week' stories. Word to the wise - don't pull that on me - it makes me want to find someone else who won't put me in that position.

So... maybe that should be another issue on the list of things you hate about contracting - dealing with subcontractors :)


In the future I would suggest adding a clause for late payments into your contract. The longer they wait to pay you the more they make on interest. The only incentive they have to pay you on time is to avoid being charged for it.

Assuming you don't want to burn bridges I'd play it this way. Invoice them for late payment and if they call you complaining tell them that it's automated by the invoicing software you use and you'll let it slide this time. That sends them the message that prompt payment matters. If they do it a second time screw em.


You need to get 50% payment upfront.

Or work in blocks of money on account (eg for a $50k job, you have the client send you $10k in advance and when that is near depleted you have them wire you the next $10k, etc)


If Colin's clients are anything like our clients (very likely), that's a bad idea. Nobody he competes with is asking for anything up front.

Breaking projects into billable milestones is a good idea for other reasons (it's a buffer against scope creep, providing you with periodic scope/schedule resync points), but it doesn't solve the payables problem. It's bad business to tell a client "I'm not going to proceed on milestone 3 until you pay me at least milestone 1".

I'm sure there are people on HN who are shocked-shocked! to hear that suggested. But you can safely assume that HN consistently undervalues what is probably one of the most valuable assets a consultant can have, which is "ease of working with".

When you commit to 4 milestone phases, and you client says your payment is in process, you have to keep working. The client is depending on the job getting done. You may be tempted to reply "but I'm depending on being able to afford dinner tonight". Your client doesn't really believe that it's their problem that you're not well capitalized.


It depends on the expectations. If you enter into the project with an agreement that work done on time deserves money paid on time, then everybody needs to hold their end of the bargain up.

And when you get 3 on time payments, and then the 4th is slipping you have to wonder if it's because they are having trouble getting the money. If they're having trouble getting money, why on earth would you waste your time working on a project that you won't get compensated for?

I think it's totally appropriate to expect on time payment if they can expect on time work. There's no reason it should be a one-sided agreement. How you reinforce that is up to you. But I don't think that communicating that their late payment is making you nervous and uncomfortable with the project is out of the question.

On a previous gig, this worked well on. I started seeing issues on his end with paying on time and it was rooted in ability to get the cash. Danger! He needed the project done asap, and couldn't afford me putting it on hold as I waited for money to come through. I communicated nervousness, so he had to hustle to get the cash.

Of course, once my work was done, it took quite a while to get final payment. It makes me wish I had a way of putting the design files in escrow of some sort, so that at least the pain was shared.


In accounts receivable, the employee who gets work done quickly gets promoted. In accounts owed, the opposite is true.


... and the employee who "forgets" to pay invoices until he gets an email reminding him gets promoted even faster?


Not owning the product and lack of creative control.


This was a big one for us too, which is why we did half and half. We contracted enough to get by, but also spent a lot of time working on our own projects on the side. What eventually happened though is the contract work slowly took over most of what we were doing. It's hard to strike a balance here.


I tried that too and found it useless. The product work got starved and ended up receiving far less than the half that was supposed to be its share. But I admit to sucking completely at divided focus.


This, but more specifically for me, writing code for features that you find utterly repugnant.


This happens everywhere where clowns have the money, unfortunately.


My biggest problem is educating customers on an iterative process. We don't do strict contracting, but we do license our iOS software platform and provide custom development work for the apps.

Both for our own products, and partner products, we like to begin beta testing apps at quite an embarrassing, early stage in the process. We also basically refuse to spec anything but the most basic features of the app, until we hear from users.

In almost every case, the partner agrees to this structure, but then when it comes down to it, they see what we want to release to beta (50-100 users), and then they push back and try and get us to implement features they think are important, or fix bugs they believe matter. They are somewhat incredulous when we push back and decline to bill them hours.

It always works out in the end. When the partner starts hearing the incredibly valuable things users say when they test the apps, they immediately understand the value, and it's smooth sailing from there.

But trying to get a company to release crappy, buggy, unfinished software to 100 of their real customers seems to always take some doing.

We've never had an issue getting paid, and we always require money up front. I did have to struggle once to get 10% of a contract, but I honestly believe it was just accidentally FUBARed.


I hate finding projects. I know they're out there, but it's all word of mouth. Sucks.


This is my favourite part - I find it helps if you treat it like the game it is. Meet people, ask about their business, be friendly and before you know it they are asking your advice on an app. Get in there and close the deal, do a good job, get a referral, rinse and repeat.

It's all about networking and talking a good game. It doesn't come natural to engineers I admit but once I decided to just go for it I found it can be fun.

On the plus side you do get to meet a lot of interesting people and discover interesting ideas for apps.


You forgot acquiring customers and being on call with nearly unlimited liability...


Most parts of my projects go pretty nicely, but getting paid has always been a pain after the first couple of months on a project.

Getting a deposit up front definitely helps with clients paying on time the first couple of months.

I work with a lot of "green field" projects though, and it seems like many clients operate under the impression that the site is going to start making money right away without any marketing or advertising. I usually help them put together a plan for that (and help them with AdWords), but they are for some reason reluctant to actually start making calls, sending emails, reaching out to bloggers, etc.

After a few months, they inevitably start paying later and later as they start to get concerned about running out of money.


Honestly, never had to deal with any of these. My brother and I would only work for people who had the money and knew what they wanted up front. We were very straightforward (and firm) about our rates, and if someone didn't pay us on time, we'd stop all work on their project until they did. Scope creep was never an issue because we worked hourly ;).

The thing I didn't like most about contracting was having my time split up so much between different projects. I like to work on one thing for days at a time, and this wasn't always realistic with several projects going at once.


Scope creep is always the worst for me. It happens with almost every single side-project I take. That said, since I started billing hourly (with nightly updates to work / invoice), it's gotten a lot better.


The paperwork, namely creating detailed line-item invoices.

That's why I created this gem, Big Bucks No Whammies, to automatically generate my invoices from my git commits.

https://github.com/aantix/big_bucks_no_whammies

Here's a sample invoice : https://github.com/aantix/big_bucks_no_whammies/blob/master/...


I'm not sure providing detailed line-item invoices like this is a win. How are you getting cornered into pricing on a commit-by-commit basis?


It's not a commit by commit basis. Time is tracked on a daily basis using a 3rd party program called Timesink. The directions are outlined on the gem's README. https://github.com/aantix/big_bucks_no_whammies


Your clients ask for details invoices? I rarely get more detailed than consisting of "<date> Software development <hours> @ <rate> = <total>" and nobody has ever complained.


My biggest issue is synchronizing with the client. You make a perfect schedule with the right set of milestones that works for you and your other projects, but you have to be ready to answer the phone and break your flow to attend a client that is really excited because they got a whole bunch of assets for the site and they'd like to see them live :). So you have to ready to push your calendar and move people around.


People wasting my time with stupid ideas.

The amount of Groupon clones I've had come in front of me with "a special twist that will take the market by storm" is ridiculous.


We had this clown come in once all sweaty wearing a suit with no socks, and he tried to pitch us on some idea which involved building a Windows client application and distributing it using the "AOL CD distribution model." He also went to a private college and blamed his parents for his business problems.


Ha we had one of these once, but a Twitter clone. I kept trying to convince the person to just integrate with twitter instead of rebuilding it with a few tweaks, but to no avail. Sadly, we didn't end up taking the job...


The latest Groupon thing I had was a guy who came to with an idea of filling orders. People vote on what they want to do and then companies could see the customer interest and fill the order.

He had a mechanism in place that would have a group buying percentage rating, and naturally lower profit per sale for the person filling the order.

The first thing I said to him was, customers don't know what they are buying... they are gambling that companies supply something good.

From a companies point of this is a great mechanism to drop stock that isn't selling... which for most people would be stock people don't want... I doubt there would be many $99 Touch Pads, and mostly as seen on TV products...

He refused to acknowledge his system could be abused in this manner I suggested and the customer experience could end up quite bad (received products below the quality they expected).

I asked for some sort of spec, or numbers, or anything around what he wanted and I was presented with "I've told you everything, and you have the designs". The designs where ball point pen sketches he left on a piece of paper we found in a cafe where we had our first meeting.

I got a tad concerned at this point and pushed him for some other questions around his funding and sales men.

No sales staff, and he was taking out a loan to develop the work. At this point I said I wasn't interested as I got concerned that when money didn't start rolling in I might not get paid.

He got really angry with me after I declined and I felt a wave of relief as I assume he would have been the sort of client who would never have been wrong, and would have probably tried some stupid law suit blaming me for bad business decisions.


Perhaps finding clients should be there. How are you guys finding clients? Im looking for clients that I can deal with on the side along with my day job. How did you guys go about getting first client


The biggest issue for you will be the side work issue. It limits your ability to take one a larger project. Which are usually the one that give you room to breath. In our group of developers we do have a few moonlighters but we have 5 full-timers as well. My suggestion to you would be until you can get out on your own full-time, team up with some other freelancers. It will broaden the projects that you can service.


Elance got us a lot of ongoing work, believe it or not. It seems like a tool for finding people in Russia to do your work for cheap, but a profile on Elance (at least a few years ago, mind you) got my brother and I two very large, ongoing contracts (which in turn led to more work from others as well).

Also, LinkedIn seems to be a very good tool for self-marketing nowadays, I hear a lot of people get work through it very regularly.


Getting unlimited calling from clients who are not serious is number one by far! signal to noise ratio in the freelancing market is dismal.


That is why many of us tend to stop taking non-network referred clients one we pass a certain point. It acts as a filter for the noise.

I actually made a pretty big mistake in that I took on a client that bought all of our capacity for the last 2 years. It was great while it lasted but many of my smaller clients have since moved on. So now that that project is winding down, I am back to the high signal to noise ratio while I build back up my client base.


Having to work away from home, family and friends.


I would say, the unwillingness for companies to outsource the interesting work.

IME, most consulting work is just grind, no interesting problems, and the pay rarely really makes up for the real amount of work.


Find your niche and only contract in that space. For quite a while, I only did reverse-engineering contracting; I gained a reputation for doing it, and my available work and hourly rate rose as a result of that. Figure out the intersection of what you're interested in, what people are willing to pay for, and what you're good at and you're set.


Yeah, I actually think you've got a better shot at specializing in interesting work as a consultant. As a staff developer, even if you work on interesting things most of the time, you can still get stuck with bottom-of-the-barrel shit like the equivalent of writing a VB app to track the secretary's time.


Exactly... we do nothing but mapping apps, leveraging a platform we license out. Our partners know that the apps we produce are going to rank and make money, and so they pay.


I'm a consultant and I get this a lot but I actually agree with it, esp where the client is a larger firm with numerous employees.

When I was on the other side of the table, and an employee working in a dev team that also consisted of contractors, the only reason I didn't quit and demand to be rehired as a contractor on 200% of my salary is because the firm only used contractors for grind work. I knew that all of the work that would be interesting and furthering would be farmed out to the employees out of loyalty.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: