I am preparing an educational course on software legacy code and refactoring. Every topic is introduced as a group discussion to establish the vocabulary. It is then followed by a matching practical coding dojo with a kata dedicated to the same topic.
The target audience is a group of software engineers who are comfortable with the principles of coding dojos, they have completed a half dozen of dojos already. They are experienced with applying TDD to katas where the objective was to write new code from scratch.
The new course is focused on working with legacy code: getting it under test, isolation of dependencies, safe refactoring etc. One of the topics I want to explore is that removal of code that is no longer useful is a valuable approach when working with legacy code.
I am looking for ideas and inspiration for designing a matching kata. I.e. I need to prepare a body of code and formulate an assignment for it. One of the feasible solutions to this assignment should involve removal a significant portion of the original code.
There are many catalogues on the web of ideas for katas and even ready-made repositories to be used as starting points. But I am yet to find one that would closely match my intention.
Most of the katas that start from a pre-existing non-empty code repository expect a student to transform it to a repository of a roughly the same size. I am looking for ideas where the resulting code is notably smaller compared to the starting point. The reasons for the initial volume could be different and combined in the same project: plain old copy-paste abuse, violation of YAGNI principle (having features that nobody asked for), various code smells that provoke code bloat etc.
I am not looking for a ready solution, but for ideas of how I could create such a "Code Deletion Kata" for my course.