At the end of each round, a team with the lowest score gets eliminated. In order to resolve ties, a set of questions have been prepared and each question has 2 ideas. A question will be floated around and one of the teams defends one idea while the other team stands against that idea. A debate kicks in and the winner gets safe.
1> Convincing the client to do refactoring of an existing code that has smells
One team plays the role of a client and other team takes the role of development team. Client says NO to refactoring with reasons while the development team pushes the client to do refactoring. One of the subtle angles to explore is - “Does client really have to say Yes or No for refactoring? Why should you even involve client while taking refactoring decision?”
2> Your pair says “Let’s refactor this code after our story is done” where as you prefer to refactor before the story
One team defends the idea of refactoring after the story while the other talks about refactoring before the story.
3> You pair says, “I prefer having multiple assertions in one unit tests”
One team defends the idea of having multiple assertions in one unit test whereas the other team talks about having a single assertion in a unit test.
4> Your pair says, “I will create an inheritance hierarchy for classes - PdfExporter and TextExporter because both of them export data”
One team defends the idea of creating an inheritance hierarchy for classes mentioned above whereas the other team has a differing opinion.
5> Your pair says, “I prefer integration tests, they give me release ready confidence, I don’t like writing any unit tests”
One team defends the idea of writing only integration tests while the other team talks about the value of unit tests
6> Refactoring is estimated. Why or why not?
One team defends the idea of estimating refactoring whereas the other team stands against that idea