Can architecture be agile? Absolutely.

Lately both Pawel Brodzinski and Martin Fowler have been letting people know that architecture and agile are not incompatible.  I wholeheartedly agree, and actually am I a bit surprised at the extent to which people seem to think these two approaches are mutually exclusive – they seem pretty compatible to me.  At is root, I think this is  a case of fixed mind.  The architects get stuck in a mind of designing up front, and the agilists get stuck in the idea of always being flexible.

Continue reading →

JavaServer Faces performance – some specifics

Last year I posted about some helpful advice I found on JSF performance.  Sadly, those slides are no longer available.  So I’m putting the details that I remember in this post.

Continue reading →

Unit testing vocabulary

I just saw Martin Fowler’s little note about the vocabulary of unit testing, and I thought it was so clear and helpful that I had to share it.

Just seeing the words and the definitions listed side by side clarifies several approaches to what is proabably the hardest part of unit testing – keeping your tests from invoking the entire system.

Clear thinking about code reuse

Udi Dahan has just fired off a great post about the pitfals of trying to reuse code – that we make big problems for ourselves by trying to re-use domain-specific code into ways it wasn’t designed to be used. Successful re-use comes about when the code being used is generic enough to actually work in more than one context, and has been designed with this re-use in mind.

In other words skillful re-use is not about grabbing at something that looks close to what you need and trying to make it work, but instead deciding if what you’re doing makes sense to re-use, and if so thinking about how others will re-use it.

Feeling a bit of a fanboy

Call me a fanboy if you must, but the people at Coding the Architecture know their stuff.  The slides Simon Brown put together on Why Software Projects Fail are a very good, very specific description of what a good software architect can bring to the a project