In
computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
and
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, the ninety-ninety rule is a humorous
aphorism
An aphorism (from Greek ἀφορισμός: ''aphorismos'', denoting 'delimitation', 'distinction', and 'definition') is a concise, terse, laconic, or memorable expression of a general truth or principle. Aphorisms are often handed down by tra ...
that states:
This adds up to 180%, making a wry allusion to the notoriety of software development projects significantly over-running their schedules (see
software development effort estimation). The anecdote expresses both the rough allocation of time to easy and hard portions of a programming undertaking, and the cause of the lateness of many projects in their failure to anticipate their difficult, often unpredictable, complexities. In short, it often takes both more time and more coding than expected to complete a project.
The rule is attributed to Tom Cargill of Bell Labs, and was made popular by
Jon Bentley's September 1985 "Programming Pearls" column in ''
Communications of the ACM
''Communications of the ACM'' (''CACM'') is the monthly journal of the Association for Computing Machinery (ACM).
History
It was established in 1958, with Saul Rosen as its first managing editor. It is sent to all ACM members.
Articles are i ...
'', in which it was titled the "Rule of Credibility".
In some
agile software projects, this rule also surfaces when a task is portrayed as "relatively done." This indicates a common scenario where planned work is completed but cannot be signed off, pending a single final activity which may not occur for a substantial amount of time.
See also
*
*
* – the 80/20 rule
*
References
{{DEFAULTSORT:Ninety-Ninety Rule
Adages
Computer humour
Software project management
Programming principles
1985 introductions