Friday, March 28, 2008

Modelling processes to scale

Tasks in process models come in varying sizes. There is a key distinction that divides tasks in process models into two classes: is this task at the "plannable" or "sub-plannable" level. Plannable tasks appear on plans, Gantt charts, burndowns and crucially time-sheets. They are the kind of tasks that take from several hours to days or even weeks. Plannable tasks are the trackable planned, estimated and costed elements in xProcess. However in some processes we wish to define (and monitor) tasks at the sub-plannable level. For example if my tasks is to distil a certain compound from ingredients (in a chemical process), the steps in the process may need to separately defined and tracked to ensure quality compliance. xProcess provides a mechanism to support this in the "Gateway Type". While these steps form only a simple sequence in v2, we've recently been experimenting with a richer model for gateways that will allow the same kind of forms - selections, collections, iterations and sequences - that are supported in plannable tasks through the composite structures. Together these facilities make a continuum of process modelling from from large to small scale.

Saturday, March 22, 2008

Better Faster Audit

I've recently been asked to outline the structure for our process audit service offering at xProcess Europe. The product is called the "Better Software Faster Process Audit" and is based on the structure of Dan Haywood's and my book of the same name(Better Software Faster). It covers 7 crucial aspects of any software development process:
  • The last step - Build and Deploy
  • The first step - Modelling and design
  • The stakeholder step - Requirements
  • The controlling step - Management
  • The continuous step - Quality measurement
  • The micro step - Development
  • The macro step - Architecture
Starting with the last step usually throws people, but given one of the key criteria for improvement is agility, it makes sense to start with seeing how close a team is to fully automating their build and test suite. There's no excuse for not fixing this area if you're using languages like Java or C# but with some older languages it can be tough to provide continuous integration for every change made by a developer.

Quality Measurement is another related area which is sometimes overlooked. Every team has some means to assess quality. For some teams "release the product and monitor the bug reports" seems to be their preferred way of working. Not recommended!

Thursday, March 06, 2008

EVM and Agile Processes

I am presenting a paper on EVM and xProcess next week at the 2nd EVM Conference in Birmingham, UK. I’d love to see you at the conference but if you’re not able to make it and would like a copy of the paper you can download it now from the xProcess Europe or Ivis web sites. Here's the abstract...

EVM and Agile Processes – an investigation of applicability and benefits

Earned Value Management (EVM) is a technique for understanding the degree to which a project is following a plan. A prerequisite for EVM as traditionally applied is therefore a stable baseline plan with a fixed scope. Agile processes for software development by contrast are designed to be responsive to a changing environment and enable discovery of requirements through their lifecycle. Agile plans are rarely stable or of fixed scope. However both approaches share the goal of producing plans that provide stakeholders with immediate feedback on the daily progress of projects and they share common needs in understanding and reporting progress and productivity. In addition the fact that agile processes map requirements to plannable tasks means that requirements may change without invalidating the baseline for progress reporting. This paper reports on work to develop tool support based on the xProcess process and planning product to apply EVM to agile processes. It shows how the metrics for schedule and cost efficiency can be modified for compatibility with agile approaches, and how they help effective management of agile projects, particularly when supplemented with tool support for project forecasting and monitoring.