Product Development in Brisbane

Self-Similarity and Reflection

One of the principals listed in Extreme Programing Explained is the idea of Self-Similarity (taken from Mathematics and fractal geometry).  The idea in XP is to copy the structure of one solution into a new context, even at different scales, and is often used to help think about testing, and forms a good starting point for thinking about what structures or processes to apply.

In the Ephox development team we do this at a number of different levels.  We practice reflection regularly at a weekly basis with a weekly retrospective.  On a roughly quarterly basis we review our current state of play from a process/methodology standpoint.  We will often look back over things at a small level with coding. I've recently noticed myself doing the same thing at a micro level, helping myself to learn keyboard shortcuts for IntelliJ.  

In summary, some of the good spots for reflection for a development team are:

  • Weekly - helping to see what can be done to learn from the previous week and do better in the next week.
  • Quarterly  - helping to see what can be done to generally improve process, taking a bigger picture view.
  • any-time - when you notice something that is interesting (for example a pop-up in your editor) stop and reflect on what has happened - you might just learn something.

 Reflection is a great practice to follow at different times.  When do you find reflection useful?

2 Responses to “Self-Similarity and Reflection”

  1. Scott Carpenter Says:

    When I’m combing my hair. :P

  2. robert Says:

    I guess there is some self-similarity involved there as well ;)

Leave a Reply