Agile (tools) for the enterprise?

I was speaking with a colleague today who's working as a scrum master on a project with another customer. While we were discussing on how we both look at project metrics and related subjects, the subject of tooling was touched. They used ScrumWorks at that project and were quite happy with it.

After walking through the tool and specifically the features that dealt with organising releases, projects, etc. I found the tool lacking on one part, like all the others I've seen and/or evaluated; My current client is an enterprise organisation that has hundreds of employees that work on the software development, due to control of the environment works with fixed date releases and has multiple programs and projects running simultaneously.

What I would like is a tool where I would be able to manage the interdependencies of programs, projects, applications, application chains, releases and preferably even resourcing of the overall development effort of the company.

I started to discuss this with my colleague and drew a very high level relationship diagram, dividing the relations into 3 groups;

  1. Project organisation
    • A program has N projects
    • A project has N teams
    • A team has ~5 +/-2 core members
    • A team has 0:N members that are brought to the team for a single task
  2. Chronological organisation
    • A Release consists of 1 to N projects
    • A project can consist of N project phases (prince2) and each phase can consist of N sprints
    • A project consists of N sprints
  3. Technical organisation
    • An application chain (by lack of wording; the chain of applications, that together provide the business functionality) consists of N applications
    • An application can be part of N application chains
    • An application can be modified/build in 1:N projects
    • An application chain can be modified/build in 1:N projects

This was just the 5 second version on paper. When I got home I got interested in the relations and this is my initial view (it's not 100% correct, since the relations between programs and other parts are bigger, but out of sake of simplicity I decided to model from the project part outwards):

  • A program consists of 1-N project
  • A project consists of 1-N teams
  • A project can be part of 1-N releases
  • A project consists of 1-N sprints
  • A project can work on/influence 1-N application chains
  • A project can work on/influence 1-N applications
  • A project can have time-related dependencies on 1-N projects
  • A team works on 1-N sprints, 1 at a time
  • A team consists of 1-N core members (which can change over time)
  • A team can have 1-N temporary members added and removed to execute single, specialised tasks
  • A team works on/influences 1-N applications
  • A team works on/influences 1-N application chains
  • An application chain consists of N applications
  • An application chain is deployed in 1-N releases
  • An application chain is created/modified in 1-N sprints
  • An application chain is worked on in 1-N sprints
  • An application is deployed in 1-N releases
  • An application is created/modified in 1-N sprints
  • An application is worked on in 1-N sprints
  • etc.

So far I have a lot of N:N relations and dependencies where teams can work on the same application for the same release. Not to mention all further dependencies for teams on sprints of other teams, etc.

What I need for my client is a tool where you can manage multiple product backlogs (for different businesses within the corporation), assign them to different programs and/or projects, model the dependencies on applications, projects, etc. Then have the dependencies calculated between the projects and applications, teams, resources, etc. And keep a history of everything for performance tracking purposes. All of this, just to generate a single release planning, get a simple management dashboard that gives the status of every project at any moment in time and shows problems with dependencies, resourcing, etc.

So far I haven't found a single tool that is able to do this.

Which makes me wonder; how do parties like Nokia deal with this and do they deal with it? Do they even have things like project portfolio management implemented on board/director level to steer the company operationally on a consistent level that is in line with the company goals?

In other words; is Scrum really being used in the enterprise?

Comments (4)

  1. Victor Szalvay - Reply

    August 13, 2008 at 7:41 pm

    Hi Barre,

    Thanks for this write up and for your feedback. I am the Product Owner of ScrumWorks Pro and I'm happy to say that we are currently working on features to address exactly the issues you've outlined. I can't get into the specifics yet, but suffice it to say we are looking at cross-Product Releases, cross-Product Themes, and the many-to-many relationship between Products, Programs, and their constituent Teams. We will also address interdependence issues in release planning.

    Until lately, the stumbling block for tool makers like us is the lack of feedback from big enterprises trying to do Scrum. Now that more and more companies are going this direction, we are getting valuable suggestions on how to build an effective tool. We hope to provide these tools in the next release of ScrumWorks Pro.

    Best regards,
    -- Victor Szalvay

  2. Markus Kohler - Reply

    August 14, 2008 at 10:48 pm

    Hi Barre,
    I can confirm that big companies use Scrum.
    And yes dependencies between projects are a problem.

    Really big companies often build their own tools 😉

    On the other side it can help very much too only depend on interfaces. Then in the beginning stubs for these interfaces can be implement.

    This is probably necessary in large projects anyway because otherwise there would be too much people waiting for something to be delivered.

    Regards,
    Markus

  3. Martin Schapendonk - Reply

    August 19, 2008 at 1:19 pm

    Hi Barre,

    Interesting... there are quite some articles and books about scaling Scrum from the team's perspective (multiple teams, Scrum-of-Scrums), but there's not so much info about scaling from the Product Owner's perspective (program management, multiple projects).

    Certainly no trivial task to catch all these relationships in a tool. Furthermore, what problem are you trying to solve? If there are too many programs, projects, teams, and dependencies to keep track of things, maybe it's just time to cancel a few? 🙂

    Martin

  4. Marion - Reply

    September 2, 2008 at 2:22 pm

    Hi there,

    I would like to suggest you another tool for Scrum. It's called Agilo for Scrum, and it's based on Trac. The good thing is that it's open source 🙂
    Here you can find out more: http://www.agile42.com/cms/pages/download/

    Have a nice day
    Marion

Add a Comment