Buy the Book

by Scott L. Bain
Buzz about the book
Related courses at Net Objectives
Online repository
Appendix B of the book provided the starting information for this repository, but it will continue to grow and change as readers, students, and other developers join and add their views. It is free for your use. If you wish to contribute, contact Scott Bain at slbain@netobjectives.com. To view, take the link below.
LinkedIn discussion group
A LinkedIn group for questions and comments regarding the book, or any of the concepts surrounding agile software development techniques.
Table of Contents
00 – Introduction
01 – Software as a Profession (Sample available here)
02 – Out of the Closet – Patterns and Professionalism in Software Development
03 – The Nature of Software Development (Sample available here)
04 – Evolution in Code Stage 1
05 – Introduction to Patterns
06 – Building a Pyramid
07 – Paying Attention to Qualities and Pathologies
08 – Paying Attention to Principles and Wisdom (Chapter available here)
09 – Paying Attention to Practices
10 – Paying Attention to Disciplines – Unit Testing
11 – Paying Attention to Disciplines – Refactoring
12 – Test-Driven Development
13 – Patterns and Forces
14 – Emergent Design, a Case Study
15 – A Conclusion: 2020
Appendix A – Evolutionary Paths
Appendix B – Overview of Patterns Used in the Examples
Appendix C – The Principle of the Useful Illusion
Appendix D – For Further Reading
Errata:
Page |
Issue |
64 |
Figure 4.3 – The “uses” arrow between “LocalStatusSender” and “PagingStatusSender” should not be there |
77 |
Figure 5.7 caption: “No room” should be “Now room” |
84 |
The last line, “design to over-design”, should be desire to over-design |
111 |
In the box, the word safety appears twice in the wrong font |
112 |
2nd to last line, “were so were” should be “were so” |
116 |
Paragraph 8, final sentence says “drifted back to the right” when it should say “drifted back to the left” |
148 |
3rd line from the bottom, missing closing parenthesis after i++ |
159 |
7th line, delete the phrase “a function that is often problematic” |
208 |
Second Code Example, third line from the end, MockDAO should be mockDAO |
211 |
A closing brace is missing from the code example at the bottom of the page |
230 |
The “printReportLines” method and “calculateAverage” method should both take “ArrayList clines” as a parameter |
235 |
I write “At the end of this chapter, I will suggest some books I have found to get started. “. That list is in an appendix at the end of the book, not the chapter |
243 |
Figure 12.5, bottom right, box says “Strategy_V1Test” should be “Strategy_V2Test”. Same on the previous page in Figure 12.4 |
249 |
Figure 12.7, case B – Third circle should say DecB rather than DecA appearing twice |
285 |
Final paragraph, second sentence, “mange” should be “manage” |
286 |
All references to “Card” or “Cards” should be “Chip” or “Chips” |
298
|
Caption to Figure A.6b, the word “Comples” should be “Complex” |
323 |
Figure B.12 – the first Handler should be “Handler1” rather than “Handler2” appearing twice |
326 |
Figure B.12 – the Handlers should not have void return type |
343 |
Figure B.26 – “DateInputStream” should be “DataInputStream” |