We go around the room and report:
Everyone reported on the progress they made last time. No obstacles, though several teams made simplifying decisions while waiting for transaction dates to work. All but one story (producing balance sheets) is finished.
One lesson I learned yesterday: I missed an opportunity to point out a valuable use of TDD with the pair working on Account.examineAt(someDate). They were struggling with the algorithm, which requires finding the last entry to display and then displaying 10 items up to that one. When they were strucggling, I should have suggested: Write a simpler test. That would have focused us on the first problem, the search loop, and help us get unstuck from the bigger problem. It also would have produced a testable method, which Account.examineAt(someDate) could call to do its job -- but also:
We changed our routine. With only two high-value but high-risk stories to implement, and the iteration ending today, we decided not to push ahead. Instead, we decided to devote today's effort to improving our code through review and refactoring.
First, we ran reek against the repo to see what smells it detected. We looked for a few specific improvements we could make. reek's list was large and helpful. I pointed out a few things:
In the meantime, though, I eliminated the uncommunicative name smells and saved the smells to a file using this command
reek *.rb | grep -v UncommunicativeName > smells.txtWe then focused our attention on the non-test files.
(We discussed the fact that reek is aggressive in labeling a method "long". I looked up the documentation for this feature and learned that its default limit is 5 lines of code -- and that users of reek can configure the tool to set whatever limit they prefer. Very nice!)
At this point we decided to spend the rest of this iteration improving our code. Developers paired off to work on a class or two they have not worked on yet, with team members they had not paired with yet. They grabbed a clean copy of the project repository:
svn checkout https://student.cs.uni.edu/svn/810188-May10
and went to work. The result: We have much better code now, and it all still works. Our tests protected us!
Please read all three. It won't take long!