Featured Whitepapers
Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Manage the agile team with XPlanner

How can XPlanner assist your agile team to achieve peak performance?

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 4

Project planning and tracking with XPlanner

XPlanner is an agile project management software tool available under the GNU Lesser General Public License (making it "free, as in beer," in open source lingo). The package deploys as a Web application, which allows your team members and project stakeholders to get on board by using their favorite Web browsers. Once configured, you will be able to plan and track various aspects of your agile project's delivery via a simple Web interface.

Crucially, from the agile perspective, project participants are able to directly collaborate by contributing their information into the common project repository. This collaboration can involve customers describing project requirements in the form of user stories, which developers then use to detail and track the tasks required to make these stories a reality.

In addition to supporting this level of customer collaboration, XPlanner provides other handy features that support the agile approach. These include features such as a simple mechanism for defining project iterations; an intuitive interface for individuals estimating and tracking effort; and charts for publishing team metrics. XPlanner is discussed here as it was deployed to support the delivery of an electronic commerce and workflow system consisting of several stakeholder groups and a team of seven developers.

Downloading and installing

XPlanner is a pure Java application that may be deployed within any J2SE 1.4 development environment equipped with Apache Ant and a suitable servlet engine. We chose Apache Tomcat as the servlet engine; however, any engine compatible with Servlet 2.3 (or a more recent version) should do. XPlanner ships as a file archive (zip or tar.gz) which you must unpack and build prior to deploying and using the tool.

A mandatory configuration step is involved as you need to set up your favorite database to be used as the repository for project information. As XPlanner uses the Hibernate object/relational persistence layer for database interaction, you have the option to use any Hibernate-supported database for your project repository. The bundled option is the lightweight Java database Hypersonic (now called HSQLDB); however, we used Oracle 9i as our repository database. To configure this database, we had to edit the file xplanner.properties by uncommenting the already defined Oracle properties. We also needed to modify the build.xml file to incorporate the Oracle thin database driver. Once configured, you may build your XPlanner deployment. This involves executing Ant to produce a deployable Web archive (WAR) as follows:

 ant install.db.schema
ant build.war



Deploy the resulting Web archive file (xplanner.war) to your servlet engine of choice and then browse to URL http://your-server:your-port/xplanner/ (using default user "sysadmin" and password "admin") to inspect the results!

Integrating with your ecosystem

Most development environments already contain a bug-tracking system, collaboration forums, security systems, standards repositories, etc. Although useful as a standalone tool, XPlanner's value can be enhanced via its simple and powerful integration features. XPlanner includes, for example, the ability to support rendering of developer speak in a description field, such as bug:1001 as a link to http://mybugzilla/show_bug.cgi?uid=1001. This can be done by simply adding twiki.scheme.bug=http://mybugzilla/show_bug.cgi?id= to the xplanner.properties file. This same technique can be used for other Web-based tools such as viewcvs (xplanner.properties shows some other examples). XPlanner also features an advanced wiki formatter (not used on our project) that allows automatic linking to wiki entries. More information on XPlanner extensions can be found in Resources.

In most organizations, invariably, some form of LDAP (lightweight directory access protocol)-compatible directory server provides a centralized repository of user security accounts. For example, within the organization sponsoring our project, an old-fashioned but functional LDAP server served this purpose (Microsoft's Active Directory also largely supports the LDAP protocol). It was refreshing to find XPlanner's simple XPlannerLoginModule easy to integrate with LDAP. This involved updating xplanner.properties as follows:

 -> Comment out default security
#xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=


With a quick rebuild and deploy, XPlanner authentication security was fully integrated. The only drawback was that usernames still needed to be explicitly added into XPlanner, but at least password and group membership hassles became the corporate helpdesk's problem.

Team, meet XPlanner

XPlanner views a project according to iterations, user stories, and tasks. As prescribed by the Agile paradigm, any XPlanner-managed project is planned and tracked according to a successive series of iterations. Each iteration consists of a start date, an end date, and a collection of user stories to be engineered from story to reality within that timeframe.

A user story is the chief conceptual tool used in agile development to communicate customer needs to software developers. Once a user story is assigned to a current iteration (as part of release-planning via XPlanner), the developer seeks further details for each story by collaborating with the user (hopefully face-to-face). This step's outcome is a detailed series of development tasks, each of which the developer registers in XPlanner against the relevant user story.

We chose our e-commerce workflow project to run with monthly iterations, each consisting of around 10 stories, with 10 to 15 tasks assigned to each story.

Harvesting user stories

Each user story for a project iteration should be a short and outcome-focused description of a user experience as told in the first person (e.g., "I then search based on color..."). This experience is penned by a user who is envisioning the ideal future product in action, so you might think of a user story as positive visualization for software! The goal of each visualization is to provide enough information for a software developer to estimate the effort required to make that story a reality.

XPlanner catalogs your project's collection of user stories, while recording a customer, tracker, priority, and effort estimate against each one. The chief difficulty we often find is the harvesting of high-quality user stories from the minds of system users. This was certainly the case for our project, as it was a significant paradigm shift from the rigid section/subsection requirements the users were accustomed to. However, the ability to use XPlanner to manage stories such that they could be easily seen and updated by stakeholders, and to be quickly traded in and out of a given iteration, certainly helped. One nice, if not functional, feature of XPlanner is the authentic feel it gives a user story, displaying each on screen as a look-alike 3-by-5 index card, as shown in Figure 1.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comments (2)
Login
Forgot your account info?

easy to useBy Anonymous on May 27, 2009, 3:10 pmXPlanner is very easy to use, but not so easy to install for non-technical people.

Reply | Read entire comment

better to go hostedBy Anonymous on October 17, 2008, 8:04 pmxplanner was very difficult to use; we used a combination of SaaS like Rallydev and GatherSpace.com.

Reply | Read entire comment

View all comments

Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources