Project framwork

Development Plan
We will employ unit testing. This means developers must become familiar with JUnit, JUnit is available for download at sourceforge's JUnit project page.

Project documentation
Please use JavaDoc style comments in all source code. A tutorial on javadoc can be found at How to write Doc comments for Javadoc. Please be as clear as possible in writing your comments, and include as much information as possible about your code. Please be as discriptive as possible, don't be afraid to write very long comments!
UML is a great tool for describing visually various aspects of the project. As Mohammad says, UML is simply a matter of practice. Don't get to hung up on the specifics of UML at first. Please be as simple as possible in your diagrams, but at the same time you must communicate thoroughly what you are trying to describe. Data structures with the least cross referencing are usually more efficient. We want to maintain encapsulation of our classes as much as possible. Because we are using an agile development methodology the UML case diagrams we create are very loose, and only there to get ideas accross. A tutorial on UML can be found at UML tutorial page and Another tutorial. A good tool for creating UML diagrams can be found at ArgoUml.

Code conventions
All developers will adhere to Java code conventions described here.

Code Owndership
We will allow collective code ownership. This means that you can modify anyone elses code at any point in the programs lifecycle. However, in order to commit modifications to anyone elses code it has to pass the original coders JUnit test. Furthermore, I request that when any new code is added an associated JUnit test be added at the same time. It is very important that developers provide unit tests for their code!

JUnit testing
It extremely important to write JUnit tests for your code, and run all JUnit tests atleast once a day. Please take a look at for an example of how to write a JUnit test. Do not use the dynamic means of calling the tests in the runTest method, just call the method directly and include a message in every assertion! Developers are responsible for writing excellent tests. The people over at JUnit recommend building your tests before you build your program, I would also recommend this. If the developers are unwilling to use JUnit we can move to a different development plan that's slower and less productive, but I want to try this plan first.

Java technologies
Right now the only extension to the standard JRE is Java3D. An excellent tutorial on Java3D is available at java3d tutorial.

Developer communication
Developers are encouraged to exchange email, icq, phone, etc... This project will go a lot smoother if we communicate with each other a lot! Please download an IRC client, we will hold discussions in #jabamud. I want to post developers email and icq numbers on this page to aid in this process, if you want your information posted here send me an email.

Special thanks to Mohammad for this framework.