About PI News
  - Mission
  - Staff
  - Contact Us
About Us
Subscription
Themes Calendar
Author Guidelines
Article Index
Archives
Feedback




Software Process Improvement and Automation

Rajesh Sharma, Quality Manager

Over the years, the software development has evolved from just being science to a combination of “art” and “science”.  Today’s software development environments follow lifecycles with phases that are either sequential or parallel.  This has highlighted the significance of establishment and institutionalization of the lifecycle supportive processes.  This paper discusses the need for automated assistance for these process management activities.  It will also highlight the considerations for an automated system for processes and the benefits that can be realized.

Software development is a complex human activity which makes it more challenging to perform and implement process improvement effort in the software and/or applications development lifecycle.  It involves close cooperation between diverse groups of people on the project team.  In order to maximize the impact of process improvement efforts and increase productivity, product quality, and processes predictability, institutionalization, and performance,   automation of the organizational processes is essential.  Automation of process improvement offers a more structured way to enforce, track, audit, and report compliance of organizational standards and policies during assessment.  As a result, the project team is presented with the needed documents that the team is expected to be produce as the project progresses from one phase to another in the lifecycle.  This also aids in contribution of the appropriate metrics and assets to the corporate asset library.

Historically, there have been many tools and techniques intended to increase productivity and quality. These tools and techniques have been used in software development with some success. However, the benefits have been incremental. What is needed is a more holistic approach, one that can be used by project managers, developers, designers, analysts, testers, quality assurance, configuration managers, and stakeholders alike, to yield repeatable, predictable results and alleviate the churn that dealing with chaos can cause. Watts Humphrey, the recognized father of CMMI,felt that to attain this approach, there is need to provide more advanced tools, techniques, and management, but that it would take sound process automation to achieve required process improvement objectives1. Applying process improvement principles without a great deal of automated assistance can provide the essential basis for process improvement, including repeatability, predictability, and a greater awareness of the activities and deliverables. However, a software development lifecycle that includes an automated process improvement system can provide a more consistent and repeatable basis for process improvement.

Automating Process Improvement

Automated Process Improvement encompasses all work of the entire development team throughout a project, including items traditionally thought of as components of project management, metrics, quality management, and others. This larger scope more accurately reflects the concepts of process maturity 2 and the CMMI3, and ISO 90004 standards. Historically, process management has been basically concerned with the application- oriented deliverables in a project (e.g., data flow diagrams and modules), their status (e.g., in progress, percent completed), and their related activities.

Project management, in the traditional sense, manages the details and constraints within a project, who has to perform which activity in the context of a task, and when. By use of project management techniques, task plans for a project are established, including estimates for resources and effort needed, schedules to be met, and quality to be achieved. The aspects of planning, tracking, measurement, and recording are facets of project management. Separation of such facets into independent management domains (process or project) is the traditional response to the lack of an integrated development environment with respect to the definition of its process. This integration from a process perspective will enable us to achieve the goals of producing higher- quality deliverables and increasing productivity by having development teams consider their work efforts from a broader perspective, including quality assurance, tools and techniques, and training.

Suitability of tools and functions for integration

Guidelines have to be defined for an improved generation of tools that will support new requirements and that will evolve over time. It is conceivable that the requirements for full integration of all aspects of a quality system pose substantial problems beyond the capabilities of many of today’s tools. Enhancements to existing tools or the development of new tools may be needed. Tools can be imbedded in tool shells that present a consistent interface to the user, provide interface adaptations for invocation and parameter passing, and provide access to additional help information for the process context. These shells can also support dialogs for situations in which developers have to provide additional information required by the process, but not provided by some tools.

Some aspects to be considered in determining the suitability of tools and tool functions are:

  • Adequacy of the function set according to requirements
  • Ability to invoke tools with parameters for specific functions
  • Ability to accept information about input deliverables
  • Ability to deliver information about output deliverables
  • Provisions for measurement data about output deliverables
  • Provisions for measurement data about function execution
  • Provisions to return information about function completion
  • Ability to provide text output for project documentation

A tool for automating process improvement should have the following features or capabilities to meet the needs of everyone on the team:

  • Role- oriented work guidance
  • Role- oriented viewing of project and work products
  • Appropriate reporting and documentation at the right time
  • Role based communication and notification
  • Ease of use by the project team
  • Collect and report project and organizational metrics

Benefits of Process Automation

A highly automated process improvement system imposes constraints and puts additional requirements on many of the existing tools and requires additional enablers for process integration, process navigation, deliverables housekeeping, process and deliverables quality analysis, and the like. What are the benefits that justify such an effort and investment?

  • Enabling people
  • Enforcing processes
  • Monitoring progress
  • Quality deliverables
  • Process quality and productivity attributes
  • Continuous improvement
  • Process audits
  • Real-time reporting
  • Real-time communication

Summary

Development organizations and the global emphasis on quality (as embodied in ISO 9000, CMMI, Deming, and Humphrey) require that we improve product quality, process quality, and productivity, both in our internal development efforts and in development solutions we offer to our customers. To effectively address this requirement, we need to begin with an environment in which we can depend upon predictable, repeatable processes, while integrating existing tools, methodologies, and technology. The automated process improvement environment offers an industry best practice methodology, metric collection and analysis, project management techniques, and process management principles in a cohesive manner.

To implement such a comprehensive solution manually and yield incremental improvements can be an expensive exercise with low confidence level.  However, an automated solution will jumpstart your organization's process improvement effort and ensures achievement of true process improvement. True Process Improvement can only be realized by continuously monitoring, evaluating, and adjusting the overall process. At the same time, automating the over- whelming tasks of metric collection and analysis, deliverable tracking, and work status monitoring will increase productivity by alleviating this overhead work of the project team.

In a total quality management and process improvement environment, automation becomes the only realistic way to handle the large amounts of data and data analysis required to effectively perform continuous process improvement. A high degree of automation will help to provide the project team with processes and work products optimally tailorable to specific project roles and enable them to be more creative in producing quality products that meet the needs of project stakeholders.

Rajesh Sharma is currently the Team Manager for Quality Management and Product Development Manager for Software Engineering Services.  He has over 10 years experience in workflow processes and is Lead for Metrics Analysis Team at SES. Trained in business processes, process improvement concepts, organizational behavior, business, and managerial accounting. He has lead product development groups in the arena of process automation. Expert in system analysis & design, database management and development. Experience in establishing business partnerships and professional training program. As Workflow Process Specialist, involved with process improvement projects. Working with Serena’s “TeamTrack” tracking tool that integrates with MS Project to manage and track projects progress. He has managed and worked with Quality Assurance team to concentrate on improving processes and attain Level 3 CMMI certification. He has taught several courses as an adjunct faculty with Bellevue University for College of Professional Studies and College of Arts and Science.

Bibliography

  1. W. S. Humphrey, Programming Process Management, Technical ReDort TR00.3320, IBM Comoration (December 12, 1984); p. 2.
  2. W. S. Humphrey, Managing the Software Process, SEI Series in Software Engineering, Addison-Wesley Publishing Co., Reading, MA (198911990).
  3. Capability Maturity Management Integration (CMMI), SEI
  4. International Standard IS0 9000-3, Guidelines for theApplication of IS0 9001 to the Development, Supply and Maintenance of Software, International Organization for Standardization, Geneva (1991).

Write Your Process Article Contest

You may
WIN A FREE IPOD

Have you had a successful experience in automating processes?         

We want to hear from you!!!

Send us your article about Process Automation and Process Improvement initiative you were able to accelerate.  

Copyright 2006 Software Engineering Services Maintained by: SES ISD WebMaster