The Agile Process Tool is a simple concept for managing software process improvement. It has worked for me as responsible for the software process at an IT vendor, as a project manager and as a developer. It might work for you as well.
Problem scenario 1
You are responsible for implementing a software process in your organization. You want to communicate to staff and management why a specific process would improve your organization's capacity to deliver better, cheaper and faster. You find it difficult to get people involved. Staff seems reluctant to change and management seems to be most preoccupied with costs of licenses for QA tools, CASE tools and so on.
Problem scenario 2
You are a project manager. You must deliver a subsystem before deadline. You must ensure that your team adheres to a number of QA procedures and corporate protocols. How do you make sure that the team knows the protocols and follows them? How do you motivate your team to do the right things and do them right?
Problem scenario 3
You are a developer. You just joined a project. You must deliver working and tested code on time. You must adhere to a number of protocols in doing so. How do you find out what protocols and standards cover your work? Where do you find standards, guidelines and templates for documents and code? Where do you find installation manuals and user manuals for the tools you need to use?
Proposed solution
The Agile Process Tool is a process modelled in a database. The model of a process is described in Alistair Cockburn's book [1]. There are four reasons why you should model your process in a database [2]:
Quality Management tools such as QualiWare are of course more efficient than a simple access database. You will probably need these tools in order to do enterprise-scale software improvement. But if you are in the process of implementing a new process, the purchase, installation and adaptation of a QM tool is a lengthy process. You want to start discussions about your software process before you even make contact to a QM tool vendor.
Draw out process overviews
Reports that show an overview of the process are more suitable for presentation to management than drawings on a whiteboard. The overviews may help you to communicate what the process is about and how the process fits in with your organization as well as possible changes that need to be made to the organization.
Examine the work description for every role
When you present a software process to staff that covers an entire software product lifecycle, you may find that people are looking at their watches or dozing off. In my experience it is more effective to assemble people that are likely to fill out a particular role in the process, and discuss the procedures that are relevant to them. When you show staff their job description it should put a smile on their faces, or at least they should feel that the activities, techniques and tools are close to their primary skills. If not, you know you have a task of cultivating people and marketing the software process.
Make changes to the process
It's important to do continuous process improvement. Whenever the process breaks, you must fix it. I recommend reflection workshops as described in [1] at project kick-off and at regular intervals during a project. Proposed changes to the process can easily be modelled in the database. This means that you can rapidly execute a new process by giving job descriptions to staff. For me, this approach has been a more effective than updating a complex QM tool or intranet site and then publish the entire lifecycle process to staff.
Scope of the Agile Process Tool
The Agile Process Tool database [2] doesn't support diagramming. You will almost certainly need to produce process or activity diagrams that shows lifecycles, sequences, iterations, flow-back and stuff like that. You must create diagrams using PowerPoint, QualiWare or some other tool. You can link to the diagrams from the database.
The Agile Process Tool database [2] will not be sufficient as a Quality Management system. For ISO 9000, you need a hierarchical process description with a strategic section, a description of QA procedures with process diagrams, and work flow descriptions also with process diagrams.
References
[1] Agile Software Development, Alistair Cockburn, Addison-Wesley Pub, 2001
[2] Agile Process Tool Access Database, http://www.conexp.dk/docs/AgileProcessTool.zip
[3] Example Process Overview Report, http://www.conexp.dk/docs/xpplus.pdf
[4] Example Job Description, http://www.conexp.dk/docs/Role.pdf