SDWest: Agility And Architecture


Yesterday and today have been jam-packed with interesting sessions. The best of the bunch by far, though, was the roundtable discussion on agility and architecture Bob Martin led this afternoon.

I’m still trying to decide whether SD was incredibly smart or incredibly silly in putting this session in a rather small room. Bob Martin is the most engaging speaker I know, and his sessions are always packed. This one was no exception: standing room only, with plenty of people doing just that. While a larger room would have fixed that, I think the small room actually increased the quality of the discussion by forcing everyone into such close proximity. (So I’m going to go with incredibly smart.)

The discussion was deep and funny and wide-ranging (Bob’s opening question: “Which white dwarf is closest to our sun?”) and illuminating. The most interesting points for me:

  • Agility does not mean not doing architecture; rather, it means basing that architecture on and validating it with working code.
  • When asked what you do when you get ninety percent of your application written and then discover that your architecture won’t work for the last ten percent, Bob replied “Ship that ninety percent!”
  • The only way to guarantee that your code/design/architecture can evolve is to constantly evolve it.
  • Agility enables architecture. Agility makes architecture a continuous topic of conversation.
  • The first, most important part of making code flexible is to surround it with tests.
  • The ability to test your code is much more important than your architecture will ever be.
  • The valuable part of planning is the act, not the resulting documents. So repeat the act over and over and over so that you gain ever more practice with it.
  • Architects figure out what needs to be done and then sell that to the teams doing the work. The best way to do this selling? Pair program the implementation with them.

Bob Martin is one of a very few people whose talks I attend just because he is the speaker. Sessions like this are the reason I attend SD.

Comments (2)

  1. rmartin says:

    架构设计在保持系统的灵活性,易修改性和可扩展性上很重要。但它属于第二大影响力…(译者注:这是SDWest2006大会上的软件方法论的重要成果,那些关心自己职业生涯导向的朋友值得关注)