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.