Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am working in Linux Kernel area and my work includes: code study / Understanding Porting (say from one kernel version to another kernel version) Implementation of new kernel module / Device driver

How to do estimation in such Linux Kernel assignments? Is there any technique? How the community is doing?

share|improve this question

2 Answers 2

up vote 1 down vote accepted

There's no difference in the estimation techniques based on project types. Steve McConnell wrote a good book, Software Estimation: Demystifying the Black Art, that discusses not only estimation in general, but highlights estimation techniques and when each technique is most valuable.

If this is a project that you are working on as an individual, using your own historical data on how long it takes you to understand new code of a particular size in a given language or relating a current task to a different task that you know how long it would take using analogies or proxies would probably be the most effective. If it's a complicated task, decomposing it into smaller tasks and estimating those would be most appropriate.

Unfortunately, the best people to estimate are the people who will be doing the work. Aside from explaining different estimation techniques and their pros/cons, there's not much that anyone else can say. DeveloperDon's answer is based on a course and expected workload for a student, but I can say that different people have to put different amounts of time and effort - only you can determine what good analogies, proxies, or estimates would be based on what you know about yourself.

share|improve this answer

Joel Spolsky has written about the wide range of programmer productivity, so there could be a huge range in how much time it takes one person vs. another.

I know of a Linux kernel course that was taught at a university and it was split up to take two semesters. In theory, that is 6 credit hours. Courses generally involve one hour instruction per week per credit hour, so the lecture part of this course is 15 weeks * 3 hours = 45 * 2 semesters = 90 hours, with expected prep of perhaps three hours outside class per hour spent in class = 270 hours, for a total of 360 hours. This is a pretty gross estimate, but if you really wanted to learn the subject, between reading, homework, programming assignments, and studying for exams and quizes, you could spend nine hours per week. But, I still believe in the old fashioned rule that you get out of it what you put into it. Or perhaps more accurately, you don't get out what you don't put in.

A sample syllabus for a one semester course can be found at http://www.citidel.org/bitstream/10117/3539/1/82-index.html

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.