eBooks from Steve McConnell
All books and eBooks by Steve McConnell:
Code Complete
19.1 Boolean Expressions 439 Many modern languages provide facilities that prevent this kind of error from hap- pening in the first place. For example, C++ uses short-circuit evaluation: if the first operand of the and is false, the second isn’t evaluated because the whole expression would be false anyway. In other words, in C++ the only part of if ( SomethingFalse && SomeCondition ) ... that’s evaluated is SomethingFalse. Evaluation stops as soon as SomethingFalse is iden- tified as false. Evaluation is similarly short-circuited with the or operator. In C++ and Java, the only part of if ( somethingTrue || someCondition ) ... that is evaluated is somethingTrue. The evaluation stops as soon as somethingTrue is identified as true because the expression is always true if any part of it is true. As a result of this method of evaluation, the following statement is a fine, legal statement. Java Example
(2009)
Software Estimation: Dem...
Demystifying the Black Art
Chapter 12 Proxy-Based Estimates 145 12.4 T-Shirt Sizing Nontechnical stakeholders often want (and need) to make decisions about project scope during the wide part of the Cone of Uncertainty. A good estimator will refuse to provide highly precise estimates while the project is still in the wide part of the Cone. Sales and marketing staff will say, “How can I know whether I want that feature if I don’t know how much it costs?” And a good estimator will say, “I can’t tell you what it will cost until we’ve done more detailed requirements work.” It would appear that the two groups are at an impasse. This impasse can be broken by realizing that the goal of software estimation is not pinpoint accuracy but estimates that are accurate enough to support effective project control. In this case, nontechnical stakeholders are typically not asking for an estimate in staff hours. They
(2009)
Software Project Surviva...
9 Quality Assurance Survival Check T Project has a written, approved Quality Assurance Plan. 2 Project isn’t following the written plan. T Quality assurance is initiated in parallel with requirements work. T Defect tracking software is placed online at requirements devel- opment time, and defects are tracked from the beginning of the project. T Developers review all designs and code before the designs and code are considered “done.” 2 No designs or code have failed their reviews, suggesting that reviews are superficial. 2 Developers don’t source trace and unit test their own source code prior to submitting it for review, which gives rise to an unwieldy number of defects that have to be tracked from reviews onward. T The Quality Assurance Plan calls for an independent quality as- surance group. 2 No funding is available for an independent quality assur- ance group. T The Quality Assurance Plan contains measurable criteria
(2009)

