"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.
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.