Today, on the first day of Øresund Agile 2008, I attended the Agile Architecture workshop held by Jim Coplien. He is a really great speaker! Some things that stuck in my head:
- Don’t use TDD, it destroys architecture because it makes the programmer focus on individual methods, losing the bigger picture on the way
- Don’t bother with unit tests, they make a bigger code base (equal amounts of application and unit test code is not unlikely), meaning more defects! The system tests should be enough
- A subset of system tests that run in less than ten minutes should be used as a smoke test.
- For interactive systems he was able to unify Agile software development, Model-View-Controller(-User) and Object Orientation.
- MVC inventor Trygve Reenskaug was referred to a few times, and Jim told us that Trygve’s Data-Collaboration-Algorithm (DCA) was going to be the next big thing in software development! (This will be the seventh hit or so on a Google search for "Data-Collaboration-Algorithm". Maybe I should make a dedicated blog post about it.)
- Domain Specific Languages (DSLs) are bad because they add new languages to learn when new people should work on a system, and it takes years to create a good language.
- UML could be used to visualize a system, but should be generated from source code. Quote: "No hand should ever touch a UML diagram."
Food for thought, isn’t it?
The list above is unfortunately a little short on things that Jim advocates but I need some good sleep before the Accelerated Agile workshop tomorrow and my writing would not be half as good as hearing him saying it.