Updated: 4/23/2003; 11:27:01 AM.
Brian Maso's Tecno-Geek Weblog
The musings of a mild-mannered tecno-geek.
        

Friday, March 07, 2003

I attended the OCPatterns 3/6/'03 meeting last night, at Applied Knowledge in Santa Ana California. Great group. Lots of smart people dedicated to on-going education and understanding of their trade. I haven't been the youngest person in a room of developers in a long time.

While studying Fowler's Patterns for Enterprise Application Development, several people commented that the so-called patterns in Fowler's book lacked a certain... je ne se qua. A certain simplicity that would make them immediately recognizable. Most people commented that the Gamma patterns had it, but that Fowler's patterns generally did not.

So what makes a "pattern"? Rather, what value does it have? Why bother defining one, other than to say "I invented the FooFarfalaFoop pattern" on your resume?

Ambler's Agile Modeling practice Apply Patterns Gently is a wonderful notion, but what does it mean? How to do you know which realization of a pattern is more "gentle"? Shouldn't you apply the most appropriate realization of a pattern right away? No.

That's because code changes as you build an application. You start with a simple version of a product feature, and you build it up. You start with a "dummy"or placeholder implementation of a feature, and you build successively more complicated replacements. That's one way to grow an application over time which fits in with the whole agile development methodology.

When applying agile modeling principals, you would want to write the simplest models that described your application/feature/module/component/widget/thnead/whatever. The simple model uses patterns, and the patterns are initially applied gently. Then as the code base is modified, and the pattern realizations get more complication, something amazing happens: the models don't get out of date. The models refer to patterns. And if all you change is the form of the pattern employed, then the model is still valid.

A pattern allotrope is a particular form of a pattern realization. As you grow your code, if you simply switch between different alloptropic forms, your models and architecture remain valid.

And if alloptropic forms can be ordered from gentlest to most masochistic, or at least qualified in to "gentler" and "rougher" categories, then the practice of applying patterns gently can be guided by something other than subjective gut instinct.


7:20:15 PM    comment []

© Copyright 2003 Brian Maso.
 
March 2003
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Feb   Apr


Click here to visit the Radio UserLand website.

Subscribe to "Brian Maso's Tecno-Geek Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.