In a web developer position when you are the only one to do everything, time estimation for a task may need considerations for some or all of the parameters below
Just my 2 cents, Just one way of thinking
There are many extra stuff that you may have to spend time on than actually implementing the task or function. The extra stuff may take more time than implementing actual task. Sometimes the extra tasks can take way more than the actual task. If the actual task is small or trivial but you need tospend time just to justify that the solution (also the feature/task) works with everything.
1. Any considerations for the Architecture? to cope up with the overall architecture of the application. time to adjust with.
2. Any considerations for the Security? if input boxes involved, how much security you want to provide? Do both front end and back end security involved
3. create the user interface [deal with CSS, deal with other stuff on the page or creating a new page]. think and make the interface usable [user friendly]
4. create the required change in the backend database. any considerations for efficiency, query performance
5. think the logic to solve the task at hand [may be think different ways to solve and pick one]
6. write the code
7. debug the code to see the code works as it is supposed to be still the output looks alright
8. testing. testing in multiple browsers. testing in multiple versions. testing in multiple resolutions. Testing for IE Quirk modes
9. testing for load, testing for efficiency
10. to justify does it work with everything else related?
11. does other related pages and functions work accordingly? after you have implemented the task. time required.
12. what about code optimization? do it before or after
13. what about better organizing the code. [the solution works; but if you reorganize the code, something may break; so some time may be required in worst cases to deal with]
14. what about debug as part of whitebox testing?
15. To check: Does it work in the test server? does it work in the integration server?
16. what about creating test cases and executing them [being more formal] [any documentation required or not?]
17. if the project is a big one, dealing with the project [keeping track of what is where, where you are placing what and why, and similar] [you need good memory or good skills to deal with]
18. is unit test code a part of the requirement? will take time…
Sometimes small tasks become big because of these extra considerations. However, without doing these extra stuff,it may be hard to say that the solution will work reasonably if not under all possible scenarios
Depending on the task, it may be possible to account for multiple levels of abstraction at the same time [writing the code while doing a good job in terms of design and architecture without thinking much on them [or spending much time on them]…but not always..]
You may maintain a list that does matter [required to deliver as part of your work] and assign time to each of the individual aspects. Sum them up and get the time estimation…
From: http://sitestree.com/?p=5339
Categories:Software Engineering
Tags:
Post Data:2011-10-20 08:30:23
Shop Online: https://www.ShopForSoul.com/
(Big Data, Cloud, Security, Machine Learning): Courses: http://Training.SitesTree.com
In Bengali: http://Bangla.SaLearningSchool.com
http://SitesTree.com
8112223 Canada Inc./JustEtc: http://JustEtc.net (Software/Web/Mobile/Big-Data/Machine Learning)
Shop Online: https://www.ShopForSoul.com/
Medium: https://medium.com/@SayedAhmedCanada