Guidelines for a Process Tool Selection
As most of the process tools are not included as a part of the development and management point tools, there aren’t many tools that can be categorized as pure play software development process management tools. Within the same tool there are certain generic tools that are focused on different development and IT processes. Requirements management, Issues Management, Test Management, Release Management, are some of the multi- application tools that facilitate implementation of multiple processes, and these are becoming more and more popular.
The generic process tools can broadly be categorized into Methodology Specific and Methodology Agnostic. Methodology Specific tools are designed around a specific methodology. The processes embedded in the user interface are implicit and specific to methodology. As every organization modifies its processes to reflect changes, business technology environment have a shorter shelf life. The Methodology Agnostic Process, on the other hand, can implement a wide range of methodologies. Unless it comes with built-in templates, it may take a longer time to implement as it is not designed for any particular methodology. This is the best option for organizations following a proprietary or a modified methodology. An investment in this process tools goes a long way as it is capable of accommodating changes in the business and technology scenarios in the coming years.
Below are a few tips and guidelines that specify the general features and functionalities in a generic Methodology Agnostic Process tool that can be used in Software development and IT Service Management support.
Task Based versus State Based Processes
A good number of development tools use a state based process capability. A state based process is good for a simple process as it allows the process to be at one state alone at a given time. It is difficult to implement this for a complex process that requires parallel activities. A task based process, on the other hand, allows multiple parallel activities in the process. Overall process time can be increased by trying to implement a process with parallel activities using state based process tools.
Manifold Autonomous processes for Each Application
A support of multiple processes is important for certain applications. For a tool that supports multiple independent processes for a single application, it is easier to design, develop and manage different processes in a more structured way.
A Drag and Drop process designer that is visual
It is important to choose visual interfaces that have enough flexibility to implement complex processes. A visual drag and drop interface helps process designer to visualize the process as it is being created, thereby enabling it to be faster and easier to create a process
Task assignments to numerous users based on policies
In a single step, it should be possible to assign single activity to multiple owners. There should be ways to support queuing of tasks, load balancing, task sharing by multiple owners and independent owners of a single task among others and a state based process cannot support any of these needs.
Conditional Branching
This is one of the most basic requirements of a Process tool. A conditional branching in full form allows automatic selection of the next activity based on the complex conditions defined in terms of various variables of a particular item. This routing should be automatically implemented based on the field values.
Integration of quorum based forwarding policy
To move processes forward, multiple parallel activities in a process need to be merged, often. A quorum based merging allows the process to move when pre-defined percentages of the previous activities are completed.
Process Modification without affecting running processes
Processes change in any organization, and there is no single ideal process which can address all needs. Process modification should be possible as the old process continues to be running for the existing items. This allows the managing of the process changes and permits a smooth new process implementation.
Restart process for multiple items
One may need to restart the current items running with this new process, when a process is changed. With advanced tools it is even possible to start at a particular step within the new process rather than at the ‘Start’. Steps which are already done for the existing items need not be repeated.
Process Versioning
For any organization that wants to implement CMMI or similar compliance processes, this is specially needed. It is important to track the changes in the process by tracking the versions just like any change management. A tool which has built-in versioning for the process is a good choice.
Synchronization among multiple processes
The need for this feature is vital in the tools that allow implementation of multiple applications like Requirements Management Tools, Issues Management, Test Management Tools, and Release Management.
It is important to spend some time thinking and discussing the process needs with vendors before making a final selection of the tool for your Application LifeCycle Management. Ignoring this fact may lead to an investment in a wrong tool that may not help the organization.