Many people frequently compare software development to real estate development. There are a few shared terms between software and construction: (a) architecture, (b) modeling, (c) building, etc. However, you can really hurt your understanding of programming timelines and process if you try to relate the two.
In construction, you have distinct jobs and processes that have a start date and an end date. E.g., I do not run any of the electrical or plumbing inside the home until I have the walls framed. Once I run the electrical and plumbing, there is very little or no work that needs to be done by the plumber or electrician contractor after that date.
There are blueprints that indicate all the specifications needed to complete the project. These specs rarely, if ever, change. Consequently, general contractors (GCs) can shop out a project to multiple sub contractors (subs) and then pick out the lowest or most reasonable bid. Inspectors evaluate every step of the build so a homeowner can be confident that their home will not fall on them while they are sleeping. There are slight differences between GCs, but for the most part you can know that you are getting a quality product.
If a remodel is needed once the house is complete, the electrician can generally continue where he left off. He does not need to rip out all of the existing wiring.
While a prospective homeowner will weigh a few options when choosing a GC, the major deciding factor for most homebuyers is the overall price. The final product (home) will be generally the same when compared between approved GCs if the blueprints are preselected.
Compare the construction process to writing a novel. If you asked five authors to write you a romance novel, the books would turn out significantly different. Even if you gave the authors a 15-page outline of what you wanted included in the book, the stories would not read similar at all.
If your goal was the create a best-selling romance novel, would you hire an author whose second language is English when you are distributing the book to an English-speaking country? If you wanted a best seller, would you hire a college intern author who has never published a book? If you wanted a romance novel, would you hire someone who has only published nonfiction business books?
You can assume that after you hired your author you would want frequent communication and reviews of what she is writing. You would expect that you will make changes every time she turns in a chapter for your review.
Keep the above situation in mind when you are hiring an engineer to build your application. Just because an offshore (ESL) author offers to write the novel [app] for $25/hr vs $125/hr from an experienced English speaking author, would you even consider the low price when you know he cannot meet your requirements? You are trying to create a best-selling novel! You're competing against great authors from across the nation. If your goal was big revenue, who would you bet on?
Consider the following timelines when you ask your author or engineer to make changes.
Q: How long would it take you to change the punctuation in a sentence?
A: a few seconds.
Q: How long would it take you to change the color of this font?
A: a few seconds.
Q: How long would it take you to rearrange the paragraphs on this page to make the flow better?
A: a few hours.
Q: How long would it take you to rearrange these input fields to make this form flow better?
A: a few hours.
Q: I had a college student author write the first 5 chapters of this book, how long will it take you to finish it?
A: Would you expect someone to estimate that request accurately for you? Could the new author even match the tone and rhythm of your previous author? Would it be easier to rewrite the first five chapters? Is the quality of writing equal to the new author?
Q: I found someone in India to write my application. He couldn't finish the app, but he said it is 80% done. He said there should be ~300 hours left to finish the application. Will you give me a fixed-price to finish the application?
A: Similarly you cannot expect a proper timeline estimate just like the above author.
Q: Now that the novel is finished, will you change the main character to be a male instead of female? How long will that take?
A: That will be really hard to estimate because I do not know how many times I used her/she instead of him/her. What about the social contexts or personality traits of that character throughout the book?
Q: Now that the app is finished, I would like to bill some people instead of it always being free. I would like a monthly-recurring plan for some users, but the people who have already signed up will be free. Additionally, I would like to track the number of characters they write in their posts and charge them $1 for every character above 140 characters. How long will that take? You said you made the accounts dynamic so it shouldn't be that long.
A: That will be really hard to estimate because I am going to have to review every controller method and determine whether or not it will need to have an filter before it. I will also need to write in logic to determine whether or not this user was included in the group of free users. Each post is now going to have logic to determine whether or not this post will be billed and how much it will be billed. I will also need to rewrite the models to include billing models, the controllers to handle the billing logic, and the views to show the credit card processing fields. Additionally, I will need to create new exceptions and notices for when an account isn't active or a payment did not go through. These changes will also need to be reflected in our API so the mobile app doesn't break. The mobile app will also need new views to handle the payments. Apple does not allow software purchases that aren't through their platform, so how do we handle that? We will need to write tests to ensure that these changes do not break the existing functionality. Etc., etc., etc.
If you are wanting to build a best-selling application, treat it like you would a best-selling novel. Hire the engineer or firm that you KNOW can get it done because even if you get 80% completed offshore, you might lose all of the time/money you have spent overseas when they cannot finish the app.
You will have changes that need to happen to your application, that's a good thing! Please just remember that your author (engineer) is trying to give you the best estimate possible. However, some estimates are just simply that, estimates.