XP Studio homeXP Studio at SourceForge.net

Developer Guidelines

Development environment

XP Studio is being developed in Java. The code style we maintain, is enforced using CheckStyle.

We use Ant for build management, and Eclipse as IDE.

The source code is stored in a Subversion repository on SourceForge.

Testing is done using JUnit (unit tests), Cobertura (test coverage), and FIT (acceptance tests).

To get started using these tools, read the getting started section.

Development process

The development process is a version of eXtreme Programming that is adapted for open source development.

Source code

Use Test Driven Development (TDD): first write tests, then the code to make the tests pass. Then refactor to make sure all ideas are expressed clearly, and no duplication remains.

Source documentation

Use JavaDoc as you see fit. Note however, that you should not rely on comments to make your code readable. The code itself should express its ideas clearly, e.g. by using descriptive names. Also, the unit tests document how the classes should be used.

If you have doubts about whether your code is understandable, then please discuss your code on the devel mailing list.

One place where JavaDoc is particularly useful, is in describing the relationships between classes. This is best done in the package.html file.

User documentation

Part of the job of developing a new feature is making sure that people know about it, and know how to use it. This means writing user documentation, both as acceptance tests, and in the manual.

Acceptance tests document the behavior of the system, in the sense that they show, in a format understandable by an end user, how the system is supposed to behave.

The manual is more about the underlying concepts. One needs to understand these first, and get acquainted with the terminology, before one can use the system. The manual also shows what steps are needed to get the system to perform a certain feature.

Design

Discuss designs on the devel mailing list. Do not go overboard with this, though: we do not want Big Design Up Front (BDUF). If you think the design is obvious, even for developers without specific domain knowledge, then go ahead and implement it (using TDD, of course). This keeps the project moving forward a lot faster.

Architecture

In XP, architecture is not a separate phase or activity. As with the design, it largely emerges from implementing stories. There is one thing that maintains a shared understanding of the system, though: the metaphor.

The metaphor of XP Studio is ...TODO