Hacker News new | comments | ask | show | jobs | submit login
Ask HN: Do you have a software consultant or outsourcing horror story?
105 points by Shanerostad 10 months ago | hide | past | web | favorite | 78 comments
I'll start:

My friend's first startup took a dive after spending $80,000 to work with a local development company. It turned out the development firm was just a front to outsource all of the work overseas and take a big cut.

Long story short, 5 months later he ended up with no app, no money, and a lawsuit that he couldn't much afford.

Has anyone else had an experience like this?

Ooooh yes!

A few years ago I was working for a large company. We needed some help building an app and a back-end service. Our team could have built this - but we were stretched a bit thin with other work.

So we found a great technology partner. They'd helped us in the past, and they could take care of everything.

After a few weeks, it turns out that they'd over-sold their abilities as a back-end provider. They could do the app no problem, but were going to have to use another company to build the database. No worries, they've done this loads of times before.

We were quite behind schedule, so agreed to it. I was sent to give a briefing to the twice-removed company.

I talked them through what we were doing, the designs we had, and how it needed to be built. I explained the challenges we anticipated, the regulatory environment, and the timescales.

Their lead consultant looked over what I'd presented and said - "This is excellent work. We'd like to hire you."

"I'm flattered," I said, "But I quite like my current job."

"No, you misunderstand," the consultant said, "We want to hire you to build this for us. It looks like you know exactly what the client wants and, frankly, I don't think we have the skill in-house to build it on time."


He thought I was from the first-outsourced company.

I gently let him know that I was the bloody client!

Needless to say, the project collapsed shortly thereafter.

"No, you misunderstand,"

This must've been funny!

Excellent story, I wish I could have been in that meeting!

Boy oh boy oh boy do I.

I was transitioning between teams and needed something to do in the meantime, so I got put on a testing and validation team for an internal product. I was to collaborate with our overseas IT team and figure out why their tests weren't catching bugs in production.

After two weeks of wrangling, hand wringing, and bad vibes, I finally got them to send me their test automation code and a link to their Jenkins where they were running their tests.

The Jenkins was in a sorry state: disk overflowing with garbage, 10+ releases behind, and not tied into our corporate LDAP (it was using local admin-everything accounts instead). But that didn't hold a candle to the test automation code itself.

It didn't compile.

No seriously, I spent two more weeks just trying to get it to compile on my laptop, and I could not make it work. Mind you, this was a pretty bog-standard setup (Python unittest-based suite, Selenium for frontend testing, and an in-house [but not terribly unusual] integration test library written in lua).

I never once got it to compile, all the while their engineers insisting that I must be doing something wrong because it works fine on their Jenkins server, as evinced by their test reports being generated every night.

Turns out that wasn't true either, though: they had built a series of obfuscations such that the Jenkins job scanned the written tests, marked most of them as passing, and randomly failed the rest. This had been going on for over a year and a half and apparently no one had noticed. They were faking test results and slowing down developers because no one could figure out why tests were failing randomly.

The worst part is, when confronted with the problem, their defense was that they were worried no one was reading their reports, so they did it once a year ago and forgot to turn it off. Problem is that the report generation was fairly sophisticated with quite a few special clauses to handle specific tests which had to "pass" or "fail" in a particular way. So they clearly invested some time into it.

They finally admitted they were in too deep a couple weeks after that initial confrontation, and fired from our team. But because they're the favorite consultancy of another manager at the company, they continue to this day to consult for the company. It's really sad.

That is a new record. I can kinda understand incompetence "ok we hired too many people, some were not very good and we haven't fired them yet"... annoying but it makes sense.

But this is outright fraud. This is the literal definition of negative value. Paying someone money to test, then those testers failing "random tests" wasting actual developer time on non-bugs.

(With that said, this is very weird an offshore team would own the unit tests for a project.. the developers should own it)

Trust me, I know. Having someone else write your tests just screams incompetence to me, but this project was like 4 years in at this point. I wasn't going to convince them to change that.

I am taking over a codebase that was written by an outsourced team in Pakistan. The code is in a total chaotic copy-pasta state. I swear the main thing you'll find in outsourced code is the inability to refactor or re-use code for similar features.

One recent thing I just found is a view that has about 8 source HTML files, all of which is quite complicated angular1 code. Then when the team was asked to have a slightly different button for an ADMIN logging in, they duplicated all the files and changed the button. Since then management had them add new features to the view (that would apply to admins and other users) and they basically coded up the changes requested in different ways in the admin/non-admin views.

Same stuff in the REST code - I don't really get it either - when you talk to the tech leads they are often very intelligent and totally get the criticisms. I think the problem is these outsourcing companies are hiring junior developers and teaching them just enough to write code to just barely get by the requirements. Literally every feature I go through in this code base its like I'm turning over a lovely cake to find worms inside.

I swear some projects are outsourced to a whole different universe, one where people haven’t yet figured out that copy/paste is not a good idea.

if you work with contractors long enough, you learn to write snippets that you expect will get copypasta'd everywhere.

the incentive for them is not to make something great, but to just pump out whatever "works" as quickly as possible.

> I swear the main thing you'll find in outsourced code is the inability to refactor or re-use code for similar features.

This is my experience too. Teams using modern OO languages, but not redoing common methods in every class. Thereby leading to the same bug needing to be fixed in 5 or 6 places.

Story of m'life right now

I was the only engineer at a not-tech-oriented NGO, so they had me on-site to check up on the team developing their app. At the end of December they had an initial app - I'm not a mobile dev, but it looked OK for an MVP. We showed it to leadership and everyone approved.

We then went on 2 weeks vacation. When I came back, I was surprised to hear the contract was nearly up - they had supposedly been working over our vacation. This app looked identical to the MVP we'd seen before. I was upset, but there wasn't much we could do. Also it turns out the app didn't look flashy enough for leadership. This was a major wake-up call for me - I messed up here by not critiquing the app or making clear work hours expectations - but also I discovered that demo-ing an app to a whole group leads to a lot of group-think. The criticism only comes later and then you are screwed.

Similarly, I was running a digital agency and the performance of one of my first employees took a nose dive. After trying everything I could think of to help him turn things around I had to let him go.

Shortly after, I got an Email from an unknown individual who said he knew the employee and asked if I could chat. Turns out, my employee was subbing out all of his work and stopped paying his sub, who then stopped delivering. The sub proved this to me by confirming some confidential information that he shouldn't have had access to.

After revealing that he had taken part in this scheme, the sub then asked me for a job! Needless to say I told him he wasn't a good fit.

Somewhat similarly, I once hired an employee who didn't have the skills we needed but said he was motivated to learn, seemed like a good fit from a personality standpoint, and had really great communication during the interview process.

We spent a year trying to bring him up to speed, waiting through all sorts of excuses, and worse, all of his communications were terrible (bad spelling, inability or unwillingness to use a spell checker, bad grammar). It was so bad that we eventually made him get any communications that went to clients (~30% of his job) be reviewed by a coworker before they were sent out.

At the last "PIP" meeting we had I asked him: "I went back and looked at all of the e-mails we exchanged during your interviewing, and they didn't have any spelling or grammar or punctuation problems. How did you do that?" "Oh, my wife wrote those."

"How did you do that?" "Oh, my wife wrote those.""

Haha yeah I have a similar one - I emailed a colleague once (on a Saturday) "hey, how are you on task xyz". He comes back to me less than an hour later "yeah my wife's almost done with it."

Oh wow. Yeah, there's a difference between helping and doing. Teach a man to fish...

Should have hired his wife from the start

That's exactly what I said to my other management team. :-(

Seems like he'd be a great fit. He knows what you're building, knows the codebase, and apparently works for less than you were paying for the same service before.

He didn't "take part in a scheme", he was tricked into it the same way you were. He should have been getting a real pay check and not just the cut your employee was giving him.

Well, he wasn't tricked. He knew that he was performing the entire work for a full-time employee, which violates that employee's contract. My employee propositioned him and he agreed to do it.

So, while his skills were great and agree that the cost would have been reasonable, the ethical choice to willingly access the confidential information of a full-time employee and prop up someone with far less technical ability made hiring him a no go.

That's slick. I can't say that I never thought about outsourcing work I was tasked with in the past as an intern. It was so tempting to pay someone and just watch youtube all day. (I didn't end up doing it)

I imagine there's a whole lot of that going on these days at companies who would never think to check for it.

I have one in the context of an academic lab. I was in the process of refactoring a project a coworker had left behind which was basically spaghetti code. Our lab had a collaboration with another lab, and that lab offered to extend the functionality of our code base for mutual gain. They assigned this project to a Ph.D. student who picked it up as part of their Ph.D. thesis. I hooked this researcher up on our Github and asked them to send me anything they had about their project (requirements, design, issues, desired interface blah blah) so I could understand their plan and prepare for the integration.

Fast forward 6 months and I still had not received anything. They also had not committed any code to the repo I had set them up with. I contacted them and said that it would be difficult for me to insure that our programs would interface correctly if I had no idea what the interface was supposed to look like or what their program was supposed to accomplish. She said she "was working on it". After several more months of not hearing anything and being under time pressure myself, I contacted her and demanded she upload her code to Github immediately. She refused, stating that this code was her personal property and that she was concerned I would "steal her IP". I lost it and sent her an email, CCing her adviser and my adviser, informing her that all her work was the property of her employer, and that if she didn't upload it I would contact our university's legal department and inform them that she intended to steal IP that was university property.

At this point her adviser called me and quietly informed me that the reason she hadn't uploaded anything was that she had nothing to upload. She had been struggling for over a year and had made 0 substantive progress on her project, lacked the programming and scientific knowledge to do what she wanted to do, and was faring very poorly as a researcher. She was subsequently rushed through their program and graduated in 3 years from a program that typically takes at least 6 years to complete.

The project never got finished.

She was faring poorly, so she was rushed through and graduated early? That doesn't seem very good, is it common in academia?!

Done to save face. Dropping her would reflect poorly on the lab as it's basically admitting failure to properly vet candidates and/or mentor. She also had industry political connections which made booting her difficult for economic blow back reasons.

Nuts. Where do you live, roughly? I'm just an undergrad but I don't think political or industry (well -- maybe industry) connections do much at Canadian universities.

Oh sweet summer child. Connections are everything everywhere.

Yes, failing PhDs get "pity degrees" all the time. I frankly loathe the practice.

And people wonder why trust in academia is being eroded...sad.

I've been on the other end of this a fair few times (hence the anonymous account).

The first time I was working on an app, most of our pair programming with a much more experienced dev. I needed to keep the job to keep my visa. When the more experienced developers quit I couldn't get anything done. I strung things out as long as possible but eventually people cottoned on to the fact that I wasn't productive.

The next time I had pushed really hard to get the job. "Fake it till you make it" they told me. I spent two months at the job and I didn't even manage to get the development environment set up. I used to hide in the toilets crying from the stress. I was let go at the end of my probation period.

I just wanted to let people know what it's like on the other side. Not everyone is some bad guy trying to screw you over. Sometimes it's just a normal guy trying to get by and not managing.

That's entirely your fault. If you had no idea what you were doing the correct play would be to raise your hand and ask for help. Find seniors that could help out. Stop pretending (lying) and start being a professional.

I've had a some outsourcing successes and failures.

In the first one, I got what I deserved. I underpaid developers from a poorer country who ended up being 'yes' men who continually checked in catastrophic, unmaintainable code for simple problems. It burned me over and over again but the rates were just so good it was hard to get off the sauce. We ended up paying for those savings many times over.

Another time I had the opposite problem. I paid premium prices for premium developers that required so much hand-holding and reassurance and clarification that I may as well have wrote it myself. I kept thinking that they'd get ramped up once they got used to our idioms and way of doing things but they never did.

Many years ago the startup I had co-founded outsourced a chunk of development work because an investor wanted us to - what was produced was pretty much "catastrophic, unmaintainable" code that took a few developers on our side to rework (probably rather more than it would have taken to write the code from scratch ).

What we did like about the code was that each developer in the offshore team had created an exception class based on their own name - so the application would report "There has been a XXX YYY Error" - where XXX YYY was the name of one of their developers.

[And after ~15 years I can still remember the relevant name for the first one of these I saw].

> each developer in the offshore team had created an exception class based on their own name

This is wonderful! Did they honor their work hierarchy, i.e. exceptions from junior developers will always extend exceptions from senior ones?

What! Why would an investor tell you to outsource development work? Cost?

Worked for a large government agency that outsourced their IT department. I was on a team that was asked to look at the RFP before it was put out. We flagged things like incentivizing the contractor for resolving issues.

Predictably, the contractor that got the work created as many tickets as possible for resolving any given thing.

Years later, the agency now has no IT competency and they pay a lot more for much less service than before. They also have a lot less flexibility in what they do. They almost have no choice but to keep rewarding the contractor for poor quality service.

It's been interesting watching a situation where things keep getting worse and worse because the agency is basically too big to fail and will probably never run out of money.

Tale from the other side, I used to run a Linux consultancy and we once had someone engage us to develop a custom Linux distribution. This guy's father was a patent attorney, and after spending significant time developing this distribution for him he couldn't pay because he had spent his budget on patenting it. But he needed some changes beyond the initial scope of work to get it to a viable product, so he was trying to get us to do more work while at the same time not paying his 6 month old invoices.

Probably the biggest "nightmare" we had was a local publisher, and this was back in around 2000, who wanted to put their magazines on the web. They were highly targeted "yellow pages" for tourist towns, so they really wanted to take their existing PDF artifacts that they send to the printer and make them available on the web as clickable hyperlinked things inside a web based viewer.

So we proposed making a proof of concept, we spent a few weeks working on splitting the multi-page PDF, making a viewer that would pre-cache pages, allow you to zoom and scroll, and defining the bounding boxes for some pages so that you could click and go to the homepage of the advert you were clicking on. We demoed it for them and they liked it, but they said they had decided to put that project on hold. I explicitly asked them if they were happy with what we had built and they said yes.

Around a year later I get a series of calls from them and from a new web development shop they have hired, saying that they wanted a refund because the work we did "our new consultant says they could have done in 10 minutes". My feeling from the conversations I had with them at this point was that the new developer was going to get paid out of the money they got back from us.

I don't remember what our final resolution was, we always worked very hard to make our clients happy. We really didn't like that they had said they were happy with what we had done, then a year later some third party called us telling us our work was crap and we should give a refund. And the whole "We could have done it in 10 minutes" was not a very good tactic, it just pissed us off.

I've been on the other side of that argument. In my case, a client had spent $50,000 on a pretty plain static brochure website. They're not tech-savvy, so they wanted to move to a CMS they could manage on their own.

When I told them it'd be $2,500 to put their existing site into a new WordPress site, they thought I was joking. That was the day that I realized value pricing is a real thing.

In your situation (with money already in hand), I probably would've just told them "Then pay them 0.25 my hourly rate to cover their 10 minutes of work with a 50% bonus. Why are you wasting your time calling me?"

u "Should be able to do all this for about $2,500"

dem "really? You must be joking"

u "hehe, yea I have a funny sense of humor. I meant $25 thousand, not 25 hundred, har har"

dem "oh ok, heres your money"

u "thank you"

Just so you know I was being serious.

Out of the same league, where "If it costs nothing, it can not be worth much":

Me working for a large multinational: I would like to support this OpenSource project that we regularly use, can we donate some money?

Boss: OpenSource? NO WAY. We're not commies.

Me: I would like to buy 100 CD's with software to distribute among my colleagues since it will give them the change to learn about some really cool security tools, all installed on a bootable linux live CD.

Boss: 10k Only? GO FOR IT!

That same night, we spend burning 100 CD's and printing 100 labels.

And that, dear readers, was a (really small) push into the development of Auditor, the Linux Penetration Testing Distro. we all learned to love (Hi Max!).

I was having a conversation with someone I vaguely knew about their startup and what they were trying to get developed. He told me about his challenges and deadlines, and how hard it was to find a good development agency overseas.

I told him he should hire me to get it done, but naturally like most guys like this, he was blown away by my San Francisco rate.

He put a finger in my face and asked why would he hire me when he could hire an agency from Russia or Pakistan for a fraction of the cost? No thanks, he said. No thanks.

After a long time I asked a mutual acquaintance whatever became of this guy and his startup. He told me that guy was a bit of a lunatic, but had eventually spent about $250k with some local agency and ended up with a broken product that did not do what he asked, he had got a refund for $100k but was suing to get the other $150k back. Don’t know if he ever did get it.

Not my ass on the line and not a major burn, but still: I got an email many years ago from a guy who said essentially 'I got your email address from <guy we both know>, are you interested in picking up some side work and if so, can we meet'. I say okay and when we meet, he explains that they had this SaaS idea (an industry-specific collaboration/data sharing tool essentially; this company did other work in this industry, they weren't a software shop but saw an opportunity and wanted to branch out) and they contracted it out to a largish 'web agency' as that was called back then in the area. They had delivered a mostly working product, developed using their own 'framework' (as everybody and their dog has).

But now of course it needed maintenance as well as some additional features (software of course is never done). That web agency had said though 'well these small contracts aren't really worth our time - we delivered what you asked, if you want small work on top of it, we have to charge you ridiculous rates'. So now this guy was looking for someone who could do some occasional work on it every few weeks, for a (for that time) complex web application, written in an undocumented proprietary framework. Yeah good luck with that, I politely declined, after explaining the situation - from the look on the guy's face, he only then and there fully realized the position this 'web agency' had put him in.

Heard from the guy we both knew months later that they were still looking, and after a year or two the product disappeared from their website. Not sure if it was the tech that took it under, but I never quite understand how companies think they can completely outsource the whole workings of a product they intend to offer, without even having someone on their own team who understands that product.

>I never quite understand how companies think they can completely outsource the whole workings of a product they intend to offer, without even having someone on their own team who understands that product.

Happens all the time with embedded systems.

I have seen permutations of this scenario multiple times. I have some sympathy for organizations in this situation, but it is entirely self-inflicted.

Sadly I have a similar background; data analytic company where the entirety of the MVP was built and maintained by a two person shop in Detroit. Our company had become so dependent that when the initial contract was up, they wanted a renewal of $1mil... and we gave it to them...

On the bright side, I learned a lot about building and working on RESTful APIs during the re-negotiation period where I might become the new developer

At one point, a lot of my consulting business was figuring out code like that, that others have written.

We have a term for it. We call it code refurbishment!

This is some truly perverse kind of land and expand.

Yep, had this a few times in the past 25 years. I am good at working remotely with people, but it taught me that, before trusting, I have to sit with people through a few sprints. It is hard to fake who is doing the work if you go in hard and work with the team for a few weeks. Not many (including very, very large shops) have the resources to fake that (note that you need ‘evil’ agents who are also good at what they do in software dev and in my world that seldom mixes); it will be easy to detect if they drop the ball after. Since taking this approach I have had only solid outsourcing experiences. But yes, lost a lot of credit & money before that realisation.

I was an intern when this happened, but yeah.

We were working on a program to manage a piece of industrial hardware, and the hardware was a handheld device. The contractor hired to build out the firmware put something like 16 people working 60 hour weeks on this. For about 12 weeks, they toiled away, and then we decided that they should join our demos and demo what they had.

Well, it was incredibly bad. They had basically just created some Qt templates. They had very little, if any, code written under the covers. The logic just wasn't there, but the interface was at least nice. It was pretty clear these guys had no idea what they were doing. Our director of development were all over these guys every day for weeks after that.

Eventually my internship ended, but I heard that they ultimately decided to drop the contractor and hire in house for it, and it eventually got released about 4 or 5 years after I left there.

$80K? That's peanuts. Government projects that are outsourced run in the 10's or in some rare cases even 100's of millions of $/E/YourFavoriteCurrency and get cancelled because of non-delivery with alarming regularity.

I see a lot of outsourcing deals in my daily practice, 70% or so ends well, 20% ends with a lot of friction and 10% or so fails utterly leaving the contractor with a damaged reputation and the contracting party out a lot of money. It's not rare to see these end up in court.

You really need to do research on any company that you want to outsource part of your development work to. Talk to their other customers, get to know the people in the team that will do the actual work, in other words: do your homework.

If you don't you're going to end up in trouble, more or less guaranteed.

>$80K? That's peanuts. Government projects that are outsourced run in the 10's or in some rare cases even 100's of millions of $/E/YourFavoriteCurrency and get cancelled because of non-delivery with alarming regularity.

Right. I'm not an expert in the study of this [1], but even just as a regular dev (and sometime manager or team leader, with some training and experience in software engineering techniques, including successful application of such techniques in real projects), I take an interest in this, and have come across multiple such cases in just reading the tech news - magazines, web sites, etc.

A couple of related links:



There are ways to overcome these failures, or rather prevent them, but they require disciplined use of techniques, from top to bottom of the team, which is not very common, for various reasons, either lack of knowledge of the techniques at all, disbelief that they are effective (if done right), or lack of political will to implement them, or penny-wise-pound-foolish mentality.

[1] There are people who are:


Quotes (from the above Wikipedia article):

"High-quality software is not expensive. High-quality software is faster and cheaper to build and maintain than low-quality software, from initial development all the way through total cost of ownership."

> High-quality software is not expensive. High-quality software is faster and cheaper to build and maintain than low-quality software, from initial development all the way through total cost of ownership.

That would be hilarious if it weren't the truth. But nobody actually wants to take the time to do it right so they end up doing it wrong and then taking a multiple of the time anyway.

Ha, you explained it better than the quote did. And worse is that often they repeat the same mistake in the next project, and the ...

> My friend's first startup took a dive after spending $80,000 to work with a local development company. It turned out the development firm was just a front to outsource all of the work overseas and take a big cut.

What I get from this story is your friend raised an inadequate amount of money to build a company that required a technical background that he/she didn't possess, though should have.

80k over 5 months is 16k a month, which should get you roughly one qualified engineer. Unless the project was very simple, 5 months isn't a lot of time. Maybe they didn't understand what was possible within that time-frame / budget?

There's nothing wrong with outsourcing. I'm outside of the US (though from there) and companies outsource to me -- not because I'm cheap, but because there aren't that many people who do the specialized work that I do, in any country.

On the other side of it, most work that gets done for startups is relatively simple. There are plenty of competent engineers all over the world that can do the work.

> It turned out the development firm was just a front to outsource all of the work overseas and take a big cut.

Turns out Apple outsources all of their manufacturing to China and takes a big cut. Maybe I should start buying only `Made in the USA` (or wherever you're from) computers?

16k a month can get you a mid level + an intern, or one senior with some cash depending on where in the US you go. It also gets you about 20 guys in India with a PM in the states.

I can guess which way they went..

Company I work for was recently acquired. Day 1: Everybody except the Sales team is on 90-days notice. This included the software development team. They have a whole process in place, with a catchy name: "Lift & Shift." During the next 90 days, they are doing "knowledge transfer" with their team, and I checked out individuals on github. Bangladesh, rural Russia, Vietnam, and Isreal, just to name a few of the various publicly stated locations. Does that count as Outsourcing?

I understand that most major purchases have guidelines and ways to protect consumers but I just can't imagine spending 80k on something and not consistently demanding to see progress toward an end goal.

When I was consulting I had a build pipeline to production up as my #1 task. Doing this kept me honest and prevented a month of "go to production" issues at the tail end of the project from surfacing but far more importantly was building trust with my clients. They could see what was happening all the time and if something was going off track we could correct it quickly.

"When I was consulting I had a build pipeline to production up as my #1 task."

I used to cost that out as a separate item on my offers, but half of the time people would balk at paying for such things. No amount of explaining how it's better for all parties could convince some people. Now, that sort of prospect was someone you don't want as a customer anyway, but in the beginning you want to convert every prospect...

> not consistently demanding to see progress toward an end goal.

This should be true for any project of any kind for any amount of money. Building a house, writing code, digging a hole in the ground.

So I'm working on a project, within a product company, where 3 of the main components were written by an outsourcing company. From time to time I had to solve support tickets for those components.

Now I use this C# code I found there as "do-not"s. Let me give you few examples: classes with 24000 (yeah, 24 thousands) lines. Tens of classes in the same file. Methods with hundreds of lines. Switches in switch in while in while(true). Operations (push and pop) on same queue from different threads and lot of commented code with synchronizing logic which shows they just didn't understand how threads can share a bloody queue object. Copy-paste of logic because why do you have classes. Use statics, you dumb. And the most evil thing, the best and worst example is a class which uses an array[] with fixed size but behaves like a List with dynamic size. No generics. No use of .net classes.

I can't imagine how those projects were signed by the main architect while he asks, during usual code reviews, for nitpicks: change the name, move the property upper with a line, etc.

I think the time and money spent to fix various things within those componentes could have been greatly reduced if not that messy haywire code.

I'm sorry but if your friend spent $80k on a development company and didn't do enough due dil to ensure that the company he was spending all of that money with wasn't outsourcing it - that's on him.

There are a dozen basic things he could have done in order to ensure that he wasn't stiffed. Off the top of my head:

- Visiting the offices meeting the team, including those people specifically assigned to his project

- Requesting staged payments so he pays as phases are met and not prior to receiving any deliverables

- Checking the contract to ensure there's no mention of outsourcing. Did he even check the contract at all?

- Getting references from former customers to ensure the validity of any claims made by the development firm

- Searching online for feedback and reviews about the firm

- Just asking questions in general. "Where is my app going to be developed and who by?" seems like an obvious one before you spend nearly a hundred thousand dollars

Edit: Looking at your post history you seem to be associated with a software development company. Did you not speak with your friend about his decision to spend an extraordinary amount on a development project ahead of him getting in this mess?

This was well before I worked here. We were still college students at the time and he actually received a seed round of investment from a young angel-firm.

They were the ones who advised he worked with said company, so he thought they knew what they were talking about. Long story short, a partner was friends with the owner of this 'development firm' that ultimately created this mess.

Just another example of how bad advice and bad investors can kill your startup before it even gets started.

I try to work very closely with my contractors for this reason.

If I dont see results or competence I bail before its too late.

I think the lesson for your friend is that they need technical people with ownership in the business. If your primary use is your App, you should be your own expert.

IMO: Be a full stack developer at least once in your life. Maybe twice.

Not like that but I worked for a company and we were low on staff, one by one, each programmer quit without getting reinforcements even though this was stated many times. It wasn't until myself resigned, the last programmer on this particular project, that the people in charge woke up and hired several guys from another country less than 1 month before my last day at the company.

I got told to train them in the application but how far can you get in like 2 weeks with a remote team, really? They seemed very competent however, so maybe not really a horror story but the whole thing was totally unnecessary because if we had gotten reinforcements when asked for it, maybe not everyone would've resigned.

Alternate story: leadership wanted to switch to outsourcing the work. Created a poor experience for everyone and let the devs quit on their own. You were the last one out, so they ask you to train their new team.

why would management sabotage company like that? I think in USA it is pretty easy to lay off people.

Sounds to me like management knew exactly what they were doing...

I've had lousy outsourcing experiences and I've had good ones. The best outsourcing experience I've had involved a very technically adept CTO, some solid pre-thinking about architecture and scalability, and (most importantly) an API-first, Microservices first mindset. This meant we could write API specs and test cases, define max-execution times and then hand the problem to the freelancer and let them figure out the solution. Of course we did a few other things right: Good onboarding, an open Slack, excessive communication / code review / feedback for the first few weeks. We also lucked in to finding a couple of great Ukrainian developers just at the time the Ukrainian currency took a nosedive, so we were getting $50/hr engineers for $30/hr rates. (Final thought - I went to try and poach one of the freelancers a year or two later - His rate had roughly tripled as a result of having gotten all the good experience working on a 'modern' app stack (React + Express + AWS Lambda + Microservices architecture).

I've done a lot of work for clients, most of the work I get is cleaning up after incompetent outsourced (overseas) developers. I know there are competent developers overseas, but a lot of companies go for the low bidder and get burned, then have to spend twice the amount (or more) than they would have if they'd just done it right the first time.

If you hire a team to get the job done:

1. Make sure you do a bit of research: talk to past clients, meet with the team... 2. Trust your gut feeling when it comes to the team lead. Ultimately, the team will only be as good as their leaders.

More importantly, if you're an early stage startup you should probably NOT hire an external team (and that's coming from a consultant).

Find a technical co-founder and go through the grind of building it on your own.

We are a small Design + Dev shop in NYC. We charge around $30k to build an MVP. One recent client said she found an outsource company who can build her site / web app for $1k. Im like ok so you don't like the work? whats the problem. Our rate is $125/hr PP. I told you that from the get-go. She said, no but i paid $30k for a site / web app and i see a bunch of other companies paid way less. Im like you drive a range rover ( top of the line) Why don't you goto range rover and say to them, I can find an indian company to build me a range rover and why the F*%K should i pay $150k+ for yours? See what they say and that is my answer. It seems to be the case its hard for "some" customers / people to understand the value of what you are offering. That is why you cannot compete on PRICE. Inevitably these people with an idea want to build an app or have an idea ( its like a disease here in NYC) and have NO CONCEPT or CLUE and when they goto upwork ( name your third world provider here) they get ruined. So now off the jump i say to new customers / clients this is HOW MUCH we charge and you can go F#!K yo-self if you can't pay ( well not like that its in my mind, but you get what i mean) i keep it professional. I have changed my approach to getting customers. The first thing i do is explain that we do not outsource to 3rd world. We live and work here in NYC. This is what we charge so we can eat and if you do not value our work, no one is forcing you to work with us and you can go outsource your work to a 3rd world country ( outsource) and find out for yourself. After educating the client , they now want us to build new features AND even gave us another gig. We live in NYC where everyone is a gangsta. Ha ha! Real-talk.

I'd say: work for enterprise clients.

You get to learn how to build things at scale and they pay better. Startups and individuals always require way more education and ultimately want to squeeze every cent out of you.

You hit the nail on the head! exactly. not to mention the txt messages at midnight. lol

Damn, those rates seem low to be honest. I live in a way cheaper city and my firm's rate ranges from $155 to $225 an hour. USD

Yup they are. I work from home. We have no office. When i need to meet a client i get a Breather office. I never did it for the money. I need the project money to fund my start up. :-)

In my first job as a developer after a few months I removed a few kloc of messy code/configuration written by consultants and replaced it with a few hundred lines of easier-to-understand code in a more mainstream technology. No features lost.

I also got the libraries upgraded (they were waiting for months for a release for some support library that turned out to be unneccessary with newer releases of the main libraries.)

I don’t have a horror story, more of a caveat emptor tale:

When I was a freshman in college and learning iOS, I contracted out a developer team in Bangalore to write the backend software for an app I built, so that I could focus on the front end.

I had not taken a software engineering course by that point and had little experience writing clear and concise requirements, so that when the product was done it was missing key features that were necessary for the app to function but were not explicitly detailed in the contract.

I had to renegotiate for the missing features at an additional cost of $100. Granted, it was not a lot of money, but it was more than 50% above my original budget, and as a college student, that stung. Sometimes I still wonder if I was screwed intentionally.

Not much of a horror story but I hope my tale can serve as a lesson to others who may find themselves in the place I was then: learn the tech or be very very clear about your requirements before you sign a contract.

Applications are open for YC Summer 2019

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