11 Replies - 896 Views - Last Post: 05 December 2011 - 11:56 PM

#1 fromTheSprawl  Icon User is offline

  • Monomania
  • member icon

Reputation: 513
  • View blog
  • Posts: 2,056
  • Joined: 28-December 10

Estimates

Posted 05 December 2011 - 05:15 PM

Hi all. I was wondering how you do estimates for programming/projects/anything. When I was asked the first time I was like "shouldn't you be doing it?"
Is this taught at school?
Tips? Help?
Is This A Good Question/Topic? 0
  • +

Replies To: Estimates

#2 dorknexus  Icon User is offline

  • or something bad...real bad.
  • member icon

Reputation: 1255
  • View blog
  • Posts: 4,618
  • Joined: 02-May 04

Re: Estimates

Posted 05 December 2011 - 05:26 PM

calculate how many hours you suspect it will take and multiply that by your hourly rate?
Was This Post Helpful? 0
  • +
  • -

#3 fromTheSprawl  Icon User is offline

  • Monomania
  • member icon

Reputation: 513
  • View blog
  • Posts: 2,056
  • Joined: 28-December 10

Re: Estimates

Posted 05 December 2011 - 05:45 PM

Hourly rate? What? Well, if I know I could do it somewhat within 5 minutes should I say I could do it by 1 hour? I was told that I could even say a week. I'm clueless about these types of things.

Example scenarios:

- Existing system, unfamiliar to you, new module needed
- New system, technology unfamiliar to you
- Existing system, unfamiliar to you, minor change needed

Then you have to factor in how big or small the system is.
Was This Post Helpful? 0
  • +
  • -

#4 dorknexus  Icon User is offline

  • or something bad...real bad.
  • member icon

Reputation: 1255
  • View blog
  • Posts: 4,618
  • Joined: 02-May 04

Re: Estimates

Posted 05 December 2011 - 06:02 PM

If you think you can produce the product within one hour than charge them for one hour of labor. If you think it's going to take you 50 hours then charge them for 50 hours of labor. There isn't some science to coming up with cost estimates. although there are systems out there to help you make more accurate estimates based on your previous performance.

just try to take into consideration all of the work and tasking required to fulfill the customers requirements. those time estimates are solely up to the individual fulfilling requirements. what takes one developer 20 hours might take another developer 5 hours.

part of coming up with an accurate time and cost estimate is to extract clear and complete requirements from your customer. once you know what the requirements are it should be easy to give an estimate.

Quote

Existing system, unfamiliar to you, new module needed
- New system, technology unfamiliar to you
- Existing system, unfamiliar to you, minor change needed


All of these are meaningless to me because it's incredibly vague. a minor change could mean 1 day of work or 2 weeks of work. just depends on the context. "unfamiliar to you" is also vague. HOW unfamiliar are you with that technology? is it going to take you 2 hours to learn or 70 hours?
Was This Post Helpful? 1
  • +
  • -

#5 tlhIn`toq  Icon User is offline

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5441
  • View blog
  • Posts: 11,673
  • Joined: 02-June 10

Re: Estimates

Posted 05 December 2011 - 06:04 PM

Be realistic and grow up.
You can't do a project in 5 minutes and there is nothing you can do in 5 minutes that someone is going to contract you for.

Projects you would get paid for are measured in days, weeks and dozens if not hundreds of hours.

Here's the advice I give all the newbies that ask this:

Go on vWorker or some other contract coder site.
Find a project that you think you can do. DON'T BID ON IT.
Just build it. Time everything you do.

Now do it again with another project.

When you have 10 different projects under you belt you can begin to recognize how long it takes to build an application.

Now that it takes you 40hrs to do x, or 80 hours to do y -
How much do you need to earn per week?
Was This Post Helpful? 3
  • +
  • -

#6 fromTheSprawl  Icon User is offline

  • Monomania
  • member icon

Reputation: 513
  • View blog
  • Posts: 2,056
  • Joined: 28-December 10

Re: Estimates

Posted 05 December 2011 - 06:15 PM

Technology unfamiliar, for example you were asked to do an e-commerce website with the Spring Framework even though you know nothing about it.
I guess I should do more to learn more so that I could say when I could finish something.

5 minutes for a minor change in the system like a validation that slipped. What if there is a detailed work plan but you were not asked if it is possible for you to do it in that time frame?
Was This Post Helpful? 0
  • +
  • -

#7 creativecoding  Icon User is offline

  • Hash != Encryption
  • member icon


Reputation: 926
  • View blog
  • Posts: 3,204
  • Joined: 19-January 10

Re: Estimates

Posted 05 December 2011 - 06:35 PM

I would advise you NEVER try something new you haven't learned on a project.

One of my clients requested the money must be in bitcoins using a specific system he used (he wanted to use that system, nothing else). Me being excited, accepted.

There were no documentation for this system. Luckily, it wasn't too confusing and ended up being some curl-type thing that sent post data to a page which processed all of the stuff. But this also left me in the dark. I had VERY little to go off of their dead support forums. A month or so later and I finally got it down to a science and figured it all out. Finished the project and turned it in and got a perfect 10. But still, that was dangerous and I will probably never try it again unless I'm certain I can complete it and understand everything they are asking first.

Spoiler




