From time to time, especially at first job - there were usually questions - how long will it take to do that, approximately.

Then there are too options - to say shorter time so they will be happy at that moment and then fail to complete in that time.

Another option - say what you really think will take - then they say - its so long, need to do quicker, or this is so simple, how can it take so long.

But from what I seen in experience - it every time takes long to do something.

And also I am not experienced in evaluations of time, because they dont ask me to this too often, at first job they asked bit more often, but how can I be correctly evaluating if I am kind of forced to say short time :D

I found there exists even a book on this thing, but since I rarely have to evaluate, I did not finish it, because I did not see that much value, I can invest my time into something else.

But I need to find something to say, or otherwise I feel bad, I think that they think that I try to say long time so I could be lazy at doing things or something.

Sometimes it is possible to do something quicker at the cost of quality of code, which in long term again might be not so good because it will be harder to change something, but the time you get extra is not so big when comparing quality and spaghetti code.

Also when you do something - its good to think more - if I could do something bit different from what I am used to do earlier - to learn and see if this is better in reality.

So the main question is - what to say, what to think and not feel bad when they say its too long?

If I am that bad quality, why they are giving me such salary. Maybe when they say its so long - they mean the big expense, because of hourly salary. THey could reduce the salary. But also they cannot because some other company is offering ok salary. So its kind of like I have enough quality to earn my current salary.


Also forget to mention - sometimes there is something that might take infinite time to complete - when its not possible or would need to use different technology which we dont even use. For example there is some app with HTML5 canvas and javascript. It turns out that on slow machines it is not looking good, lot of lag. We know that javascript is not as optimal as java lets say on android phones. Also the best would be to use C++ which has biggest performance, but then again - user need to download and install and I am not even sure if it is possible to write with c++ for androids and iphones. So kind of like you might try optimize javascript, but but how can you say when you finish, if you dont even know if you will reach the desired goal - the performance with not lag on slow machines. So we are just doing, if the boss says that its enought to try, lets remove this feature for this device and use some replacement which would not be that awesome but would require less power of the machine.

So sometimes it is kind of like - you do until the boss allows you to do it. Not until it is finished with desired result. So making estimation maybe should include thing - max hours for that feature, no matter if there is desired result.

  • There's likely a question for this answered on Programmers.
    – Telastyn
    Jun 23 '14 at 16:04
  • How can a project take an infinite amount of time? A project that takes an infinite amount of time is a project that will never be completed and thus a failure. It sounds like you are going down the rabbit hole of "it wasn't written in ...". Javascript can be just as fast as Java. Most of the internet is written in Javascript and it does just fine.
    – Donald
    Jun 24 '14 at 12:51
  • Ramhound - take a javascript library box2dweb - you think it can achieve same performance as Java box2d version? I have almost no experience with it, but we thought this was the biggest issue. Or maybe the programmers who use it did not know how to optimize / did not have enough time or money recources. Jun 27 '14 at 6:25

What you need to do is keep detailed records to improve your estimation and provide detailed estimates when they say it will take too long.

When you say it will take 3 weeks and they say "That is simple, I think it should take a day," then you need to detail exactly what steps you will take and how long each will take. Don't forget to include meetings, testing, email communications, deployments, writing test cases and anything else that needs to be done besides straight dev. If you can't detail it this way, then maybe they are right.

To improve your own estimates, keep records of the orginal estimate, the revised estimate and the actual time. You may find you consistently estimate high (or low) compared to the actual time. Then you can start to adjust your estimates accordingly. If you have these kinds of records that show your estimate to be closed than the revised estimate, then you also have ammunition to use when they try to cut down the hours in a future project.

  • yeah, I also have heard that keeping records and then comparing - you might improve. I am not doing so because they dont say to do, and I thinked - keeping records and extra thinking when they dont ask - might be waste of time, but maybe it will not be that much time. Now my manager is on holidays for two weeks and I decided to keep records of how long I do tasks, because I remember that I usually forget when I finish task, because I dont care how long did it take, and then it was hard to explain what did I do. Now I will have a spreadsheet :) but I am not estimating currently. Jun 23 '14 at 15:33
  • btw its interesting why they are not asking detailed reasons what time each task took. I think they themselves would have a better understanding of why something takes this time and something does not. Soft developing is not main thiing in my company so maybe thats why, it just have 5 programmers to do apps for it. Jun 23 '14 at 15:36
  • one thing might be - that CEO might not understand if I put detailed, for example - to adjust this positioning in CSS took whole day :) he does not even understand CSS. I myself am also not strongest in it, because mostly I do php and javascript. So somebody who do css as main thing, most likely will do that much faster. Then he might say - this guy said he would have done this in 2 hours. Jun 23 '14 at 15:40
  • 1
    Speed Fanatic, you really should start a spreadsheet, where for every task of maybe 2 to 4 days you write down your estimate, and the actual time when you were finished. It is absolutely essential to do so. That way you can correct your estimates and get good estimates. And then make sure that you stick to your estimates and don't let anyone overrule them. You are measured not by what you do, but whether you meet your promises. If you promise a week and deliver in 8 days, you are a loser. If you promise two weeks and deliver in 8 days, you are a hero.
    – gnasher729
    Jun 23 '14 at 22:50
  • how detailed btw you think records should be ? my frien d says - not shorter than half day one should be. But I started using as short as half hour, not all of course, only those which I notice. Jun 27 '14 at 6:27

Not the answer you're looking for? Browse other questions tagged .