Learning all I can from the Foreword of growing OO software Guided by tests
27 Jul 2019
Reading notes based on Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
I'm reading this book following the techniques outlined in a book called How to Read a book, which I wrote about here
In this post, I am going to learn as much as I can about this book from it's Forword only. I have done this by capturing the terms, propositions, arguments and problems mentioned in this very short section of the book. Then I wrote any questions I had for each of these underneath them, so that as I read the book, I can keep the questions in mind and be aware that I want to find a solution for them.
A term is a word or a phrase that is holds an important meaning within a book. The word can have different meanings in the book. In this section, I will take note of the important word mentioned in the Forward for this book, as well as any meanings that have been provided for it.
Kent Beck says that the style of Test-Driven Development here is different from the style that he practices, but that he cannot articulate why at this stage.
- How is this style of TDD different from Kent Beck's style of TDD? Answering this question may mean reading Kent Beck's TDD as analytically as I am reading this book.
No definition for OO design provided in the forword.
A preposition is a statement where the author takes a stance on a subject either for or against the truth of something. After completing this book, I will be looking back to see what evidence could be found in support of these prepositions.
Kent Beck says that from this book, we can learn how to program to sustain productivity and how to look at our programs anew.
- How exactly does this book teach us to sustain productivity?
- How exactly does this book teach us to look at our programs anew?
Kent Beck also says that this book presents a coherent and consistent system of development, where different techniques support each other.
- What is meant by coherent and consistent system of development?
- What different techniques are there?
- How exactly and in what ways do the different techniques support each other?
Arguments are major points or issues that are addressed throughout the book. Arguments can be made up of a series of prepositions that form reasons in support or against arguments that are being made. As with the prepositions, I will be going back over these to see the extent to which the book can be said to support these arguments.
In the forword for this book, Kent Beck says that this book presents a new perspective, and says that what if we treated programs like gardens to be nurtured, pruned, harvested, fertilized and watered, instead of something that we 'finish'.
- What is the garden perspective 'shifting' from?
Problems are obstacles that the author/s say need to be overcome and dealt with. Here are the problems that are pointed out within the book. After reading the book I will come back and see the extent to which these problems were or were not solved by the book.
How to realease more software in less time - indefinitely
In the foreword for this book, Kent Beck says that one of the problems posed by the move to shorter and shorter release cycles is how to release more software in less time - and to continue releasing indefinitely.
- Does this book solve the problem of releasing more software in less time?
- If so, exactly what solution/s are suggested?
From reading the forword of Growing Object-Oriented Software Guided by tests alone, we can infer that the book offers a new perspective by which software is likened to a garden that we grow and maintain over time. We also know that this book contains techniques for achieving this in a way that will apparently help us to release more software, more quickly. According To Kent Beck, the authors employ a different version of Test-Driven Development than he does, but exactly why it is different remains unclear.