Widgets of Wisdom II

If you aren’t familiar with the Widgets of Wisdom feature, see the explanation and disclaimer here.

  1. A mock is a stub with assertions
  2. Strive for black box unit tests, not testing beyond the interface boundary is ideal.
  3. Known Agile smell: Preferring practices over values.
  4. Agile is like Churchhill’s democracy, the worst possible solution until compared to the alternatives.
  5. We refactor our code a little at a time, but expect our teams to change all at once. It doesn’t work. Change a little, but change the highest value items first.
  6. Regression testing MUST occur within the bounds of the iteration in which new code was written. If this is not possible, your regression strategy is broken.
  7. Generating a new model from code is how to teach new team members what you have in place. Unfortunately, it doesn’t supply conceptual representations.
  8. Reflection with a model is useful for teams of any size.
  9. Code tells the story, but models tell it at a glance.
  10. There is no reasonable way (today) of generating a logical model from code.
  11. The difference between architecture and design is largely a function of scale and amount of strategic focus.
  12. Altering a model is the medium of conversation with project veterans.
  13. Miotic team division in pursuit of spreading excellence is destructive. In other words, don’t break up a good team to spread them around to bad ones in hope of improving the bad ones. This is punishing success.
  14. “Increased capacity implies increased complexity ” — Allan Shalloway
    1. Capacity in this case may be viewed as performance.
  15. Conway’s Law: The architecture of a system will reflect the organization that produced it.

 

Technorati Tags:

Published by

David Starr

David Starr is a professional software craftsman committed to improving agility, collaboration, and technical excellence in software development teams. David is the Technical Training Director for GoDaddy. He is the founder of Elegant Code Solutions, has served in numerous leadership contexts, and was as an early and consistent advocate for agile software development.