Two months ago, I joined a software development company. They have just assigned me my first big task that consist in overhauling all the front end of one of our Rails apps. The project is still in the design department, but I will start to work on it soon.
The problem is that management asked me the typical "when you will finish". The truth is that I have no idea. Writing the HTML and CSS is not really complicated, but the controllers are a mess and I expect to discover lots of problems.
In this two months I've seen quite a lot of peers sleeping under the desk - this is Japan - and this is something I am obviously not going to accept, so I want to make the risks clear before even starting.
This is what I thought I will write once I get the definitive design:
Project: Redesign of X app.
Scope of the project:
- Write all the templates of the new design using HAML language: X lines of
code affected.
- Write all the new stylesheets using X framework: X lines of code
affected.
- Refactor controllers and correct possible inconsistencies: X lines of
code possibly affected.
Description of tasks:
- Page 1: x hours est.
- Page 2: x hours est.
- Page 3: x hours est.
- Component 1: x hours est.
...
Total estimation of project duration: XXX hours.
Risks:
- This is the first time that we replace all the front end of the
application. All the estimations have been done without having a
real example to compare, but when we added Page5 and Page6 in the
Issue #xxxx, took x hours work. This is the metric I am using to predict
the duration of the tasks.
- I have detected some issues in the controllers' code that will necessarily
have to be addressed while performing this project. Other unknown issues
are expected to arise.
For this reason, I predict _high probability of deviations_ on the original
estimation that I think should be taken into account.
Appart from the awful grammar (feel free to edit), is there any other point that should be added to this document?
Also, this text just came out of my head, but I am sure that there are methodologies that are already being used in other companies. Is there an standard way to communicate estimations?