This article discusses Process tools for Software Development and IT Management and what are the major functionalities, one should look for in such tools. There are not many tools which can be categorized as pure-play software development process management tools. Most of the process tools are included as part of the development and management point tools. For example, a bug tracking tool may have a process automation engine to define the bug fixing process. Similarly, a Help Desk tool may have a process to manage help desk. There are a few generic process tools focused on different Development and IT processes within the same tool. These multi-application process tools which facilitate the implementation of multiple processes like Requirements Management, Issues Management, Test Management and Release Management processes are becoming more and more popular. The generic process tools broadly fall into two categories – Methodology Specific and Methodology Agnostic. Methodology Specific tools are designed around a particular methodology. Their processes are implicit and embedded in the user interfaces which are specific to the methodology. There are a few commercial tools available which are specific to methodologies such as SeRUM, Agile, Phase-Gate, etc. The Methodology specific process tools have an advantage of quicker and more faithful implementation of the methodology. The disadvantage of such a process tool is its limited adaptability, especially when the organization wants to deviate from the strict definition of the methodology. A methodology specific process tool has a little room to incorporate deviations from the methodology it originally intended to implement. Since, over the long term every organization modifies its processes to reflect changes in the organization, business and technology environment, methodology specific process tools have a shorter shelf life. On the other hand, a Methodology Agnostic Process tool is more generic and as the name suggests, can implement a wide range of methodologies. Since it is not designed for any particular methodology, it may take a longer time to implement a methodology unless it comes with some built-in templates. For organizations following a proprietary or a modified methodology, a Methodology Agnostic Process tool is the best option. The investment in a Methodology Agnostic Process tool goes a long way as it should be able to accommodate the changes in the business and technology scenarios in the future years. In this article we will discuss the general features and functionalities we should look for in a generic Methodology Agnostic Process tool which can be used for a wide range of processes in different life cycles.
Task based vs. State based processes
Most of the development tools have state based process capabilities. A state based process allows the process to be in one state alone at a given time. This is good for a simple process, but difficult to implement for a complex process which requires parallel activities. On the other hand, a Task based process supports multiple parallel activities in the process. This allows tasks to get assigned to multiple process owners where each may be involved in doing different things.
Multiple independent processes for each application
For certain types of application development, support of multiple processes is important. For example, a Helpdesk application may have different processes for different departments. It is possible to create a single monolithic process with branches for each different departmental process. However, with 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.
Visual drag and drop process designer
Different process tools have different user interfaces to define the process. The design interfaces include graphical drag-and-drop interface, state tables, spreadsheet-like interface and the ones with different levels of coding and scripting support. A visual drag-and-drop interface helps process designer to visualize the process as it is being created. The process is faster and easier. A visual drag-and-drop process designer also reduces the implementation and maintenance cost of a business process in contrary to the code based process engine.
Task assignments to multiple users/roles based on policies
One should be able to assign a single activity to multiple owners in a single step. In addition, 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. For example, sending a change request to a change board of 5 persons should be achieved in a single step rather than 5 different steps. A State based process cannot support any of these needs.
This is one of the basic requirements of a Process tool that is missing in many tools in the market. Conditional branching capability of a process tool allows automatic selection of the next activity based on the complex conditions defined in terms of various variables of a particular item. For example, an Issue follows a particular path if it is a defect and, a different path if it is an enhancement request. This routing should automatically happen based on the field values.
Merging/Joining with quorum-based forwarding policy
Multiple parallel activities in a process often need to be merged/ synchronized to move the process forward. A quorum based merging allows the process to move when not all but a pre-defined percentage of the previous activities are completed. For example, when a Requirement is sent to a review board of 10 persons, the quorum based merging will allow the process to move forward if 80% of the review results are completed and have passed.
Process modification without affecting running processes
In any organization, processes change with time. There is no single ideal process which can address all needs for ever. One should be able to modify processes as the old process continues to be running for the existing items. This allows the managing of the process changes much easier and allows for a smooth transition between the old and the new process.
Restart process at any time for multiple items
When a process is changed one may need to run the new process for the existing items. With some advanced tools, it is even possible to start at a particular step within the new process rather than at the ‘Start’. This allows users to make the process run for an item from the point till which it has been executed in the previous process.
This is especially needed for any organization that wants to implement CMMI or similar compliance processes. Just like any change management, it is important to track the changes in the process by tracking the versions. So, look for a tool which has built-in versioning capability for the process.
Synchronization among multiple processes
This feature may not be necessary for a single application process tool. However, the need for this feature is critical to a multi-application process tool that allows implementation of multiple applications like Requirements Management, Issues Management, Test Management, and Release Management..For example, a Release Process should wait for the integration Test to start until all the Requirements and Issues included in that Release are implemented/ fixed and unit tested.
Process activities triggering actions in external tools
Most organizations use various development and management tools from different vendors. Due to the lack of integration, and built-in process in most of the point tools, processes gets implemented in isolated pockets of the lifecycle. The process tool should be able to trigger an action in another remote tool and help in achieving cross tool process implementation. As you understand from the above process tool selection criteria, it is important to spend some time thinking and discussing about the process needs with your vendors. Even if your organization is not currently using any defined “Process”, you should do this before making a final selection of ALM tools. Ignoring this fact may lead to an investment in a wrong tool that may not help the organization as it grows and matures in its desire to implement a process methodology.