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.
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.
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.
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.
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.
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 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 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.
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.
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.
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.
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.
Maybe it's not.