|
March 1998 Volume 8 Number 3 Guest Editorial: Achieving Quality via Process Configuration Management
By Reggie Phillips The sooner manufacturers realize that there is a way to achieve quality and avoid product recalls resulting from faulty software, the sooner they can take active steps to optimize quality and gain a competitive advantage. This method is called process configuration management. It provides a smart vehicle for managing quality, business-critical software assets from conception to maintenance on multiple hardware platforms and operating systems. Process configuration management involves the critical integration of properly configured software to ensure the correct operation of the product of which it is a part. Products utilizing "types" of software range from airplanes and cars to programmable household items. What process configuration management does is ensure that the software engineers/programmers are not operating in a world of their own but are actually delivering software code that jibes perfectly with the end product to be delivered. As we are all aware, many software products are incomplete or full of bugs upon release. While this is somewhat acceptable for pure software applications (just buy the next update), when that software is an integral part of most manufactured products a buggy software code is unacceptable (the product flat out won't work).
Thus, process configuration management benefits organizations that produce their own applications in-house or those that must modify and maintain third-party applications including, for instance, payroll and customer billing systems. A wide range of manufacturing organizations, regardless of the type of software they develop, can achieve significant strides in their business operations and gain quality through the successful implementation of process configuration management.
Why is this important? Because in informal environments, there are no processes steering development efforts toward successful completion. This can create chaotic situations where unwanted revisions can cause concurrent and parallel team efforts to collide, thereby resulting in faulty software. Such unwanted software changes may occur because communication in these environments is mostly informal, leaving room for ambiguity, confusion and poor quality. Thus, it is challenging for team members to have a clear grasp of what their responsibilities are in the building of a software product or of multiple versions of such a product. In addition, having no mechanisms in place to restrict access to software during any phase of development opens the door for bumpy software production, as unwanted revisions can easily creep into the application being built. Yet another hurdle found in such environments is that managers are not able to effectively take corrective action to keep the development project on course. This is due to the fact that change requests are frequently paper based and can easily be misplaced. Such a labor-intensive approach prevents managers from accurately assessing project status, anticipating road blocks and removing obstacles painlessly. Process configuration management solves these issues and allows manufacturers to produce quality applications on time and on budget. How is this possible? For starters, this discipline introduces formal, repeatable and improvable processes into the development equation. Such processes impose a structure over the project and dictate the way software is to be developed, including the sequence of activities to be implemented. What's more, these processes are automated via advanced configuration management tools incorporating powerful process engines. These cutting-edge solutions ensure that all team players abide by their assigned roles in the life cycle and that only authorized personnel can transition source code, objects and change requests through the various development states.
This strategic approach to achieving quality fosters a winning culture in the development environment because the production of business critical software is under control. It also generates the automatic production of key metrics such as impact analysis and defect tracking reports. In this manner, managers can have instant status information about development efforts; they can allocate resources effectively; and they can easily transfer knowledge gained to other projects.
In such an instance, the reporters would not be able to work effectively in a vacuum or as unconnected islands. Rather, these journalists must be able to orchestrate their work effectively, to compare the changes they are making to the same article, to select the changes that they want to keep, to integrate and to distribute the changes accurately so that they end up with a story incorporating all the changes made throughout the life cycle. To achieve the quality product (the story), there must be a tool in place that automates the entire production process. For instance, a proper project management tool (see sidebar) can automatically route the story to different reporters who have a specific role in the life cycle. It can also prevent unauthorized access to the story so that only certain people who have responsibility for making changes can do so. This protects the integrity of the story. Such an approach also ensures that the processes of the organization are known to all and can be repeated and enhanced for future stories. In this framework, automation saves time-consuming tasks, thereby allowing more room for creativity on the job. In addition, the editor must be able to assess at any given point in time what is the status of the story so deadlines can be met and resources allocated properly to the production of the story. A proper tool will provide a complete audit trail of all activities that went into the creation of the story so the editor will be able to generate instant metrics on how much time it took to write the story, what resources went into it and so on. This approach facilitates all aspects of project management and reporting. If there is no effective project management system in place, this increases the likelihood that the story will be incomplete, include typos or just won't make it into the magazine because it is late. Similarly, software engineers working in parallel and concurrently on the same application must be able to manage their software changes properly so they can deliver a software product on time and on budget.
In this context, the discipline of process configuration management, which allows the proper management of software changes, binds together people, processes and tools in order to ensure smooth teamwork and process work flow within the development environment of the manufacturing enterprise.
The APICS Certified in Integrated Resource Management (CIRM) program focuses strongly on the need for taking a strategic look at how the actions and decisions of a specific department of an organization affect the entire organization. Managers should strongly consider the philosophical advantage the CIRM education process provides. CIRM teaches about the interdependencies and interrelationships that exist throughout the enterprise, making it easier to discern areas of potential difficulty in the implementation of an effective configuration management initiative. In the configuration management context, initial training provides a perfect opportunity to show the team that many labor-intensive and time-consuming tasks can be replaced by automated operation work flow provided by a process configuration management solution. Such tasks include filling out, circulating and keeping track of thousands of paper-based change request forms. With an automated process configuration management system in place, these tasks cannot only be performed effortlessly and quickly, they are also formally documented into the system. The benefit is that software engineers can spend more time on creative programming and less time on paperwork, resulting in increased efficiency, productivity and a higher quality end product.
Educating the software engineering team about the benefits of process configuration management also means emphasizing the value derived from repeating processes and reusing software across different projects. This can be a significant time saver for the team and can allow it to meet deadlines and budgets effectively.
Today, some 400 software engineers at Lockheed Martin Tactical Aircraft Systems in Fort Worth, Texas, use process configuration management to manage the production of all the core software of the F-16 Operational Flight Program. This program is mission and business critical because it regulates the various facets of the fire control computer, the weapons management systems, the targeting systems and many more advanced technologies onboard the aircraft. In this framework, process configuration management plays a major role within the organization's development environment because it allows the software engineering teams to achieve 70 to 80 percent software reuse in managing changes to the multiple configurations of this program. Such a strategic approach to software development has given a unique competitive edge to Lockheed Martin Tactical Aircraft Systems in world markets, while allowing the company to effectively meet the stringent demands of customers in 19 countries. According to James Carver, Lockheed Martin staff specialist, the software process group is in charge of establishing standardized, repeatable and improvable software processes for the entire organization. It is also the responsibility of the training department to provide education and training to software developers so they can be knowledgeable about their roles and responsibilities within the life cycle. This ensures strict adherence to organizational processes and to the ISO 9000 standard. Such in-house training is effectively supplemented by tool education, which is provided in a three-hour class and in one-on-one sessions. It is at this stage software engineers learn that the organizational processes are embedded in the tool and they have been tweaked to accommodate the individual needs of each project. The result of such a carefully crafted approach is an environment where the organizational and development processes are known to all, and the various software engineering teams are in sync to produce 100-percent-correct software. Today, the commercial sector is jumping on the process configuration management bandwagon because it seeks to effectively manage the production of business critical applications and achieve quality. For the manufacturing sector, this is essential because it cannot afford flawed software. The reason: Poor software can potentially affect customer service, productivity and time to market, all of which can make a significant dent in a company's profitability.
|