Express - Agile Project Management
Adam Boas, http://www.oneadam.net/
Express is an agile project management tool focused on iteration and backlog management. Express is designed around the Scrum approach to Agile Project Management and supports stories with tasks. It is a highly usable application that allows users to quickly become very productive for product backlog management and sprint planning. Developers and other stakeholders are able to track the progress of each iteration using the iteration burndown chart and a virtual wall which shows each story’s tasks moving through the various stages from open, through in-progress and test, to done.
The server component of Express is a Spring based Java application which provides all the scalability and reliability of applications built on this robust platform. For those technically minded the underlying persistence technology is Hibernate’s implementation of JPA. The client component is a Flex 3 Rich Internet Application (RIA). This provides an immersive and intuitive user environment quite unlike many HTML based solutions to this problem.
Web site: http://agileexpress.sourceforge.net
Version Tested: 0.7.5 deployed to Tomcat 6.0.20 with Postgres 8.4 on OS X
License & Pricing: Open Source (Mozilla Public License 1.1)
Support: Sourceforge trackers and mailing list
The Express server component will run on any server that runs Java 5 or above. Typical deployment is to Tomcat 6.x and the developers test on Tomcat 6.0.20 and Jetty. The application comes as a Java web archive (war) file. The currnet version is called express-0.7.5.war and because of the way the flex client application is compiled, it needs to be deployed at the web root of the container. For Tomcat, this means renaming the war to ROOT.war and putting it in the webapps directory.
Express requires a relational database. It comes with drivers and configuration settings for Postgres and MySQL. It is configured for Postgres by default out of the box (see configuration details below for how to change this). It also requires access to a mail server for sending notifications such as registration confirmation and project access requests.
Documentation is not extensive. Basic documentation exists on the project website and is available as web pages in the installed application. The application is very focused on backlog and iteration management, and for people familiar with Agile and Scrum, using Express is fairly self-explanatory.
Most configuration settings are in the application.properties file, which is located in the classes directory under the WEB-INF folder in the exploded war. There are entries for both Postgres and MySQL databases, by default the MySQL entries are commented out with a ‘#’ at the beginning of the line which enables Express to use Postgres. To use MySQL you comment out the Postgres lines and remove the comment marks from the MySQL entries. In most cases, assuming the default database name of express is used, the only items that need to be changed are the hostname for the database (localhost) by default, and the username and password to access the database server.
The database name in the screenshot below is express. You will need to create a database called express and make sure that the user you define has permission to create, remove, and alter tables in that database. When Express starts up the first time it will create all tables and sequences required.
The applicationUrl property (shown above with the value http://localhost:8080 ) needs to point to the URL of where you have installed express. This URL is used in email notifications sent by the system. It is important so that registration confirmations can be sent and validated to give users access.
Mail settings are also required for notifications to be sent correctly. Username and password fields in mail will be ignored unless mail.authenticate is set to true. For mail providers like Google, who require an SSL connection, some further editing needs to be done in the applicationContextNotification.xml file shown below.
Uncomment the 3 lines commented out above. For those unfamiliar with XML commenting, uncomment means removing the !—characters directly after the < at the beginning of the line and the -- characters directly before the > at the end of the line.
Express has 2 main screens for daily use: Backlog management, and Virtual Wall. Additionally there are screens for Project creation and managing user details, but a typical user will rarely visit these.
The Backlog management screen is designed for creating the product backlog for a project and allocating the stories from there into iterations, where they will be worked on. Stories can be simply allocated to an iteration, either singly or in groups, by dragging them over into the iteration backlog. Tasks can also be added to stories here and both stories and tasks can be edited to groom the backlog and fill in missing information such as effort estimation, prioritization and grouping in themes.
Beside the project backlog and iteration backlog lists is an accordion panel that has project summary information and iteration summary information. In the project summary panel, besides a useful summary of the project information and access to the velocity comparison chart, users can find controls to export the product backlog to CSV, manage User access and permissions on the project as well as managing project themes. Themes allow the grouping of stories and tasks arbitrarily. Common usages are to group stories into releases or into functional areas.
The Iteration summary panel contains information about the iteration and metrics associated with it as well as allowing the selected iteration backlog to be exported to CSV or printed to cards. Printing is divided into printing Stories and Tasks so that teams who use different coloured cards for stories and tasks can change paper colour.
- Creates a story in the product backlog (data entry via a modal window).
- Iteration selection drop down, shows all iterations for the selected project
- Option to create a new iteration for the selected project (only available if the user is an iteration admin for the selected project)
- Creates a story in the currently selected iteration backlog
- Project selection drop down
- Project summary – shows information about the project, allows export of the product backlog to csv and management of developers and themes for the project
- Product backlog list. Items can be dragged from the product backlog into the selected iteration and vice versa
- Action buttons allow a task to be added to a story or for a story to be deleted
- Iteration backlog list
- Iteration summary when selected the accordion slides up to display the summary data for the iteration including the iteration burndown chart and allows export of the iteration stories to csv
- Edit project button
Whenever a new story is added or an existing one double clicked the story editing modal window appears. It allows detailed information about the story to be added and, for stories, enforces that the story be described in the usual Agile way: As…I want…so that…
The story editing screen has a second tab for entering acceptance criteria. Each acceptance criteria has a verified field which can be checked by testers when the acceptance criteria has been tested.
The virtual wall is the typical team view. On this screen the stories are displayed on virtual index cards, their tasks are laid out in front of them in their swim lanes (OPEN, IN PROGRESS, TEST, and DONE). Developers then take tasks and move them through the swim lanes until they are complete. Stories and tasks can be edited from this screen as well as from the Backlog management screen.
Story and Task cards have quick menus on them to provide short cuts to commonly used functions such as marking the task as blocked or impeded, taking the task or unassigning it. Stories and tasks displayed on the wall are editable by double clicking them in the same way as they are in the backlog management view.
Swim lanes on the wall are resizable to allow busy swim lanes to accommodate more tasks horizontally and conserve vertical space so more stories can be viewed concurrently on the screen.
The project creation screen allows new projects to be created or for a user to request access to an existing project. New projects are automatically created and project access requests are emailed to the project admins of the project selected. The admin can then either confirm or reject the user’s request.
Express focuses on doing a small set of functions well, and provides a set of extra features around these functions to help speed up these core tasks. The drag and drop functionality in the backlog management area makes assigning to iterations quick and easy. The reports it provides, such as the burndown chart and velocity comparison chart, are very useful and there are more reports scheduled in the product roadmap.
For teams using Scrum, particularly when there are people not constantly co-located, Express is a very useful tool. The virtual wall allows developers and stakeholders to quickly see how the iteration is progressing. The user interface is snappy and responsive and small features like requesting the person a task is assigned to when that task is dragged into the "IN PROGRESS" lane when unassigned really helps to get things done quickly so that developers can get back to developing.
Express is well worth a look for any team developing using Agile. At present it’s use is restricted to those able to install a Java web application but there are plans in the future to release a version bundled with Tomcat to make installation an easier process and lower the barrier to entry.
More Agile, Scrum and Project Management Content