Not sure if it should be in this category but still.
The question is simple How do you estimate the time a project would take from start to finish?
I’m sure everybody wonders about it when begins software development career and at some point figures it out for themselves(for example I have my own “sense” of what one or another feature might take to implement time vise, etc.). But I’d like to hear how thoughtbot does it. I know you guys don’t do “fixed-price” projects and prefer weekly/feature approach. But say for example you have an iOS(or Rails) project and the client is clear and positive on 4 features he/she wants to be implemented. At first you estimated a week of work per feature but later on while implementing the features and changing things according to client’s feedback a couple of them got so much away from what initially was expected that now it’s definitely going to take longer to implement them(say one feature became dependent on another or interconnected somehow or something of this sort).
How do you usually handle this situations? How do you communicate it to the client?
What I found the most difficult is just that - explaining the client that those “small tweaks” and changes that he wants to add with his weekly/daily feedback are going to move the deliverables deadline, sometimes unpredictably…
Would be happy to hear from the experts