www.agile42.com                 the ultimate answer to agile                 ende

Login
Login or Register

This single page describes the full Scrum Framework. It gives a quick overview related to Scrum Master, Sprint Planning, Burndown

"The experience and professionalism of agile42 during the analysis and optimization..." (Marco Kisperth, CIO, Hypoport AG)

"The motivation in our teams increased and we generate a much faster ROI."

Götz Bernhardi, CEO, Aquin Components

Information, Experiences and Fun - that's what you can expect at the Scrum Roundtable in Berlin.

The clear and easy-to-understand processes of Andrea Tomasini from agile42 played a major role in increasing the "Go to Market"

Download > Sample Configuration

Sample Configuration & Customization

This section contains example and indications to configure and customize Agilo for Scrum:

General Configuration

Trac comes with the built-in capability to support customized fields for a Ticket, you can define your own fields creating a [ticket-custom] section into the trac.ini. For Agilo to work properly you will need to define the following:

NOTE: For "upgraders" be aware that the burndown table on the database is changed, you will have to perform an alter table or drop the table and let agilo recreate it for you. The table schema changed, renaming a column from date to day cause was clashing with some database specific functions. If you want to migrate the configuration from the previous version of Agilo, just edit your trac.ini file and replace the following: charts is now agilo-charts, links is now agilo-links, filteredticket is now agilo-types. Once you changed the sections, run the trac-admin <env> upgrade (--no-backup) and only the new keys will be added to the existing sections.

[ticket-custom]  
drp_resources = text  
drp_resources.label = Resources

This field will contain the comma (,) separated list of users working on a task, it will be used by Agilo to calculate the workload for each resources within each Sprint. In case there is no owner assigned to a Task and resources are specified, the first resource in the list is promoted to the owner.

i_links = text
i_links.label = Referenced By
linking_src = text
o_links = text
o_links.label = References

These fields are needed to store information related to the links between different tickets. More specific information on how to configure the agilo-links plugin are here.

rd_points = select
rd_points.label = RD Points
rd_points.options =  |0|1|2|3|5|8|13|20|40|100
rd_points.order = 4
rd_points.value =

The rd_points field represent the User Story Points or Ideal Days that will be needed to complete and ship a specific User Story. If you want to know more about User Stories and their inventor Mike Cohn visit his website http://www.mountaingoatsoftware.com. The example uses the traditional Fibonacci-like non-linear sequence for Story Points, if you want to use Ideal Days, you can change the field in text and leave people free to put whatever number in it... or define your own sequence.

remaining_time = text
remaining_time.label = Remaining Time

This fields represent the Estimated Remaining Time to complete a Task. It should be updated by the resources working on a task, or by the ScrumMaster.

agilo-types Plugin

The agilo-types plugin, enables you to really define Ticket Types and show for that Ticket Type only some specific fields, beside the mandatory ones. To configure this plugin you will need to add the following section to your trac.ini:

[agilo-types]
bug = milestone, owner
task = drp_resources, remaining_time, milestone, owner, 
story = owner, milestone, rd_points, reporter

On the left side are the defined Ticket Types (remember to create them using Trac admin interface or WebAdmin). For support Scrum you will need at least the following types: bug, task, story, if you want you can add also impediment so the ScrumMaster will have something to track impediments as well.

Agilo supports now also the definition of aliases for the ticket types, in some situation you make like to rename story, requirement, task, and bug to your specific needs, without breaking apart agilo. To do this you can now use the alias extension in the agilo-type sections as follows:

[agilo-types]
bug.alias = Something to correct
requirement.alias = Something to make
story.alias = User Story
task.alias = Something to do

The agilo-links plugin, enables you to enforce a bit of structure on how to handle ticket dependencies, and allows you to define which kinds of links are allowed and which not. Moreover the agilo-links plugin offers some more functionalities to calculate aggregated property's values out of all the referenced tickets. To enable the agilo-links plugin you will need to add the following to your trac.ini:

[agilo-links]
allow = story-task, bug-story, bug-task
bug.task.calculate = remaining_time=sum:remaining_time
bug.task.copy = milestone, owner
bug.task.show = remaining_time, owner
story.task.calculate = remaining_time=sum:remaining_time
story.task.copy = milestone
story.task.show = remaining_time, owner

The allow keyword define which pair of links are allowed, any other pair will not be allowed. This means that you will be able to create links only between story and task and in this direction, because the links are directional, the left side is the source and the right side is the destination. This reflects also the link search (in the Edit pane of a ticket) that will restrict the search only to the ticket of the right type.

The other properties should be read in the following way: source.destination.copy = [list of fields], means that when a linked item will be created, automatically all the listed fields will be copied from the source of the link to its destination. For example:

bug.task.copy = milestone, owner

means that when creating a linked task from the Edit pane of a bug, the fields milestone and owner will be copied from the bug to the task. The calculate property: source.destination.calculate = [source_property]=[operator]:[destination_property], means that the defined source_property will not be read from the ticket, but calculated, using the operator from all the destination_property of the linked tickets. For example:

story.task.calculate = remaining_time=sum:remaining_time

