Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Maybe, they could pay market price than? Oh, the only target is to be cheap.. Okay then


To be fair, the OP was referring to all large outsourcing companies. There are a lot of outsourcing companies that charge well over the rate for a full time hire (they don't necessarily pay their employees that, but...) I worked briefly for one such "body shop" and I found that the company billed my time at a rate of about twice what they paid me. As far as I can tell, it tends to slot in between a full time employee and an independent consultant/contractor in terms of price.

Why do companies pay this premium? For one, it may be because they have a budget for a "6 month project" (wink, wink, nudge, nudge) but not for a full time hire. Sometimes it's because they think that they'll be able to pick and choose the best developers from inside a large organisation (and sometimes it works out that way... almost never, but sometimes...) But really it's just a matter of being naive, I think.

The company I used to work for (as an independent contractor... ahem...) went through a phase where the CEO was absolutely convinced that it didn't pay to hire developers -- they were a PITA (always demanding weird things, never showing up before 10:30 am, never dressing properly for work, etc, etc). They always wanted raises and you have to track progress and negotiate with them on price every year. You have to pay benefits and if a person is on disability on maternity, you've got to do something about it. You constantly need to be reviewing CVs, interviewing and hiring. If you get someone really bad, you can't actually reasonably fire them for a long time. Etc, etc, etc. So he tried a few experiments with hiring from outsourcing companies (all of which were charging considerably more than any of us were getting paid, I will add)... and it wasn't a disaster, but it wasn't really any better. But the cherry on the cake was, as soon as the project was done, they fled and no amount of pleading could get those developers back again (as you can imagine). So the CEO realised that having a crack development team was definitely worth the effort and the company really transformed as a result.

However, a lot of companies are still stuck in the mindset where it's best to have as few full time developers as possible.


Programming is still a very complex craft and requires sensible people with reasonable skill levels to implement reliable systems. This seems to be totally ignored by most non-tech American companies who treat Software much the same way as, say, buying a phone service. There are a lot of American businesses that are suffering because of this and its sad but I'm not sure how they can be convinced that having good programmers who are compensated reasonably well is such an important thing to have.

Maybe I'm saying this from the perspective of a programmer and not a business owner, IDK. Cloud stuff seems promising: a nice way to deliver turnkey solutions instead of custom crap that needs an outsourced body shop to maintain.


I think a lot of it is that companies don't see software as something you need to sustain. They see it as a tool that helps them with the rest of their business. It makes sense to them to go out an buy that tool. For example, if you are a brewery and you need kegs, you go out and buy kegs. You don't hire a whole bunch of coopers and devote a fair percentage of your business building barrels. That's seen as an old fashioned, wasteful way to do business. Unless software is your actual product, why do you have a team building it? You might even buy custom built kegs, but once you have them, you don't need a team building kegs -- you just need to hire someone occasionally to replace old ones.

I think from that perspective it makes total sense. Unfortunately, software is an embodiment of your business requirements and that you business requirements will probably be changing from day to day. Once you realise that, you can see that you need a team to be constantly changing the software.

In bonsai (trees in pots) there is a saying that a bonsai is only "finished" when it is dead -- because it keeps growing and changing. You can never say, "I'm done" because tomorrow the tree is different. I think this is also true of software: it's only "done" when nobody is using it any more (or, I suppose, when it's so unimportant that nobody cares that it isn't correct).

I think until we get the singularity, we will always need "programmers" -- people who translate the business requirements into something that the computer can act on. In fact, it's mostly thinking about the requirements that is important. The actual encoding of the computer instructions is (hopefully!) not that difficult.


> In fact, it's mostly thinking about the requirements that is important. The actual encoding of the computer instructions is (hopefully!) not that difficult.

Jesus please don't draw conclusions about things you have no idea about. Would you say that designing and developing machines that replace humans bit by bit is not difficult (hopefully!).


> Jesus please don't draw conclusions about things you have no idea about

That's a curious choice of wording. I have considerable experience encoding requirements as computer programs. According to the latest Stack Overflow survey, I seem to be in the 99th percentile in terms of coding experience ;-) I find that getting the requirements right is dramatically more difficult than encoding the instructions for the computer (even if you happen to write a big ball of hairy code).

Consider that we have 3 types of errors that can occur in software: errors in requirements, errors in translating those requirements to code, and errors in expressing that code. In other words, we can build the wrong system because we got the requirements wrong, we can build the wrong system because our code doesn't implement the requirements that we gathered, and we can have errors where the implementation has effects that we didn't consider.

There is a reasonable chance that we can build systems that given requirements will encode them into working code. This can take care of the second 2 classes of errors. However, if you look at where most of your time as a developer goes to: it is rewriting the code where the requirements were insufficient or incorrect. Until we have an AI system that can replicate human levels of thinking we won't be able to go from "I need a sales report" to code because there is no way for the system to reason about what should be in a sales report -- and especially no way to ask relevant questions about the business to write a sales report that is good for that business.

No matter how good we get at automatically translating requirements to code, you are still going to need a person to gather the requirements and think in excruciating detail about exactly what you need. You may have noticed that normal people can't do that job. They will say, "I need a sales report" and you say "What should it contain?" -- the answer will be "The sales information". Keeping track of all the mind-boggling little details and exactly how it will affect the rest of the system is still going to be a job for a human -- until we can build a system that is capable as a human (and not just any human -- a human that is able to think very hard about requirements). This will not happen in my lifetime. It might not even happen in your lifetime (which by the very nature of statistics is likely to be longer than mine ;-) ).

The "hopefully!" part was meant to be a nod to the occasional situation where people build systems that are far more complicated than the problem they are solving. Hopefully you are not building such a system ;-)

I hope that cleared up what I was trying to say. I have to admit that I am not very clear on what you were trying to say.


Sorry I'm dense but what is the 6 month contract wink wink nudge nudge?


It's a 6 month engagement that renews in perpetuity. Mainly as a way to avoid having employer obligations.


Also known as a Permalancer - who can also massively increase their take home pay and reduce their tax.


After the Microsoft lawsuit, those perpetual renewals pretty much dried up. Any company that still does it is taking a risk.


Take a tour in Europe, France or Switzerland, I know some contractors who have been in the same client, if not team (through various reorg) for more than two decades. Myself,5y same client over a 7years period, each time in a different team or close to.


Wonder how long it'll last. Current government in Poland recently announced they're planning a crackdown on "permalancers", with a recent interview calling people regularly billing just one client "not true entrepreneurs", and therefore not entitled to privileges of sole proprietorship.


I've been doing this (not quite on the 5 year scale) in both UK and Australia.


Now Microsoft only allows contractors for 18 months in a given 24 month period (i.e. mandatory 6 month cooling-off period).




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

Search: