"How long is a piece of string? It's impossible to answer that question. But, if I had to guess... in my experience, the string is 19 inches long."
This is the kind of thing a lot of consultants seem to post, including the anecdotes of clients going with the cheap guys and the project failing. At the end of the day, the OP's answer is no more convincing then the hypothetical "outsource to Pakistan for 1/10th the cost." I think it's a consequence of someone trying to "sell" to an inappropriate market. If you expect to pay $120 for a mattress, sitting you down and lecturing you on why you need a $1,200 mattress is unlikely to convince you. If you expect to pay $10 for a meal, a $100 restaurant will not be getting your business. This post is the chef hanging out with other chefs and restaurant people to have a chuckle at those lame tourists who expect to pay $10 for a meal. The problem is that you are dealing with people who don't go to restaurants. They're comparing eating out to things they do know about like buying food in a shop.
The reality is that pricing development is tricky. Getting an "app" developed if you know nothing about making software is tricky, even if you are willing to pay "well". A lot of projects fail. A lot of projects are not realistic to begin with. Cost, development time, quality, the definition of MVP, exactly how "bespoke" a project is, etc. all vary hugely. Quality is not always correlated to price. You can pay $60k for your MVP and have that die too. Developers will blame the clients and the clients will blame the developers.
In my experience, as a graphic designer, who has seen my type of work be outsourced (right in front of me) to some cheapo place overseas, I think it's best to just shut up and let the client do it.
Most of the time, they will get something back that is awful, and if they actually have an eye for quality, it'll make them better appreciate the work you do. You might even get some more work from them after they've satisfied their fantasies of cheap labor.
If they don't have an eye for quality, and they go with the garbage the outsource comes up with, then you probably didn't want them as a client in the first place.
This is a great policy. Sometimes a follow up at just the right time can really help too. Always be respectful, after all it's the client's choice, and be understanding that they are going to feel a bit embarrassed when the first results come back from the cheap place. Have a supporting story that lets them save face "I can see you're really a cost conscious guy, that usually correlates with a good sense of value too, while my stuff is a bit more expensive let me share with you what we do to make sure you will be satisfied ..."
The problem is that these clients have a particular budget. Perhaps they have $15,000 to spend. I tell them it's going to be $18,000. Someone else tells them they can do it for $7,000.
They go off and spend $7,000, then come to me because it wasn't done properly and say, "Unfortunately, it really didn't work out with these other guys - can you please, please help me out?" Now the problem is that they only have $8,000. Where before I might have been able to cut scope a bit to get down to $15,000; or perhaps they could have scrounged up another $3,000, they are now completely out of luck. And it sucks to see this happen to people.
On the other hand, sometimes people who charge less do a great job. As much as I'm not the cheapest person around, I'm also not nearly the most expensive, and I still do good work. To someone at the high-end, perhaps I'm one of those low-cost, risky alternatives, although I don't see it that way. The problem for the average client, though, is they generally lack the experience and understanding they need to properly evaluate all of their options.
Absolutely. It can go a long way to not be petty about it.
In these situations, I usually offer a normal bit of criticism, both positive and negative, and then let that be the end of it. Sometimes the client will come back, sometimes not.
Either way, you've preserved your relationship and they might well come back to you when they want to see some revisions down the road.
An experienced consultant - that is someone who is experienced in the technical area as well as experienced consulting in that area can fairly accurately estimate the amount of time a project will take. They can because they know how they work and know how to lead the process to match their workflow.
I've been in architecture for more than twenty years. I estimate how much and what resources will be required all the time. Nobody has been developing iOS apps that long, of course, and the iOS app industry doesn't go back to the days of Vitruvius. Reading the article, I am reminded of stories about the early days of building websites.
The issue is that if you are dealing with an inexperienced client, the project you are quoting for and the project another consultant is quoting for is not the same project, especially if it's an "MVP".
I like your comparison to website building during its early days. Gives us the benefit of hindsight. One consultant was going to take a html page from a previous project. Find and replace the client's colours in. Make 5 pages (home, about us, product catalogue..) and then wait 6 months for his client to fax over the "content."
Another consultant was going to use coldfusion to make a dynamically updating copyright notice, & contact form and use templates to make the site "ecommerce ready". He was going to hire a copywriter to work with the client. And (as an optional extra), do CSS.
"I've been in architecture for more than twenty years. I estimate how much and what resources will be required all the time. Nobody has been developing iOS apps that long"
I do not mean this as a personal attack or an insult aimed at you. Not at all. I've heard versions of this idea from others.
This is a really naive view of software engineering.
Recruiters are famous for firewall-ing good candidates because they think they don't qualify. The conversation goes something like this:
R: How much iOS experience do you have
C: Two years
R: Oh, our client requires three years
C: Sure, but I have 15 years of software development experience.
Most of it doing OO work on various platforms.
R: Well, sir, my client needs someone with three years experience in iOS, sorry.
I've had highly qualified friends not get jobs because of such ignorance. Whenever I've worked with recruiters I have made sure they understood my instruction to not filter-out anyone due to rigid metrics on the targeted platform. A good software engineers is far more than the "bling-bling" they happen to know about today.
I have been developing software and hardware for more than twenty years. iOS is just a new platform to work with. From the perspective of an experienced software engineer there really isn't anything particularly different, special or challenging about creating product for the platform. With such new landscapes it is down to learning the language and the API's and libraries available. Not a big deal. If you've been in this game long enough you've done that exact thing many times over.
In the case of an experienced software engineer, the idea that "Nobody has been developing iOS apps that long" somehow correlates to not being able to estimate time and costs is nonsense. Yes, one can draw from past experience and have a reasonable idea. And, yes, if you've been around, you probably resort to applying some multiplier to your estimate because, well, you've been there and you've seen what happens. And, yes (number three), you have to have invested some time (three to six months, that's it) to get into the new platform.
I've done quite a bit of building construction (tenant improvement and other major projects in commercial buildings). Estimating architectural projects can be far more accurate because in places like the US things are hugely standardized. Unless you are doing something way off the norm or run into snags everything is fairly well known and quantifiable. Foundation, framing, electrical, plumbing, low voltage wiring, A/C&Heating, drywall, stucco, paint, finish, install built-ins, flooring, etc. On the other hand, there are projects where you get hit with surprises that you could not have foreseen. I had the experience of doing a fairly large commercial TI project where we discovered that the soil had been contaminated with chemicals by the prior owner. It had to be removed properly and replaced with clean soil. Hundreds of truckloads of dirt were removed. This blew the budget right out to the moon.
Software is different in that, save language structures (if, for, while, switch, etc.) and patterns, everything can be different from project to project. And, of course, the other problem is that naive clients can inject features and functionality into a project that can easily double the amount of work required to complete it. Not to mention the lack of specs altogether.
It's like hiring an architect, pointing to a house down the street and saying "build me a house like that". Then, of course, no input or solid specs exist for anything inside or outside the house. This would be costly.
Or, even better, a client asking to build a house raised off the ground and supported by a single column, completely solar and wind powered. The client also does not want the solar panels to be visible from the ground or the wind generator's noise to be heard. The client also wants the house to rotate so that a room of his choosing faces the sunrise every day. They he scoffs at you for suggesting that this is going to cost more than doing a typical home design of average American specs. Oh, yes, he is happy to point out that he can hire an architect in Pakistan who will do the design for 1/10 of what it costs of doing a typical house design in the US.
I must have miscommunicated. I am not talking about estimating the cost of construction. I'm talking about estimating the amount of time required to deliver architectural services...and as an aside, while few lay people think they have expertise regarding iOS applications, most lay people think they have expertise when it comes to construction.
To disabuse anyone of a misunderstanding of architectural practice - people say "Build me something like that" all the time. And "that" is a photograph of a suburban house, and "something" is a 30,000 square foot animal shelter. Their brother Bob hung drywall when he was in college, and thinks it will cost $35 a square foot. Dunning and Kruger have demon spawn:
As for houses...well, $600 plans on the internet set expectations, and anyway, the contractor will provide the plans for free. The solar panels get added to the project during construction and I don't get a chance to hide them, I just show up on the site and there they are and the only reason I'm there is Solar Panel Pete sawzalled through six pre-engineered trusses, DIY homeowner/contractor failed the framing inspection, and she's due next month - they're expecting twins. It's why I charge for those services on an hourly basis.
Web servers use LAMP. iOS apps run Objective C. They have buttons and icons and fields. The parts are all standardized. The difference is that most software developers don't get thrown into the thick of the competitive consulting business right out of school. That's what the practice of architecture is - responding to RFP's (formal or informal). It's digging up and dealing with clients and contractors. 50 employees is a big architectural firm. Median size is probably 3.
Please. I am not dissing architecture. Not by a long-shot. I have been part of very large projects ($15 million dollars?) that involved such things as architectural work on a ten story commercial building as well as the design and installation of the technical infrastructure (server and other stuff). As the director of engineering of such projects I oversaw all of it and, yes, interfaced with architects and all of the trades involved. I have always been a very hands-on guy, so I get this stuff at the elemental level. For example, on one of these projects I jumped at the opportunity to improve my welding skills. A couple of us came in over a weekend and, armed with our MIG welders, welded-up the seismic sub-floor supports for the server racks. Hard work, but very rewarding.
Fundamentally architecture and software engineering can be very similar. The basics of both arts don't really change a whole lot. However, in software engineering, you can't possibly go ten years --maybe not even five these days-- without learning piles and piles of new stuff just to remain viable and competitive. If you've done this a few times you tend to get pretty good at adopting new frameworks and paradigms. That's why I said that, to an experienced software developer, something like iOS is just another platform.
Both arts do suffer from the same problem: naive clients. That will probably never change. I've had discussions with clients about to commit to a ten million dollar facility project who, as you said, expected to be able to do all the TI for $35 per square foot. Right.
The one advantage that you have is that there is no way to outsource huge chunks of your work. A client can't come up and say that they heard they can get the framing done in India for 1/10th. of the money. Yes, they can bring up this or that contractor, cousin, friend who can do it for half the money, but there are limits.
I just got done adding a new room to my house. I took the opportunity to teach my son about home remodeling and construction. Frankly, in the end, it probably cost me more than what a contractor would have charged me. This is particularly true if you consider opportunity cost. Of course, there was the ulterior motive of using it as an opportunity to educate. From that perspective alone it was worth it.
Kids are growing-up without knowing how to make things. Legos are neat, but they present an idealized version of making stuff. I find that whenever I talk to a client who has no experience building anything at all they tend to be the most unreasonable and clueless people. I always ask them what hobbies they have. If they are into woodworking, model airplanes, art or other hobbies where you experience the process of creating something from scratch I usually know I am going to be able to have a reasonable conversation with them.
Here's a true story: I was working on the layout of some racks over a custom computer floor. The investor's wife came into the room and was looking over my shoulder. After several questions she points at the AutoCAD printout and asks me why the holes under the racks were not larger. I explained that given the number of cables that had to enter this rack the holes were fine. We were only going to use 30% of the capacity --a 3x safety margin. The next day I get an irate call from the investor telling me that he was going to sue us if the holes were not large enough in the future. He was a friggin stock broker who'd never built a damn thing in his life.
What did we do? Of course, the holes became as large as the footprint of the racks. And, yes, I made him sign a piece of paper that exonerated us of any responsibility stemming from the lack of structural support due to the way they wanted us to cut-up the floor. Sometimes there are battles you just can't win, particularly when ignorance is involved.
Five years ago LEED was what they did on government buildings on the Left Coast. Ten years ago, people couldn't spell BIM. Fifteen years ago, there was still a debate about whether CAD was a fad. Twenty years ago, ADA was new. Twenty-five years ago Rapidiographs were replacing ruling pens and Kroy machines were replacing Leroy sets.
And that's just tools. The International Building Code changes every three years. So do NFPA standards - there's hundreds of them. Fail to keep up to date and I can get sued. Personally. There's no corporate protection for anything I seal. My ass is on the line. My house is on the line. My bank account is on the line. Please. I have to have a license because people may die if I fuck up. It's not just a fail whale.
Like I said I deal with the demon spawn - an owner using uncertified welders to install seismic components to save a few bucks isn't surprising. They see one little piece of the picture. Maybe he even outsourced the spec to the company doing it for free. Those specs probably didn't require a special inspection.
In life in general, you don't have to compromise as much as you think you do in most negotiations. Sometimes you just have to keep searching until you find the right person to negotiate with.
Consultants are empowered by having to redo another's work and sometimes they are convinced that their answer is the right answer for everyone and every project.
His quote does seem a bit high. In my experience (Rails and iOS developer) if your back end is mostly RESTful resources and a simple data structure, and your front end is standard iOS components like simple tableviews and a NavigationController, you can get an MVP done in the $5k-$10k range in a week or two.
HOWEVER: everybody has a different opinion of what is meant by "Minimum", "Viable", and "Product". $5k gets you only bog-standard UI components and a simple data model. Animations? Fancy graphics? Optimized performance? Search? Custom UI? Graceful error handling? Localization/Internationalization/Translation? Integrating with Facebook and dealing with their constant poorly-documented changes to their API? These tend to be little bullet points in the spec, but each on their own can take as much work as the MVP does.
With modern tools it's pretty easy to build a basic version of an app quite quickly. But it turns out that most people don't actually want a basic version. Often they have to see the basic version first to realize that, though.
So the question ends up being: how important is schedule/cost to you compared with details/performance?
To be honest, though, most people who come to me wanting a simple iOS app are better off with a mobile-optimized webapp instead. Much quicker to build, already cross-platform, and no deployment delays while waiting for App Store approval. Mobile apps might not be as sexy as a native app, but saving lots of money is also pretty sexy.
> His quote does seem a bit high. In my experience (Rails and iOS developer) ..., you can get an MVP done in the $5k-$10k range in a week or two.
That's because your experience is limited to development only. There's a lot more steps involved in making a successful app or a site. Brand identity, architecture, UX design (mockups/wireframes), and UI design are all steps that have to be done BEFORE development even starts. The cost of that can be 20-30K by itself.
There's also the cost of QA on different platforms, system analysis, professional copy, etc. So yeah, his quote is actually on a low end.
Too many people seem to think that they can get away with hiring a developer only.. then they wonder why their app/site doesn't do as well as they wanted it to.
Sure - although the amount of upfront work required varies with your definition of "Minimum" and "Viable".
I've done full-cycle apps with branding, architecture, UX, QA, promotion, etc. and yes they start at $30k - but they're finished polished products, while the discussion here seems to be about MVPs.
As I said above, the biggest conflicts I see between developers and clients are over the meanings of "Minimum" "Viable" and "Product".
Reading you comment reminds me of the costs vs. investment discussion. If the app will not make you any money it's probably an slightly expensive hobby. From a business perspective it makes a lot of sense to spend 100k USD if expect to earn it back tenfold. It's not about efficiency, but about effectiveness. It's about understanding the user goals and solve them in the best way possible. Not in the cheapest way possible.
Two developers working for 3 months feels more like 1.0 than MVP territory to me.
$60k is a lot of investment simply to test a concept, and would be a luxury out of the price range of most small businesses, let alone individual entrepreneurial subject matter experts who want to build a product - even really committed ones with money to spend.
Assuming you actually want to win the business, why not pitch a much smaller project to help them tease out some mockups and build 1 or 2 of the main application flows to MVP level?
This wins you the smaller engagement now with the likelihood of the bigger piece of work once the customer has been away and shown the concept to customers.
This is why I don't really like these $2k and $5k MVP packages that people are pitching on HN lately. Your iterations should start with mockups rather than an MVP.
I've tried it before...people don't simply want to pay for mockups and vendors don't want to waste time developing them for free (in the hope that they may win the business).
I think the OP rightfully addresses a deeper issue at stake here - "I have no vested interest in the outcomes of any of the projects and I wish them best of luck." Or perhaps more aptly put - stop trying to cater to these people, it's a waste of your time.
The world is full of people thinking that what people like Gates, Zuckerberg, etc. have accomplished is both simple and repeatable.
If you build an app for yourself you probably have the requirements and wireframes welded into your brain since it's likely being developed to solve a problem that you encounter on a daily basis such as managing your dotfiles between all of your VPS instances.
When you're developing something to solve a problem you could never even imagine having, say wardrobe management software for the wife of a senior politician you're probably going to need those wireframes.
> If you're willing to work more closely with your developers, and you're a cool person, you can skip wireframes altogether.
Totally agree, but it's so rare to find a client-agency relationship like that in the web dev space.
> Ever build an app for yourself? Did you wireframe it? I bet you didn't.
Yes, I have built an app for myself. I've definitely wireframed it. I usually go through a crapload of wireframes, HTML mockups, etc. It's incredibly difficult (for me) to just develop without at least a starting point either written or in my mind.
> Four weeks and $6,000? Sure, why not. IF I was shooting for a contract. Therein lies the key. I didn’t care what happened after each of those meetings. My plate is pretty full right now. My hunch is that the people who quoted much lower estimates and timeframes were shooting for the development work.
Apparently, OP is not particularly interested in getting the job. The point of this post isn't entirely clear to me.
> OP is not particularly interested in getting the job
It depends on what job you're referring to. A job that pays and keeps your profit margin and revenues consistent, or a job that could potentially end up costing you way more than you thought?
He's pointing out that many clients come to him with completely unrealistic views on developing, and yet are asking an expert (him) to advise him on how to properly develop something.
True. 3 months and two devs does sound like a pretty solid idea, beyond MVP. The problem could be on the client side who demands too much from a risky idea.
Exactly. While I'm sure there are apps that cost > 6 million (How much has Path spend sofar?), the "several orders of magnitude" seems highly overstated for an MVP.
It all depends on how honest of a person you are, and if you're willing to take advantage of someone who might not know or perhaps not care how much they are spending. If you have a bigger budget, sure you can do a lot more experimentation - pay others to do experimentation and thinking for you, that is - but if you are good at building relationships to feel out honest people, have some direction yourself and are good at communicating it, then you can come out on the lower end of costs.
How base works:
In base n, you have a number that looks like a list of digits
ex. abc. Let's notate that c = number[0], b = number[1], a = number[2].
Then the value of the number is the sum
value = 0;
for(i = 0; i < numberOfDigits; i++)
value += n^i + number[i];
Or, it looks like a(n^2) + b(n^1) + c*(n^0).
So, if you have a base less than 1, you get smaller as you go to the left.
Also, if you have a negative base, you change from adding to subtracting every digit. In a sort of "That'll take 2 years, minus 4 months, plus 2 weeks, minus 3 days" sort of way.
"Unfortunately, the developer used Phone Gap and when they needed to access more complicated native API’s in an upgrade, the developer couldn’t get past that barrier with the PhoneGap SDK"
The guy was not a good PhoneGap developer, you can write plugins to access any native API you need.
It's a nice bit of sophistry the writer uses to blame the developer rather than the company. If your MVP becomes something you want to build upon, a "VP," then you get some staff or something and get serious. It's not the MVP dev's job to be the future source of code. They did their job, the company just tried to be lazy about it.
Just to get an extra jab in, this propensity to find reasons to blame the little guy rather than the people who pay their invoices is a big part of what has earned these people the casual title of, "insultant."
As the legend goes, an MVP is not even a prototype, but an ad or a landing page that describes an idea to see if people respond and/or comment on it in a usable way. The prototype form of an MVP can certainly be thrown out in favor of a new codebase, and at any rate prototypes as a generic industrial concept are routinely built by independents, contractors and small firms before the manufacturing decisions have been made, before going to a larger concern to build the product as refined from the prototype. That is, prototypes are commonly used to generate funding for the actual product. Therefore I don't think being an MVP coder who can't or won't move on to the final building stage is anything to be ashamed of, and not anything to blame like this consultant does. Not only that, but a lot of product-stage coders are terrible at greenfielding.
How is an ad a minimum viable product? That's insane. You can't sell it - it's a marketing exercise, not a product. As a mechanism to get pre-orders, or gauge demand, maybe, but it's still not a product.
The point is that for something to be a fully-fledged product, it has to have certain features. They're expensive, so an MVP skips a lot of them in favor of getting a product up quickly. But you still have to add those features in later. They're usually not optional.
Hence, an MVP that you can't add those features to to is not an MVP - it's a prototype. You will get beaten in the market when someone else adds whatever your product is missing.
- if it will (or should) be thrown away at the end of development, it's a prototype. MVPs are not thrown away. Though from looking at wikipedia, even they confuse the two.
Hybrid apps are prtty decent, but fall apart as the complexity grows. I'm working on integrating custom native video players into a hybrid app. It's not hard to extend features to your javascript SDK, but there is overhead and complexity communicating and syncing state with your javascript runtime, where you'd prefer most of the code to be. Native apps with webviews sprinkled here and there are great, but when native code sits as a second class citizen to html/js (like phonegap), it's a nightmare.
I live in Uruguay, and I can definitely believe it can be made for a lot less than U$ 60.000 (for comparison, that's 3 years of my salary).
I actually have a quote from a local company called XSeed ( http://www.xseed.com.uy/ ) for an app for both Android and iOs, and it comes out for a third of the amount.
Yes, you can be burned if you don't know the locals, like the guys with the Egyptians, or the Pakistanis. That's why many companies here in Uruguay get the jobs - the ones that are responsible cost twice or three times as much as the cheap Egyptian, Indian, etc.. companies, but they deliver, while being vastly cheaper than US or European counterparts. The really good ones can charge very close to US prices (go globalization :) ).
You're right, I should have clarified that it's based on the article's premise of "two qualified engineers working full time ... and take about three months"
"At 12 weeks, that comes out to about $60,000"
That's what I'm talking about. I know that I can get two competent engineers working three months for far less, for example the company above.
This reminds me a lot of the discussions I was having 12 or 13 years ago about developing a website. "You want me to pay how much for a website?!?!? My cousin can do that for 1/10th of that you're quoting."
Today, the difference between the plain-old website market and the mobile market is that few people on the demand side of the mobile market have any frame of reference or experience. How many people have bought a mobile app, compared to the number of people who have built a reasonably sized website? My guess the difference is a few orders of magnitude, maybe more.
Beyond that, I think it is also the sign of an immature supply side. If you wanted a blog 12/13 years ago, you had to pay someone to make it. Now you get one for free with blogger or wordpress. If you want a decent ecomm solution, you don't have to role your own.
Eventually both sides will figure it out: the supply side will add niche/task specific tools [1], and the demand side will gain the experience sorting through the options. [2]
[1] We see this this with a few of the dumb "hey, add your RSS feed" options for mobile apps.
[2] Also, equally likely in my mind: the raw horsepower of mobile hardware will make skinny clients more of an option, disrupting the app economy in general.
Seems most comments are nitpicking some of the amounts and references he uses to make some of his points. This is what I read into it as a developer who has been in similar types of meetings:
1. Charge what you are worth not what the person who has the App idea wants to pay you which in some cases is next to nothing.
2. Pay no attention to people saying, "but my friend says can do it in 3 days". Tell the truth and if they can't accept the truth move on. There is no point in explaining to someone that the most sustainable way to lose weight and keep it off is years of eating well and exercise.
The problem with this discussion is that you could be talking about anything from a simple program that displays some content (e.g. for marketing purposes), to some basic social interaction, right up to a full-scale word processor or 3D modelling program.
The amount of time and effort required to build a product can differ by orders of magnitude depending on what that product is. So it's senseless to talk about "$X is an reasonable/unreasonable price to build an app" without any context about what it is you want built.
While there probably are bad developers in Pakistan, India, Egypt or Uruguay, I'm sure there's a huge cost asymmetry which should work out in those countries' favor, and by that I mean good developers over there (and here in Uruguay) that are earning a fraction of what an equivalent U.S. developer is making.
What they need is somebody that can filter the good ones from the chaff (knows the locals), AND has contacts and good standing among the buyers, AND has the project management skills to make the outsourced team deliver.
>good developers over there (and here in Uruguay) that are earning a fraction of what an equivalent U.S. developer is making.
As it turns out, people from India/Pakistan/Uruguay who are smart enough to build complex software systems are also smart enough to go on glassdoor, realize they are being fucked, and then come over here (or start charging higher rates). The only ones who keep charging 1/10th the cost are the ones who have to.
Moving to the US is not the smartest move if you have a much lower cost of living in your home country. Trying to charge the same as a local US developer, without considering familiarity, proximity, language, etc. isn't smart either.
Uruguay has a decent standard of living, so most of us don't want to move out, unless forced to by economic conditions.
It is extremely stressful to move to a foreign country where you won't speak the language correctly, you don't family and friends and the social and psychological safety net you're used to, and you don't know the local customs, AND you'll be a second-class person even if you do somehow manage to get legal papers (which are a huge source of stress in and of themselves).
That's why most people that do are either young people (more adaptable) or families under economic hardship.
In my case, my girlfriend won't consider moving to the U.S., and I won't consider moving without legal papers, which means a H1B visa for me, or moving to Canada and starting the long citizenship process.
That's why many smart people will accept lower wages in order to stay with their families and friends and environment.
I know firsthand what it means to emigrate, one of my brothers is living in the United Arab Emirates and tries to convince me to emigrate very often (I'd instantly double or triple my salary, plus the UAE are much cheaper than Uruguay), and I have family in Austria and Canada. All three countries are great (I like Austria the most, but I don't speak much German), but all of them represent all the challenges outlined above.
I would have thought all the smart people in India/China/where ever would go to the USA to get a first class education and then head back home to set up a company to service their US customers?
Software dev pricing is weird since it is so easy to grossly undercut yourself or overprice yourself by an entire order of magnitude.
I can certainly sympathise with people who have sent reasonable estimates and have received somewhat borderline insulting responses like "Wow, I could buy a used car for that!" or "That's nearly what my plumber charges!".
However in a certain sense I can't help but feel the industry has brought this upon itself. I remember ~2000 when websites were a new thing.
There were contractors around who would happily go in and quote very large sums of money for really very small amounts of (often very poor quality) work. Since the market had not really had a chance to self-adjust it's prices yet people would often just accept these costs without understanding what they were buying.
I remember a popular tactic being for designers to literally rip the HTML for a competitors website, switch the logos around and come back with a $10,000 bill.
So naturally the smart teenagers with a lot of free time to learn saw an opportunity to rebuild these websites better for the price of a few pizzas. This taught the market that costs could be significantly lower and also that the correlation between price and quality was very loose.
These kids also figured out the value of sharing code and ideas with each other, leading to a sort of open source renaissance.
Now that those teenagers have grown up and have to feed their families during a global recession those in developing nations are basically pulling the same trick on them that they had pulled back in the day.
You also have the added problem that there a sort of "iceberg" going on here. For example one can build an impressively featured website in around an hour simply by uploading one of the popular CMS and shopping cart systems to a shared webhost and copy pasting some content.
Of course, once you do such a thing you will get the familiar "this is great buy wouldn't it be ever greater if this drop down menu just sort of did this? I mean this entire thing took you an hour , so that change should take like 10 seconds right?" , "Well actually, I will need to develop a custom module to do X and then interface with Y so it's probably 4-8 hours depending.."
At that point it might be hard to convince a customer that you are not somehow trying to pull a fast one..
This article (and the comments here) remind me of something I read in Managing the Professional Service Firm by David Maister: whether you're hiring a lawyer, a car mechanic, or anything in between, you usually have little ability to asset their technical merits, so you have to choose based on other factors. That could be price, but it can also be things like reputation, responsiveness, patience & clarity in answering your questions, etc. Realize it's the same way when someone is thinking of hiring you. The article & these comments mostly focus on technical questions, and indeed if the tech is bad enough you have project failure. But if you're talking with technically un-savvy clients, you should help them realize you have more to offer than just a lower risk of botched tech, certainly more than just "better code." Particularly as a sole contractor, you can offer them a more personal relationship with wise guidance that they aren't going to get by hiring their cousin or the cheapest programmer they can find on elance.com.
I'm most surprised the MVP effort can be so consistently estimated. It might be that the pool of "apps" is extremely shallow, so they're just reimplemention #1231 of "XYZ" therefore estimation is simple based on extensive past experience reimplenting #1230, #1229, etc. "fart app #2935315" takes just as long to MVP as doggcatcher or evernote?
Also a major problem I've experienced is trying to force what I consider the technical requirements for a MVP past the non-technical people barrier, I didn't see that in the discussion, maybe it was assumed. For example, in my opinion, at least some minimal backup strategy is part of the MVP, whereas the non-technical types just reply "well, if THE hard drive crashes, we'll just sue the hosting provider, my buddy is a lawyer so he'll work cheap" or "if it blows up, you'll just work 36 hours straight on salary to fix it, right, so don't waste money/time preventing it from blowing up or adding debugging code or monitoring code, just work on features for the PR checkboxes".
These type of clients smell like deja vu to me and the post is a good light education for these kind of clients.
For people who get shocked at 60K for a full stack solution: go with the devs from [insert any outsourcing country here] or with the friend and keep a journal of how things went. I'd be damn curious to read it... (even though I already know the outcome).
For most iOS applications you don't necessarily need a designer and two developers. Trim the fat.
One developer is more than enough for most iOS applications that doesn't cross into games and physics.
You also don't need an "Mobile UX, UI, iOS designer expert" either. Just get a good developer that can do both, instead of mixing science with snake oil.
In the end, one guy to be the product owner, develop and design will be leaner, and far more better than involving more people.
Less that can do more in less time is normally more expensive. Seperating out areas into design, front end and back end development also splits your risk.
Not true at all. You tie your risk into multiple factors that can go wrong.
It's easier to replace one entity with another, than several parts.
Knowing the SDK and design elements beats a designer that only knows design.
And the API consumer would probably develop a better API than some guy who generally doesn't consume most of his API for a living. That being said, that assumes the front-end guy also knows back-end. Rare, but exists. points to self
I generally dislike "Mobile UX, UI, IOS Design expert" if they can't code their design. Either for Cocoa or (S)CSS CS/JS depending on platform.
Not necessarily. Yes, the comparative advantage of roles playing to their strengths can net you a lot of short-term gains, but you run a tremendous risk of getting stuck if one person quits or get hit by a bus, for example. Knowledge sharing via cross pollination of roles is a good risk mitigation strategy.
Yes but if you had it split into three experts for each area the chance of they all getting hit by a bus?
Also I think if you hire an expert in field x, there is a lot higher chance that their coding style and practice will be easier for another expert in field x to pick up. Ever seen a developers photoshop files :p
It's so true. I've been a freelance iOS developer for a year now and half of my contracts have been fixing amateur looking code of large consulting firms. Is this endemic of iOS work or all software development? My theory is that consulting firms have trouble hiring senior engineers because working for a consulting firm isn't "sexy".
60k might be a bit much... we can often get a mostly functional app off the ground for 30k. It just depends on specs.
Web MVPs (landing page with a signup form) can be done easily from anywhere between $200-1000. Yes, I realize there's stuff like unbounce, but even with those, they still take a couple hours to set up and properly split test. If you've never done this before, you can easily burn through that very quickly, and even if you have done this before, and you're valuing your time as any good founder should, then you're burning through that value allotment very quickly.
As for the foreign quotes, I've taken over plenty of jobs where it was started by a foreign firm for a tenth of the cost of what US firms charge... quality is usually terrible, and the reason I took over is because they couldn't get it finished. It's occasionally been so bad that we had to scrap their entire project within 6 months.
I've had a lot of these types of meetings. Everyone has an app idea. I'm always ears though because ideas have come to me that are very interesting. The noise to signal ratio though is pretty terrible.
It's always interesting to have them reference apps and designs that they think their app should end up looking like. Very quickly a general breakdown of things in regards to the app they are looking to build can follow. Even taking the approach of outsourcing and painting a picture of how that works.
A lot of times I've gone the route with at least doing the mockups of the pages with a little on how the UI will work. It's something that I know I'm selling that will be of value to them even if they choose not to have us continue on with the development and to just really boil down the idea and even more importantly what kinda of money and time it's going to take to develop the idea.
When we needed native Android and iOS versions of our app, we contracted it out to a couple Indian developers. We figured that the development was pretty straightforward - it was essentially a port of our mobile webpage that had some performance issues, so we had all the server-side endpoints and a working example to copy from.
Was their work output buggy? Sure. But they got it done at a reasonable speed and cheaply, and they fixed the bugs as we noticed them (and we were paying them to...). For us, being cash-strapped and needing apps just to say we have them, it was pretty OK. I think it worked for us because we didn't expect a perfect, polished app, and the requirements were well specified from the get-go.
In software there is a correlation between spending money and getting good quality work done. However - it's only a correlation.
Yes - some people get their nephew to build a modern, well coded, SEO-friendly and accessible, ajax-driven, e-commerce site for $800 but they probably just got lucky. A lot of nephews get out of their depth and never deliver.
And yes - some people spend a couple of million on the project with the same specs and get given a piece of crap in return. But on the whole - like good whiskey - the price tag is a good indicator of quality and a good way to reduce risk.
So - like many areas of enquiry - anecdotes aren't incredibly useful. If anyone has got any tips on finding the magic nephew, however, I'm all ears.
I have no tips on finding the magic nephew, but I can point you to plenty of software shops that will gladly burn a couple of million for you and give you a piece of crap in return. And maybe worst of all: they're not even deliberately trying to screw you.
The magic nephew may be rare, but my 25 years worth of anecdotal evidence suggests the latter example is quite common. And it's this experience that makes people very wary of spending a lot of money on software development.
To me, the key is right here:
"My hunch is that the people who quoted much lower estimates and timeframes were shooting for the development work."
Firms/individuals/groups that quote dirt cheap prices are probably either a) desperate for the work (which makes ya wonder why) and/or b) not caring about the work they do at all (therefore producing a sub par final product).
A big mission of my new startup matchist (http://matchist.com/talent) is to filter out these clients for freelance developers, so they only deal with those who aren't looking for 30 lbs in 30 days.
We're not 100% there yet but we're working damn hard at it.
Excellent metaphor, I like how this post explained simply difficult problem.
I can expand on it that I also ran into, like most of us, on similar comparisons and while I don't think it is wrong to seek help overseas, especially in places like India/Pakistan, I think that it is completely wrong to have clueless person seek help and then when they get burned, come back running to me and tell me about those bad, bad, people over there.
Like any human undertaking, projects need to be performed and delivered under certain constraints. Traditionally, these constraints have been listed as "scope," "time," and "cost".[1]
It's amazing how often I need to reiterate this to clients and potential clients.
Thinking about the title, I just kept thinking of Christian Bale losing 60 pounds in 4 months. If that took him 4 months, I don't know how you'd lose 30 pounds in 30 days (well in a health way). http://en.wikipedia.org/wiki/The_Machinist#Production
We deal with educating clients on the cost of apps and MVPS all the time at matchist. We get clients who have been burned and understand the value of not outsourcing overseas, yet I think there is still sticker shock at the costs associated with building exactly what you want. What do you think is the solution to this?
I make $48/hr at my fulltime job. I take an odd freelance job here and there and charge the same rate to my clients. Sure, I could charge more but I don't have a huge portfolio. So, he charges $125/hr and has 3 examples of clients whose previous devs failed. Must mean he's correct.
This is ridiculous, the Simpson-Bowles commission didn't come up with a recommendation:
"The Commission shall vote on the approval of a final report containing a set of recommendations to achieve the objectives set forth in the Charter no later than December 1, 2010. The issuance of a final report of the Commission shall require the approval of not less than 14 of the 18 members of the Commission."
This is the kind of thing a lot of consultants seem to post, including the anecdotes of clients going with the cheap guys and the project failing. At the end of the day, the OP's answer is no more convincing then the hypothetical "outsource to Pakistan for 1/10th the cost." I think it's a consequence of someone trying to "sell" to an inappropriate market. If you expect to pay $120 for a mattress, sitting you down and lecturing you on why you need a $1,200 mattress is unlikely to convince you. If you expect to pay $10 for a meal, a $100 restaurant will not be getting your business. This post is the chef hanging out with other chefs and restaurant people to have a chuckle at those lame tourists who expect to pay $10 for a meal. The problem is that you are dealing with people who don't go to restaurants. They're comparing eating out to things they do know about like buying food in a shop.
The reality is that pricing development is tricky. Getting an "app" developed if you know nothing about making software is tricky, even if you are willing to pay "well". A lot of projects fail. A lot of projects are not realistic to begin with. Cost, development time, quality, the definition of MVP, exactly how "bespoke" a project is, etc. all vary hugely. Quality is not always correlated to price. You can pay $60k for your MVP and have that die too. Developers will blame the clients and the clients will blame the developers.