I was contacted this week by an old acquaintance, and he had a proposition for me.
"Hey, I hear you're a programmer! That's great, because my buddy and I have
this idea for a business. We have everything important figured out, and all we need is a programmer to throw
Good article, but I'd guess the reality is more like 25-50x as much work as non-technical people assume, and a good interface takes about 5x the work of everything else.
They don't merely underestimate the non-interface work, they greatly underestimate the interface work as well.
As a rough estimation, if you include everything (apperance, discussion, functionality, interaction with other controls, …) I would say that every single input field or button is about a day of work. And then you start to realise how many buttons there is in any GUI and how much it will cost.
That's an interesting way to start the estimation. My first thought was 'no way', but then I thought more about it and I agree more and more. I'd bet that you get a lot of push-back from people when you use that estimate, especially those who don't understand what goes on behind the scenes.
That doesn't mean it's wrong, just that it triggers people into a negative reaction.
I never had to use this estimate in front of a client, but if I had, I would decompose it first before giving the total estimate. If there is about 10 items to do per button, so 10 buttons would be a hundred complexe tasks. So let say that it take an hour per task, but since we are fast we can do 10 a day. So suddenly 10 working days, or said otherwise 2 weeks don't seems unrealistics for this apparently simple 10 buttons task.