var messages = Array();
messages.push('Fact: The most important factor in software work is the quality of the programmers.');
messages.push('Fact: The best programmers are up to 28 times better than the worst programmers.');
messages.push('Fact: Adding people to a late project makes it later.');
messages.push('Fact: The working environment has a profound impact on productivity and quality.');
messages.push('Fact: Hype (about tools and techniques) is the plague on the house of software.');
messages.push('Fact: New tools and techniques cause an initial loss of productivity/quality.');
messages.push('Fact: Software developers talk a lot about tools, but seldom use them.');
messages.push('Fact: One of the two most common causes of runaway projects is poor estimation.');
messages.push('Fact: Software estimation usually occurs at the wrong time.'); // Fact 10
messages.push('Fact: Software estimates are rarely corrected as the project proceeds.');
messages.push('Fact: It is not surprising that software estimates are bad. But we live and die by them anyway!');
messages.push('Fact: There is a disconnect between software management and their programmers.');
messages.push('Fact: The answer to a feasibility study is almost always &quot;yes.&quot;');
messages.push('Fact: Reuse-in-the-small is a well-solved problem.');
messages.push('Fact: Reuse-in-the-large remains a mostly unsolved problem.');
messages.push('Fact: Reuse-in-the-large works best in families of related systems.');
messages.push('Fact: Reusable components are three times as hard to build and should be tried out in three settings.');
messages.push('Fact: Modification of reused code is particularly error-prone.');
messages.push('Fact: Design pattern reuse is one solution to the problems of code reuse.');  // Fact 20
messages.push('Fact: For every 25 percent increase in problem complexity, there is a 100 percent increase in solution complexity.');
messages.push('Fact: Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical.');
messages.push('Fact: One of the two most common causes of runaway projects is unstable requirements.');
messages.push('Fact: Requirements errors are the most expensive to fix during production.');
messages.push('Fact: Missing requirements are the hardest errors to correct.');
messages.push('Fact: Explicit requirements &quot;explode&quot; as implicit (design) requirements for a solution evolve.');
messages.push('Fact: There is seldom one best design solution to a software problem.');
messages.push('Fact: Design is a complex, iterative process. Initial design solutions are usually wrong and certainly not optimal.');
messages.push('Fact: Designer &quot;primitives&quot; (solutions programmers can readily code) rarely match programmer &quot;primitives&quot;');
messages.push('Fact: COBOL is a very bad language, but all the others (for business applications) are so much worse.');
messages.push('Fact: Error removal is the most time-consuming phase of the life cycle.');
messages.push('Fact: Software is usually tested at best at the 55 to 60 percent (branch) coverage level.');
messages.push('Fact: One hundred percent coverage is still far from enough.');
messages.push('Fact: Test tools are essential, but many are rarely used.');
messages.push('Fact: Test automation rarely is. Most testing activities cannot be automated.');
messages.push('Fact: Programmer-created, built-in debug code is an important supplement to testing tools.');
messages.push('Fact: Rigorous inspections can remove up to 90 percent of errors before the first test case is run.');
messages.push('Fact: Rigorous inspections should not replace testing.');
messages.push('Fact: Postdelivery reviews (some call them &quot;retrospectives&quot;) are important and seldom performed.');
messages.push('Fact: Reviews are both technical and sociological, and both factors must be accommodated.');
messages.push('Fact: Maintenance typically consumes 40 to 80 percent of software costs. It is probably the most important life cycle phase of software.');
messages.push('Fact: Enhancements represent roughly 60 percent of maintenance costs.');
messages.push('Fact: Maintenance is a solution, not a problem.');
messages.push('Fact: Understanding the existing product is the most difficult task of maintenance.');
messages.push('Fact: Better methods lead to more maintenance, not less.');
messages.push('Fact: Quality is a collection of attributes.');
messages.push('Fact: Quality is not user satisfaction, meeting requirements, achieving cost and schedule, or reliability.');
messages.push('Fact: There are errors that most programmers tend to make.');
messages.push('Fact: Errors tend to cluster.');
messages.push('Fact: There is no single best approach to software error removal.');
messages.push('Fact: Residual errors will always persist. The goal should be to minimize or eliminate severe errors.');
messages.push('Fact: Efficiency stems more from good design than good coding.');
messages.push('Fact: High-order language code can be about 90 percent as efficient as comparable assembler code.');
messages.push('Fact: There are tradeoffs between size and time optimization.');
messages.push('Fact: Many researches advocate rather than investigate.');
// Fallacies start now
messages.push('Fallacy: You can&apos;t manage what you can&apos;t measure.');
messages.push('Fallacy: You can manage quality into a software product.');
messages.push('Fallacy: Programming can and should be egoless.');
messages.push('Fallacy: Tools and techniques: one size fits all.');
messages.push('Fallacy: Software needs more methodologies.');
messages.push('Fallacy: To estimate cost and schedule, first estimate lines of code.');
messages.push('Fallacy: Random test input is a good way to optimize testing.');
messages.push('Fallacy: &quot;Given enough eyeballs, all bugs are shallow.&quot;');
messages.push('Fallacy: The way to predict future maintenance costs and to make and to make product replacement decisions is to look at past cost data.');
messages.push('Fallacy: You teach people how to program by showing them how to write programs');

var message_text = messages[Math.floor(Math.random()*messages.length)];

document.write("<div class='facts_and_fallacies'><h2 \
href='http://books.google.com/books?hl=en&id=3Ntz-UJzZN0C&printsec=frontcover&source=web&ots=zeMEVRfWnv&sig=FfYFfgnyDpAc6vL4QVuOkupsr6Y&sa=X&oi=book_result&resnum=1&ct=result'>Facts and \
Fallacies<br />of Software Engineering</h2><p>"+message_text+"</p><p class='description'>This fact is from <a \
href='http://books.google.com/books?hl=en&id=3Ntz-UJzZN0C&printsec=frontcover&source=web&ots=zeMEVRfWnv&sig=FfYFfgnyDpAc6vL4QVuOkupsr6Y&sa=X&oi=book_result&resnum=1&ct=result#PPP1,M1'>a \
real great book</a>.<br />Check it out.</p></div>");
