Rather than write a book on it, I'll just offer a little advice: * Break your assignment down into smaller sub-tasks. Estimate each task as best as possible. * Add a task for planning (what you're doing now) and design. Estimate it. * If you don't already have one, add a task for "bringing it all together." Estimate it. * Add a task for testing and documentation. Your assignment may not require a lot of testing and documentation, but you should at least spend a little time on it. * Add up the task estimates to get an overall estimate. * Go ahead and double that total estimate (yep, times 2). This will give you: 1. Time finish things that you overlooked in your original task list 2. Time to finish things that you couldn't have known about until getting under way 3. Time to incorporate feedback from other people, and make changes 4. Time to get interrupted by other things going on around you, like meetings