will calculate the remaining_time of a story (not that according to our configuration the remaining_time is not at all a story field) as the sum of all the linked tasks remaining_time.

Since Agilo 0.6 RC4 there is also the source.destination.show = [list of fields], that let's you specify which fields to show in the link preview on a ticket page. For example, if you are in a User Story, you can decide which fields you want to see on the linked tasks, assuming you are interested in remaining_time and owner of a task, than you will have to write:

story.task.show = remaining_time, owner

The reason why it has been made configurable is to allow you the flexibility of showing any custom field you define in your specific meta-model definition.

Another new feature of Agilo 0.6 RC4 is the possibility to configure the links cache, that by default is set to cache links endpoints for 1500ms (1,5 sec.), and is set to cache also all the related first level tickets. There are now two new parameters for the cache in the agilo-links plugin:

[agilo-links]
cache.timeout = 0 #milliseconds to cache timeout
cache.related = False #disable the caching of related tickets

The cache.related basically prefetch into the cache the next level of links if available, to serve it very fast when navigating to the next ticket. The prefetch also increase the performance of showing the optional fields on the link to other tickets. If you experience problems with the caching, like links disappearing and reappearing, than disable the cache. To be sure it is a cache problem, and not your browser cache or your proxy cache, reload the page first ;-)

Since Agilo 0.6 RC6 the attribute source.destination.sort = [list of properties] has been added. It sorts the outgoing links visualized into a ticket page. The default sorting is done by ticket summary, but the sorting is stable, therefore you can add additional parameters. For example the following configuration:

[agilo-links]

...
requirement.story.sort = story_priority:desc, rd_points:desc

would sort the outgoing links of type story into a requirement ticket page first by summary, than by story_priority (decrescent), and finally by rd_points (decrescent). Since this version, the requirement as been added as a standard type and the property configuration is now done automatically. If you are upgrading from a previous version, remember that agilo will not override the properties already set, but will had the new ones. To avoid problems, we suggest you to create a dummy project, configure the component section to load agilo plugins, and run a trac-admin upgrade. This will update the trac.ini file with all the new settings, than you can marge them into your real project configuration.

agilo-scrumdashboard Plugin

This plugin is creating an overview page with all the links related to Scrum specific functionalities, so that the user of the system will be easily able to perform the most common operations. For example on the Scrum Dashboard you'll find the following shortcuts:

In the dashboard there are now some statistical charts showing you at a glimpse the Burndown chart for the current sprint (calculated based on the next due milestone) as well as statistics on the number of planned and closed tickets. Resources load is also provided to help the team understanding very fast if there is a particular team member that is too much loaded with work.

agilo-charts Plugin

The agilo-charts plugin is used to generate images at runtime, in particular is used to generate the Burndown chart and the statistical charts for a specific sprint. The plugin is using three external libraries, that you should make sure to install before being able to generate any chart. These libraries are:

that if you are lucky will be installable directly from your command prompt using the easy_install utility:

$ easy_install numpy PIL matplotlib-maintenance

For windows platform there are pre-compiled versions of both libraries, particularly important is to download one that is compatible with your Python distribution and contains the AGG backend (used by the plugin to generate antialiased PNG images, with easy_install should work fine).

In case the easy_install program will give you trouble in installing the above library, in particularly the PIL complaining about an unmatched required version, try the following (thanks to Tibor Gemes):

$ easy_install --find-links \
http://www.pythonware.com/products/pil/ Imaging

For matplotlib you can also help easy_install to find the right version in the same way:

$ easy_install --find-links \
http://sourceforge.net/project/showfiles.php?group_id=80706 \
matplotlib-maintenance

Please remind that you will NOT need the latest version of matplotlib (0.98.*) but the matplotlib-maintenance (0.91.4), so if you have a linux distribution, make sure the distribution package is the right version, or install using easy_install as described above.

The Chart plugin can be configured to display images at a specific size, so that it will better fit to your company screen resolution. For example:

[agilo-charts]
burndown.height = 480
burndown.width = 1080

will generate images 1080x480, keep in mind that depending on the layout you are using (for example with agile42 theme, see ThemeEnginePlugin for more details) it may result in page scrolling, and limit usability. These sizes are used as a standard, in case there will be no specific size paramaters on the URL (you can add width= and height= to specify the width and height in pixels).

Since Agilo 0.6 there is also a Wiki Macro available, that let's you embed charts into the wiki pages. To use it add the following into your wiki page:

[[AgiloChart(<chart-type>, <milestone>, [<width>x<height>])]]
The available <chart-type> are:
    burndown
    sprint_tickets
    sprint_resources
The <milestone>:
    has to be limited by "" in case it contains a space in the name,
The <width> and <height>:
    are integer expressing the size in pixels

The Burndown chart generated will show the Sprint elapsed time, highlighting the weekends with a silver background, and showing the ideal burndown line (excluding the weekends), the actual burndown (calculated also during the weekend, in case someone is working) and the average trend with one day of forecast, showing the tendency given the actual burndown rate.

©2007 agile42, all rights reserved | last updated: September 20, 2008 | Imprint