eXtreme Management getting started

« Return to page index

This tutorial explains the way to setup and use the eXtreme Management tool.

The big picture

Start with the big picture, that explains the mind setting of eXtreme Programming.

If eXtreme Programming scares you or tickles your curiousity, read this tutorial first.

Content Types

An overview of the content types used.

  • Project
    A project can be added by a ProjectManager. For each project offers, iterations and stories can be added by both the customers and employees. You can also add a PoiTracker. 
  • Iteration
    The project will be planned with iterations. An iteration is a period of usually 1 to 3 weeks in which a number of stories will be implemented and integrated in a staging environment. Iterations contain stories.
  • Offer
    An Offer is a special kind of Iteration, with a different view. When making an offer to a client you can add and estimate high level stories here.
  • Story
    The customer or employee can define new features by describing this feature in a user story. Stories contain tasks.
  • Task
    The employees can break down the story into several (developer) tasks. Tasks contain bookings.
  • PoiTask
    A PoiTask is a special task integrated with the Poi issue tracker. With a PoiTracker added to your project you can create a PoiTask within a story and select one or several Poi issues to solve.
  • Booking
    After working on a task, the employee can book his hours. The optional xm.tracker package gives you a time track to track the time for selected tasks during the day and turning them into real bookings at the end of the day.

 

Note: there used to be ProjectFolders and CustomerFolders but in eXtremeManagement 1.6 we added some migration code to turn these into normal folders (see portal_setup in the Zope Management Interface of your Plone Site). There are also Customer and ProjectMember content types but at Zest Software we never actually used them.  If you need something like this, it is better to look at for example Upfront Contacts

.

Roles

eXtreme Management uses additional roles to administrate permission.

  • ProjectManager
    Only Projectmanagers (or site Managers) are allowed to add and modify projects. They are also the only ones who can put an Iteration on invoiced, signaling that a bill has been sent to the customer. They generally have more rights than Employees; for example unlike Employees they are allowed to edit in-progress stories and to-do tasks.

  • Employee
    Employees can add and modify Iterations, Stories and Tasks. You usually want to give each of your developers this role globally so they can work on each project. If your development team is large, you may want to give these only as local roles per project. For assigning local roles, just use the sharing tab on your project.

  • Customer
    The customer can only add stories and submit them for estimating and manage the priority of the stories by assigning them to iterations. This should be a local role given only for that customer's project (anyone with the global Customer role would be able to see all projects from all customers).

Process

The development process is configured in a set of workflows.

UML Model

The diagrams on this page were made with Poseidon for generating the code with ArchGenXML.  We do not do that anymore.  So the diagrams can be slightly outdated; for example, the Projectmanager role did not exist yet when we made these.  The diagrams should still give you a good idea of what is happening.

 

Project workflow

Project workflow

Projects start out in the private state. A Projectmanager (or Owner, but that's usually the same person) can activate a project. Once the project is active, the customer can be involved. When all is said and done the Projectmanager/Owner can also close the project.  Those two transitions are shown in blue, the color we use in all diagrams to indicate that this is the normal route. If you made a transition and later realize you made a mistake, you can go back to the previous state. This is true for most of the transitions in the other workflows as well.

Iteration workflow

Iteration workflow

After adding an iteration, you can start adding stories to the iteration and tasks to the stories. At a certain moment you ought to have an iteration start meeting with the customer, finalising the set of stories. Afterwards, you can set the workflow to in progress, which activates the stories and the tasks. The bright yellow note that grabs your attention indicates a transition that is triggered by another transition.  In this case: if all stories belonging to this iteration have been completed, the iteration itself is set to completed. After this, the Manager can invoice the iteration, which indicates that a bill has been sent to the customer.

A completed Iteration can also be put in new state own-account (not shown) when the customer is not going to pay for it (for example when it is an internal project not belonging to any customer).

Offer workflow

 

The workflow for offers is really simple: just a private and published state.  Customers can only see published

Offers.

 

Story workflow

 

Story workflow

The customer adds a story, describes it and finally submits it for estimation (it now has the pending state). The projectmanager or employee then provides a rough estimate (in days). Then the story can be set to the estimated state. The employees can now add tasks.

Or: an employee adds a story himself, gives it a rough estimate and immediately puts it in the estimated state.

The estimated story is activated automatically when the iteration is activated. This activation also triggers the activation of the tasks. The iteration should only be activated when all stories have tasks and all tasks are estimated (an estimate greater than 0) and have at least one assignee. The workflow protects employees (not project managers) from activating when there are unestimated tasks.

If all tasks have been completed, the story is automatically also completed. If all stories have been completed, the iteration is automatically also completed.

Task workflow

Task workflow

Tasks are added by employees. Like mentioned before, when all tasks are estimated, their parent story becomes startable. When all stories are startable, the iteration can be started. So when you view an iteration and you are allowed to start it, this means that all its stories and all their tasks are also startable. When you then actually click on 'start' then indeed this iteration and all its stories and tasks are activated.

If all tasks in a story are completed, the story is automatically marked as completed.

The special PoiTasks have the same workflow.

Booking workflow

Bookings have a one-state workflow. We are not trying to hide anything, so customers are allowed to view individual bookings.

 

Your first project with eXtremeManagement

What are the steps to take when you create your first project with eXtremeManagement?

  • As Manager Install eXtremeManagement in the Add/remove projects section of the Site Setup.
  • As Manager give a member of your site the Projectmanager role so he (or she) can do all project management tasks. (You can also do all those tasks yourself as Manager.)
  • As Projectmanager give a member of your site the Employee role.  He can now be assigned to Tasks and can add Stories and Tasks himself.
  • As Projectmanager add a Project in the root of the site (or in a folder).  In the workflow dropdown activate the Project.
  • As Projectmanager give a member of your site the local Customer role on this project (if you want to give that customer access to the project).
  • As Projectmanager add an Iteration within the Project. Pick a start and end date.
  • As Projectmanager or Employee or Customer add user Stories (understandable for the client) for functionality that you will work on during this iteration. Give each Story a rough estimate in days and mark it as estimated in the workflow dropdown. (Customers cannot estimate it but should submit it for estimation, after which an Employee should estimate it.)
  • As Projectmanager or Employee add one or more Tasks in each Story (understandable for the developers), assign them to an Employee and estimate them.
  • As Projectmanager in the workflow drop down on the Iteration do the start working transition. The Iteration is now in progress. See the screen shot:

 

  • As an Employee you can now go to a Task assigned to you and book hours you have worked on that Task by adding a Booking. Alternatively, use the time tracker from the optional xm.tracker package to track your time during the day and use that to book your hours at the end of the day. Alternatively, use the Time registration linked to from the project administration portlet. (Hint: for most people the time tracker is the nicest way.)
  • As an Employee or Projectmanager mark a Task as completed when it is completed and you and others have booked the hours worked on it. When all Tasks of a Story are completed the Story itself is automatically completed as well.
  • As Projectmanager at the end of the Iteration go through the Stories and Tasks to see which need to be copied or moved to the next Iteration. Do that and then complete everything.  When all Stories are completed the Iteration is completed as well.
  • As Projectmanager after you have billed the customer you can transition the Iteration to the invoiced state.