provided by: 
Originally published at Internet.comIn the July 2001 issue of ACM Software Engineering Notes, J. P. Lewis published an article that claimed there are hard limits on our ability to estimate software development time. The article has generated a fair amount of discussion within the software engineering community, because its conclusion is so disturbing. Lewis claims there simply cannot be any objective method for arriving at a good estimate of the complexity of a software development task prior to completing the task. He uses objective to mean a formal, mechanical method that does not rely on human intuition. He backs up this assertion by providing a mathematical proof for it. (Here is the article, Large Limits to Software Estimation, and here is a companion paper Lewis wrote in response to the discussion.)

Charles Connell
Lewis's argument is based on the notion of algorithmic complexity, which is a measure of the shortest program that will produce a given string. Algorithmic complexity, also known as Kolmogorov complexity, is a well-established and accepted area of information theory and computer science. Lewis observes that any software program can be thought of as a table that maps program inputs to their corresponding correct outputs. This characterization of programming assumes a finite number of finite inputs, which is fair for practical purposes. Lewis then notes that a table can be represented as a string consisting of its rows. Thus any programming task has an associated algorithmic complexity - the length of the shortest program that will produce the table that maps the project's data inputs to their outputs. (For more information see An Introduction to Kolmogorov Complexity and Its Applications.) ...
Read article at Internet.com site