Jump to content
Sign in to follow this  
TAdoo87

Planning of a programing project

Recommended Posts

Hey guys,

I would like to ask your help. I am going to start a project at my company. The coding project is not too small, so it will take me several weeks to finish it, but before I can start it, I have to create a financial plan.
Here comes the issue: I have a really hard time to estimate the time requirement of each task.
A little bit about my background: I am an engineer, and I didn't learn any serious programing, but I rather educated myself. I am familiar with the basics of project planing, and I am sure I am able to finish the project.
If you guys could give me any hint how to estimate the time requirement of the programing tasks, that would be greate. 

Any help is appreciated.

Share this post


Link to post
Share on other sites

I always write pseudocode first, then the comments for each specific piece, and then the final code. It really helps with planning things out, although I don't think there's a good way to tell how much time writing each function will take.

If you can break it down into a series of simple tasks, then you can probably get a decent ballpark estimate of how many days it will take. YMMV.

Share this post


Link to post
Share on other sites

I suck at time planning, but from my experience this will always happen when you try to plan something:

  • Your boss/responsable/coworker will need help or whatever and you need to stop what you are doing
  • The phone starts ringing
  • Client calls and you have to explain stuff you would rather not explain or explain when you're done
  • Client/coworker/commercial department will spam you with emails asking when your're done

Therefore, no matter what you will estimate for your time consumption, add a good 10% for all this stuff. If you're lucky enough that this never happens then I quite envy you.

To try and give an estimate, take a previous simillar work you've done (even if it's smaller work) and check the timings,
ie: I wrote this program/function in Y hours and it's "this" complicated, I need to write roughly X amount of simillar functions, make it X+1 cause one I'll have to rewrite, Y*(X+1)*1.1= hours I need to finish the job. You get the reasoning

Also consider making a Gannt diagram to set your goals, I find it very useful when I start something, expecially if the goals depend on myself only and I do not have to rely on suppliers/clients for some steps.

 

BTW I'm also an engineer and this example refers to testing/prototyiping and product development

Share this post


Link to post
Share on other sites

Time estimating can be quite tricky.

I generally find it helps to think about how much you can get done in 4 hours. Assuming you work an 8 hour day, it's safe to say only half of that time will be spent being truly productive. The other half is going to be interfacing with other people, getting distracted, WABing and so on. This is not a problem if you can make those 4 hours of productivity count.

Once you know how much you can get done in a 4 hour period and have a decent breakdown of the tasks involved of you project you can begin estimating how much time each task will take and hence the project as a whole.

Don't forget to include time for the following cycle: QA/Test -> Fix bugs -> QA/Test -> Fix Bugs -> QA/Test -> Fix bugs

At least 3 rounds of QA/Fix are likely on any project, in some cases more may be required.

Also remember to include time for writing documentation and release management.

Finally, do not forget to include a fudge factor. This is basically safety net time that you don't technically need but will probably use due to real-life throwing a spanner in the works.

Share this post


Link to post
Share on other sites

This book is not bad. 

Software Estimation: Demystifying the Black Art (Developer Best Practices) https://www.amazon.com/dp/0735605351/ref=cm_sw_r_cp_api_1OrLxbJZRJ3K6

It mostly boils down to having experience with similar efforts. You can get much closer though with a solid, detailed requirements specification that is reviewed with the stakeholders. Then make sure to break it down into smaller and smaller tasks until everything is in about 4 hour chunks as @OOPMan suggested. Anything bigger than that, and chances are that you haven't really thought it through enough.

Once you're done and think you've really nailed it, multiply your estimate by 3. 

Share this post


Link to post
Share on other sites
18 hours ago, monjardin said:

You can get much closer though with a solid, detailed requirements specification that is reviewed with the stakeholders.

 

Bwhahahahah!  what a dream...detailed requirements that would be nice. I have done more 3-6 month projects where my requirements were 2 sentences. Hopefully where you work doesnt suck as bad as where I do.

Basically, what everyone else said, no one EVER leaves you along for any length of time. Leaving time for writing doc is critical do, often overlooked.

Share this post


Link to post
Share on other sites

@capt-jay: That is true in a lot of places unfortunately. However, those same places probably don't meet their deadlines. That's not a coincidence. 

Personally, I won't give an estimate without requirements. That usually involves writing the requirements myself and making the stakeholders sign off on it. 

Share this post


Link to post
Share on other sites

Thanks you guys for all the usefull advices!:wao:

On 2016. 07. 23. at 8:42 PM, Ollie Tabooger said:

I always write pseudocode first, then the comments for each specific piece, and then the final code. 

I have a very rough function structure already, I am going to base my financial plan on that. I will write the code as you mentioned above. 

 

On 2016. 07. 23. at 8:59 PM, Britzz said:

Also consider making a Gannt (*Gantt :doge:) diagram to set your goals

For this project it is not needed, because of its structure, but the Gantt charts are generally recommended by my company. GanttProject is an awsome free to use tool. (In case you didn't know about it.)

 

21 hours ago, OOPMan said:

Finally, do not forget to include a fudge factor.

I never forget it. Also: :gaytroll:

 

@monjardin The book looks cool. I am not sure I will use it for this stuff, but I saved it for latter.

 

@capt-jay One of my bosses once showed me a project request from a trusted customer. It was an email with a picture, and the text was like: "pls, solve this."

Thanks for all the input guys. Wotlabs never cease to amaze me.:awyeah:

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...