Sonntag, November 21, 2004

Large Refactorings at XP-Days Karlsruhe

I will talk about Large Refactorings at the XP-Days 2004 in Karlsruhe.

Post bewerten

Sonntag, November 14, 2004

Distributed Computation@home

SETI @ home was the first software for distributed computing at home: CPU time not used by the user is used for a really large distributed computation project. The experiences with SETI @ home were used to create a content independent platform for distributed computing: BOINC.
There are additional public projects for distributed computation using BOINC available at the BOINC link given above.

Post bewerten

Freitag, November 05, 2004

Rich Client Patterns

Martin Fowlers book "Pattern of Enterprise Application Architecture" lacks patterns for rich client applications. On his website Martin Fowler has collected first patterns for rich client applications.

Post bewerten

Samstag, Oktober 30, 2004

Multiple Customers in XP

Ron Jeffries has written a short but interesting article about how to deal with multiple customers: Petition the King. He uses the metapher of villagers coming to the king regularly (one a month or one every two weeks) to explain their requests. The king has limited resources and decides about the usage of the resources.
In XP the king is not a developer since decisions about distributing resources is a bussiness decision not a technical desicion. Therefore king is a kind of super customer, head of marketing for a product company or something similar.

Post bewerten

Freitag, Oktober 22, 2004

Design in Agile Methods

One of the most controverse aspects of agile methods is the role of design. In eXtreme Programming the practice is stated explicitly: Simple Design.
Buzz words describing simple design are:
  • You ain't gonna need it (the YAGNI principle).
  • Keep it simple, stupid (the KISS principle).
  • Design for Today.
  • No Big Design Upfront (BDUF).

Two articles (available online) about the topic give further insights:

Post bewerten

Sonntag, September 19, 2004

Paper on Pair-Programming

There is a new paper on Pair-Programming online - only in german.

Post bewerten

Donnerstag, September 16, 2004

Managing ANT scripts

In larger Java projects the ANT scripts tend to become complicated and hard to handle. Too often the ANT scripts produce incomplete results or need too much runtime. Eric M. Burke wrote down useful best practices for ANT scripts.
And he wrote a little tool that visualizes the dependencies of ANT targets: AntGraph.

Post bewerten

Dienstag, August 31, 2004

How to write unmaintainable code

Funny and true article: http://mindprod.com/unmain.html

Post bewerten

Visibility of Automatic Build

There is a cool kit for making the results of automatic builds (e.g. with Cruise-Control) visible: Bubble, Bubble, Build's In Trouble. And it costs less than 100 USD.

Post bewerten

Donnerstag, August 26, 2004

XRadar: Structural Analysis for Java projects

We startet to use XRadar in a larger project for structural analysis, e.g. dependency checks between subsystems and packages.

XRadar is open source and combines a lot of useful small tools like JDepend and PMD to form a complete analysis suite. We integrated XRadar into our Cruise-Control build process and got helpful results about the structure of our system.

Post bewerten

Dienstag, August 17, 2004

Time Travel Pattern Language

I just discovered a paper describing the Time Travel pattern language for objects that change. The patterns address objects that have a browsable history of modifications where the modifications can have effects in the past and the future. These problems often arise with contracts where the time of making the modification can differ from the time where the modification takes effect.
Example: One week ago I buyed a new car. Now I send a notice to my insurance company. While the contract is modified tomorrow when my notice reaches the insurance company, the modification has to take effect one week ago in the past.
Once I was in a project at an insurance company and we had exactly the same problems. At the end we came to very similar solutions. Had we known the Time Travel pattern language we could have saved a lot of time, not only to find the solutions but more important to communicate the problems and the solutions.

Post bewerten

Montag, August 16, 2004

Unit Test Smells

The term smell was taken from the refactoring discussion. There a code smell comes from an ugly piece of source code that should be restructured (refactored) as soon as possible. Typical code smells are duplication of code, unneccessary indirections etc.
The term smell can be transferred to a lot of other “domains”, e.g. to the wide area of testing. This article is a first attempt to collect smells for the area of unit tests.

Post bewerten

Freitag, August 06, 2004

C-JDBC: open-source inexpensive DB clustering

When searching for techniques to create Java enterprise applications without buying and using heavyweight products one should take a look at C-JDBC. C-JDBC is an open-source product that supports the RAIDb concept (Redundant Array of Inexpensive Databases): C-JDBC encapsulates several database instances behind a regular JDBC api. To introduce C-JDBC into a project existing code needn't be modified as long as all database access is handled via JDBC.

Post bewerten

Donnerstag, August 05, 2004

Modular Software with PicoContainer

Most OO systems claim to be modular but very few really are. Normally OO systems have cycles between they modules. Even if there are no cycles the dependencies between the so called modules are chaotic and inflexible. A typical result is that developers can't instantiate a small set of classes for unit testing without having the rest of the system.
PicoContainer is an open-source project that provides a IoC-Container (IoC = Inversion of Control) that is very useful for defining and managing the dependencies between modules.

I collegue asked me once when I would PicoContainer into a project:
  • Right from the beginning?
  • Even for prototyping?
  • When the system exceeds a certain size?
I think that projects should use PicoContainer right from the beginning and even for prototypes. Even for very small prototypes PicoContainer pays off measured in Lines of Code and it adds very small overhead to the project.
Adding PicoContainer later to a project results in refactoring and will therefore often not done.

Post bewerten

Sonntag, August 01, 2004

Do You like to Eat an Elephant?

There is an funny and interesting article about EJB out there, called "Don't Make me Eat the Elephant Again". The autor argues that for most project EJB ist just too big and suggests some lightweight approaches to building Java Enterprise Applications.
I like the article very much since I know the suffer the author describes from my programming and consulting experience. It is the time for a change!

There is a very interesting book about the topic: Bruce Tate, Justin Gehtland: "Better, Faster, Lighter Java".

Post bewerten

Samstag, Juli 31, 2004

SCRUM Master

I participated the SCRUM Master training in Karlsruhe held by Joseph Pelrine. That was fun and now I'm a certified SCRUM Master.
BTW: A collegue of mine said that "SCRUM Master" sounds like something evil. I try to be not too evil :-)

Post bewerten

Funny GridBagLayout

Its always a highlight when profession meets fun. A very funny and striking description of Java's GridBagLayout is available as an interactive weblog.

Post bewerten

Donnerstag, Juli 15, 2004

JMigrator 0.4.0 released

I released the first version of JMigrator at Source-Forge as an Eclipse 3 plugin.
If anybody is interested in participating at the further development, please contact me.

Post bewerten

Montag, Juli 05, 2004

Trashcan Frameworks

Application specific frameworks often degenerate and become Trascan Frameworks. I have written my thoughts in a short article "Trashcan Frameworks".

Post bewerten

Sonntag, Juli 04, 2004

Large Refactorings and Fitnesse at Java Forum Stuttgart

Martin Lippert and I held a lalk about Refactorings in large Projects at the Java Forum Stuttgart. The slides are here (german). I submitted a presentation about aceptance testing with Fitnesse. This was accepted as a failover presentation. Since no other presentation was cancelled, the presentation wasn't held. But the slides are here for download although (german).

Post bewerten