Donnerstag, April 28, 2005

Tonabnehmer-Podcast by Frank Westphal: Agile Software Development

Frank Westphal puts interviews with people doing agile projects on his web: Tonabnehmer. Very interesting. Put the mp3 on your MP3 player and consume it in the subway. The interviews are done in german language.

Post bewerten

Donnerstag, April 07, 2005

eXPlain Project Management Tool

eXPlain is a story card management system for agile projects, namely eXtreme Programming. In contrast with XPlanner eXPlain supports effort estimations in effort points (not person hours). Moreover eXPlain has a much smaller than XPlanner. All the XPlanner features I never used, aren't there in eXPlain.
And eXPlain is written in Ruby and is therfore ridiculous small in code size. Ruby seems to be the upcoming star for web applications.

Post bewerten

Mittwoch, März 09, 2005

Weblog for IT-Managers

it-agile has started a (german) weblog addressed at IT-Managers (project manager, head of it department etc.): http://managerblog.it-agile.de

Post bewerten

Luntbuild

Luntbuild is a new build process management tool (like Cruise-Control). It has a nice and easy to use web interface (you don't have to edit any files). We started to use it in one project and got promising results.
The most important drawback in contrast with Cruise-Control is the missing Quiet-Time-Period for CVS. In projects with many concurrent check-ins that use CVS the missing feature may cause some trouble.

P.S.: It seems that the current Luntbuild download has a little bug (since it requires Starbase classes). The bug database of Luntbuild has hints on how to fix the problem without programming.

Post bewerten

Cobertura

Cobertura is a fork of the GNU version of JCoverage. In contrast with GNU JCoverage there is some development activity at Cobertura. Some long known bugs in JCoverage are fixed in Cobertura now (e.g. the problems occurring when more than some 100 files had to be instrumented).
There where also problems when we tried to use XRadar with GNU JCoverage which are fixed in Cobertura now.
In one project we switched from JCoverage to Coberatura and it worked fine.

Post bewerten

Freitag, März 04, 2005

Evil Singletons

I have built quite a lot systems as a developer and I have seen much more systems as a consultant. Now I'm strongly convinced that Singletons are evil. Uncle Bob has written a nice article on Singletons.

Post bewerten

Mittwoch, Januar 19, 2005

Weblog for Developers at it-agile

it-agile has started a weblog targeted at developers: http://entwicklerblog.it-agile.de (german only).

Post bewerten

Mittwoch, Januar 05, 2005

New Job

I changed jobs at 01-jan-2005. Now I work as an IT consultant for it-agile. it-agile offers agile software development and consulting / training for agile methods like eXtreme Programming. My new EMail address at it-agile is "stefan DOT roock AT it-agile DOT de".

Post bewerten

Dienstag, Dezember 28, 2004

Slides of Talk: Refactorings in Large Projects

Here are the slides of my talk "Refactorings in großen Softwareprojekten" ("Refactorings in Large Software Projects") which I gave at the XP Days in Karlsruhe. Since the talk was given in german the slides are german also.

Post bewerten

Sonntag, Dezember 26, 2004

Managing Module Dependencies in Large Systems

In larger projects it is nearly impossible to avoid degeneration of large scale structures without tool support. It is far too easy to import missing packages with one key-stroke in modern IDEs like Eclipse or IDEA.
My experience is that almost every projectwith more than 500 classes has unwanted dependencies between its modules (module = coherent set of packages). Often even cycles between modules occur.
There are some Open-Source solutions that help to avoid unwanted dependencies in Java projects or at least discover them early:
  • Put every module in its own JAR file. An ANT build script can then discover unwanted depdencies during compilation and generation of the JAR files.
  • If Eclipse is used: Define an Eclipse project for every module and let Eclipse manage the dependencies.
  • The use of the Eclipse plugin model allows even finer control but brings some overhead with it.
  • Define the allowed dependencies in a Fitnesse test. There is an easy to use solution named JDependFixture. Especially when you use Fitnesse already the your project JDependFixture may be a convenient solution.
  • XRadar is also based on JDepend and checks dependencies between modules (in XRadar modules are called subsystems). XRadar uses a XML definition of modules and dependencies and creates a graphical representation of the existing dependencies. XRadar is especially convenient when a nightly build process is in place, for example based on Cruise-Control.

Post bewerten

Mittwoch, Dezember 08, 2004

Book: Refactorings in Large Projects

Martin Lippert and I wrote a book about Refactorings in Large Projects that is out now for review. We are very interested in your feedback. Simply write an email to stefanATstefanroockDOTde.

Post bewerten

Taxonomy of code smells

There is a new taxonomy of code smells.

Post bewerten

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