As for my own rates, I would never do something where I have to edit existing software. I just don't roll with that. I end up being put inside of some jumbled mess that's impossible to read, but hey, if you're good at that stuff by all means you can try. If it's just a site (which I rarely do, I suck at design), it'll be around $100 - $200 (granted they accept that I use Twitter's bootstrap css/html framework in my solution, otherwise I won't do it). Larger sites that require more operations and a database are around $400.


You gotta start small though. That bitcoin gambling site required a lot of my time and a lot of code, yet it was only for $85. And that was before vworker took a big, juicy bite out of it (however I can't complain, vworker's services are superb).


As for right now, the bid started out as a parsing engine which parses data and stores it in a database. My client mentioned something about wanting to turn it into a website and me being the nice person I am said that I'd do it for an extra $50 (putting the result at $450, a good price if you ask me). And this was after vworker implemented a new system where it calculated the cost and put that into the price, so I'm receiving the full $450 (if all goes as planned).


But what it really boils down to is how much time it'll take you, and how much time you think you're worth. Of course you can't just spew "I'm the best programmer ever! Hire me!" because you have no proof. Start out small and gain yourself some reputation (which is why using freelancing sites are great) until you can work on huge projects. And don't think all freelancing bids are small $20 homework scripts, cause I've seen some rather large bids (including a $50,000-$100,000 one for an amazon clone, wanted to bid but I was rather frightened by the price).
Was This Post Helpful? 2
  • +
  • -

#8 fromTheSprawl  Icon User is offline

  • Monomania
  • member icon

Reputation: 513
  • View blog
  • Posts: 2,056
  • Joined: 28-December 10

Re: Estimates

Posted 05 December 2011 - 07:11 PM

I'm not on the freelancing side, but you've inspired me to become the best that I can be. That way, anything I'll face, I'll face bravely and come out a winner at the end. I'll build up rep too. ^^
Was This Post Helpful? 0
  • +
  • -

#9 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7578
  • View blog
  • Posts: 12,742
  • Joined: 19-March 11

Re: Estimates

Posted 05 December 2011 - 11:14 PM

Estimating is difficult - I wouldn't want to rely on my estimates for a living, to be honest.
But you can practice it, if you've got good record-keeping skills and you're honest with yourself. Follow tlhIn`toq's suggestion above, but start by breaking down the project into pieces, and try to estimate how long each piece will take. Write it all down, then start working on it. Repeat, and compare the estimate to the reality after you finish each one. Over time, you'll start to get good habits, and you'll get faster, and you'll also start to get a good feel for how long a thing takes.

You might want to start by making yourself a time clock, so you can keep track of how long it takes you to do a thing. If you're really clever, you'll make your second project a bug tracker/feature list, and you'll tie the one into the other, so you start to automate your record keeping. Clock in, work on a feature until you finish the feature, clock out, repeat.

Don't be afraid to reinvent wheels, don't drop projects, schedule your working time, and schedule time away from the computer. Try to write a reasonably detailed requirements spec for everything you build, so you know when you're done.
Was This Post Helpful? 1
  • +
  • -

#10 DimitriV  Icon User is offline

  • They don't think it be like it is, but it do
  • member icon

Reputation: 583
  • View blog
  • Posts: 2,738
  • Joined: 24-July 11

Re: Estimates

Posted 05 December 2011 - 11:22 PM

You need to be honest with yourself. Prioritize. Allocate more time to the projects you know have a higher priority. Make honest estimates (my mum makes me do this all the time) - she asks me "how long do you need for this" I say "45 minutes" and in 45 minutes I have the job done.
Was This Post Helpful? 0
  • +
  • -

#11 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7578
  • View blog
  • Posts: 12,742
  • Joined: 19-March 11

Re: Estimates

Posted 05 December 2011 - 11:52 PM

Quote

Allocate more time to the projects you know have a higher priority.


I like this - "Boss, this five minute job is really important, so I'm going to take two hours on it. See you after lunch... I mean, when I'm done."

This actually happens all the time, but it's incorrect. In terms of maintenance, priority is a derived measurement, calculated from other factors, like severity and effort required. Severity is, basically, the time scale in which a fix is required. Think in terms of "emergency" (ie, right now), today, tomorrow, this week, next week, next month. Difficulty is measured in hours: is this a one-hour problem, an eight-hour problem, or what? Fold in any roadblocks (I need security approval to deploy this, and they take a week to get around to anything) and you can see that a low-severity ("this month") and low-difficulty (one hour) job might get higher priority than a higher-priority ("this week") and more difficult ("eight hour") job. If the former job has a week-long roadblock for security review, you should knock it out and put it in the queue for that review before you start in on the latter job, even though the latter job has a closer time frame and will take you longer.

In terms of development, the picture is different, of course, but similar factors apply. If I know that I'm going to need to pick one of three different libraries to accomplish a task, and that decision is due in a month, I need to start evaluating them now, even if it bumps tasks whose deadlines are nearer and which look like they're "higher-priority" right now. It's just as important that that decision be made a month from now as it is that this feature be implemented this week. Just because one is further off doesn't mean it can get put aside for another day - if you do, that day will never come, and you'll miss that milestone.
Was This Post Helpful? 1
  • +
  • -

#12 DimitriV  Icon User is offline

  • They don't think it be like it is, but it do
  • member icon

Reputation: 583
  • View blog
  • Posts: 2,738
  • Joined: 24-July 11

Re: Estimates

Posted 05 December 2011 - 11:56 PM

Well if you're pushed for time, sure.
But I meant in relation to like an assignment or essay where you have a few days or weeks.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1