OverPatterning, OverJ2EEing, OverUMLing

What I have seen travelling all around and solving customer problems with Java is that when you get confused, or you don't understand, you tend to overdo things.

Take, for instance, design patterns.

There's a clear definition of a pattern by Jim Coplien here.

What I like most of that definition is that it clearly states that a pattern is a proven concept that that solves a problem when the solution is not clear. Patterns include as well hints on when to apply them.

That's great, because it saves you lots of time. You just read the pattern, see if the boundary conditions of your problem are similar to those described and then apply the pattern to solve the problem. You don't have to suffer all the trouble of a bad solution. It's some sort of good recipe that saves you lots of time and money.

I have noticed that people tend to apply \*all\* the patterns when confused. J2EE patterns, for instance. That's not the goal. You don't have to use \*all\* patterns all the time. That's what I call overpatterning and, I think, it's origins are confussion.

I have noticed as well that people tend to overdo UML. They usually get stuck in writting UML docs and deliverables and forget about the problem. UML should be seen as a tool to express yourself, to communicate and to document. There's little point in documenting a little-bit of a software-design. You don't usually need the details. A higher level vision is usually enough to be understood. You can let the details for later. There's a nice article titled UML Fever everybody should read. I usually read it and verify I'm not suffering UML fever.

When people gets confused about J2EE they tend to overdo it too. Over J2EE-ing I call it. Then you see architecures that do not fit the problem, such as using web interfaces when rich clients would be a better solution. Or using EJBs for everything, even when not needed at all. You don't need to use \*all\* J2EE components to build a J2EE compliant application. Rich client applications are J2EE too. Applications without EJBs are J2EE too.

Law of conservation of energy. Law of minimum effort. The KISS principle.

Relax. You don't have to use all the features!

Comentarios:

"Law of conservation of energy" isn't about using less energy as the term "energy conservation" connotes. Rather it's about energy not being destroyed, it just becomes another form of energy. Conservation in Physics terminology is different from the plain everyday usage of "consuming less". Now law of minimum effort.. were does that come from?

Enviado por Carlos E. Perez en junio 20, 2004 a las 08:23 AM CEST #

Enviar un comentario:
Los comentarios han sido deshabilitados.
About

swinger

Search

Archives
« abril 2014
lunmarmiéjueviesábdom
 
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
    
       
Hoy