Simplicity—the art of maximizing the amount of work not done—is essential.From their responses, I got the impression that they know that their approaches from CS1 and CS2 are not the simplest ways to solve problems. However, it was not clear to me if they were searching for the maximum simplicity (as in, make everything as simple as possible but not simpler) or the delusional simplicity (as in, software development should be simpler). I will have to remember to ask them to reflect on this later in the semester, once they have learned refactoring and design techniques and gained experience working in groups on projects of more substantial size.
Thursday, January 13, 2011
I assigned my CS222 students to read the Manifesto for Agile Software Development and the Twelve Principles of Agile Software. They were to choose two of the twelve principles and reflect on how these are pertinent to them right now, as students of Computer Science. Most of the students selected this as one of their two.