Methods & Tools Software Development Magazine

Software Development Magazine - Project Management, Programming, Software Testing

 

Click here to view the complete list of archived articles

This article was originally published in the Summer 2005 issue of Methods & Tools


The Enterprise Implementation Framework (EIF): Beyond the IDEAL Model

Sinan Si Alhir, http://sites.google.com/site/salhir/

Introduction

Reality involves two dimensions, time and space, and two natural forces, change and complexity. As organizations progress toward their goals and objectives, organizational improvement and change is a necessity that involves the evolution of people, practices (process), and infrastructure (automation).

This paper focuses on introducing the IDEAL model and the Enterprise Implementation Framework (EIF). The IDEAL model is the Software Engineering Instituteís (SEI) [1] "organizational improvement model that serves as a roadmap for initiating, planning, and implementing improvement actions." [2] The EIF is a holistic approach for achieving organizational improvement and change at the enterprise, community, and individual levels. I derived the EIF as an extension of the IDEAL model; it has proven most valuable in practice. While both the IDEAL model and the EIF may be more generally applied to organizational improvement and change as well as more specifically applied to software process improvement, the emphasis in this article is on software process improvement.

The IDEAL model offers a very pragmatic approach for software process improvement; however, it emphasizes the management perceptive and activities more than the human perspective, which focuses on the community and individual people. The EIF offers a broader framework for software process improvement wherein IDEAL model activities are balanced with the human perspective.

The IDEAL Model

The IDEAL model is a continuous improvement lifecycle model. It provides a roadmap for executing improvement programs using a lifecycle composed of sequential phases containing activities. It is named for its five phases. It originally focused on software process improvement; however as the SEI recognized that the model could be applied beyond software process improvement, it revised the model (designated as version 1.1) so that it may be more broadly applied. Again, while the IDEAL model may be broadly applied to organizational improvement, the emphasis herein is on software process improvement.

Figure 1 shows the IDEAL modelís phases and activities.

Figure 1: The IDEAL Model.

The Initiating phase focuses on initiating the software process improvement effort. The Set Context activity focuses on establishing the rationale (stimulus for change) for the software process improvement effort and the business goals and objectives that will be supported by the changes. The Build Sponsorship activity focuses on establishing management support for the software process improvement effort. The Charter Infrastructure activity focuses on establishing the infrastructure for managing the software process improvement effort.

For example, consider an organization whose customers are complaining that product features are not meeting their needs. Perhaps the product is a Global Positioning System (GPS) with both software and hardware components, a Business Process Management (BPM) system with software components only, an Accounting system, an Operating System, or other type of software (and possibly hardware) system. This situation establishes the rationale for the software process improvement effort with the overall business goal of increasing customer satisfaction by improving the software development process. The various organizational departments, including Marketing, Sales, Fulfillment (including Software Product Development), and Operations (including Support) who are stakeholders to the software development process must sponsor the software process improvement effort and an infrastructure must be established to support the software improvement effort.

The Diagnosing phase focuses on determining the current as-is and desired to-be state of the organization relative to the software development process. The Characterize Current & Desired States activity focuses on characterizing the current as-is and desired to-be state relative to the rationale established in the Initiating phase (rather than focusing on every aspect of the organization). The Develop Recommendations activity focuses on suggesting recommendations for progressing from the current as-is to the desired to-be state of the software process.

For the organization mentioned above, the current as-is state and the desired to-be state of the software development process relative to customer satisfaction must be explored, and recommendations for improving the software development process must be derived for achieving the overall goal of increasing customer satisfaction. Fundamentally, what is customer satisfaction, how is it measured, what are the measures, what are the measurements, what are the root causes of customer dissatisfaction, and how might customer satisfaction be improved relative to the software development process? Recommendations may include changes in the various organizational departments and how they interact with one another, partners, and customers relative to the software process.

The Establishing phase focuses on planning the transformation between the current as-is and desired to-be state of the organization relative to the software development process. The Set Priorities activity focuses on establishing the constraints for the software process improvement effort. The Develop Approach activity focuses on developing an overall approach relative to the constraints. The Plan Actions activity focuses on developing a detailed implementation plan relative to the constraints.

For the organization mentioned above, the constraints for the improvement effort must be explored, an overall approach must be derived, and a detailed plan must be derived. Fundamentally, what constraints bind the overall approach and detailed implementation plan, and what approach and plan satisfy those constraints yet allow for the transformation from the current as-is to the desired to-be state of the software development process? There may be specific budgetary constraints for the software process improvement effort or a specific window of time wherein the effort must complete so that the various organizational departments are not negatively impacted and delivery of the product to the customer is not negatively impacted.

The Acting phase focuses on executing the transformation between the current as-is and desired to-be state of the organization relative to the software development process. The Create Solution activity focuses on creating a multifaceted "best guess" potential software process improvement solution. The Pilot/Test Solution activity focuses on testing (verifying) the software process improvement solution. Verification focuses on "building the solution right". The Refine Solution activity focuses on refining the software process improvement solution. The Pilot/Test Solution activity and Refine Solution activity are iterated as a test-refine process until the multifaceted "best guess" potential software process improvement solution evolves into a multifaceted "satisfactory" actual software process improvement solution. The Implement Solution activity focuses on implementing the software process improvement solution throughout the organization.

A multifaceted software process improvement solution focuses on peopleís knowledge and skills, the organizationís software development processes, and the automation (tool) that enables people to efficiently perform those processes. A "best guess" potential software process improvement solution is usually created by a work group, and a "satisfactory" actual software process improvement solution is reached through iterations of the test-refine process. The work group should work toward an actual software process improvement solution that is "satisfactory" in meeting the goals and objectives of the software process improvement effort rather than simply seeking a "perfect" software process improvement solution.

For the organization mentioned above, perhaps the initial software process improvement solution involves increasing customer follow-up by the Sales department to better understand future product (software and hardware) requirements and increasing the customer support staff in the Operations department to better understand the effectiveness of the software testing and quality activities. However, after piloting this software process improvement solution for a few products, perhaps it is determined that the software process improvement solution is not having a drastic positive impact on customer satisfaction. The software process improvement solution is then refined to include increasing customer interactions in the overall product delivery process performed by the Fulfillment department, including more intense user involvement in requirements gathering and user acceptance testing. After piloting the software process improvement solution and a few more adjustments, it may be determined that the software process improvement solution is satisfactory and may be implemented throughout the organization for various products. Fundamentally, what software process improvement solution works in the context of the specific organization is the satisfactory actual software process improvement solution.

The Learning phase focuses on learning from the execution of the software process improvement effort. The Analyze and Validate activity focuses on evaluating the execution of the software process improvement effort, including what worked well and not so well, and validation of the software process improvement solution. Validation focuses on "building the right solution". The Propose Future Actions activity focuses on suggesting recommendations for future software process improvement efforts.

For the organization mentioned above, lessons learned are captured and analyzed, and recommendations for future software process improvement efforts are suggested.

The Enterprise Implementation Framework (EIF)

The Enterprise Implementation Framework (EIF) is an organizational transformation (improvement and change) process framework. The EIF provides an infrastructure for executing organizational transformation initiatives using a framework composed of phases wherein iterations contain activities. An organization (or enterprise) resides in an industry and is composed of teams (known as the community) which in turn are composed of team members (individual people). Relative to these three levels (enterprise, community, and individual), the EIF is focused on "value" (return-on-investment), envisioning a to-be, considering the as-is, leveraging a roadmap and realizing improvements and change while establishing an environment (best-practices and automation), fostering a culture (values and practices), and transferring knowledge and skills (self-sufficiency) to the community and individual people. Again, while the EIF may be broadly applied to organizational improvement and change, the emphasis herein is on software process improvement and change.

Figure 2 shows the EIFís phases, an iteration, and activities.

Figure 2: The Enterprise Implementation Framework (EIF).

Cycles and Phases

A cycle is composed of sequential phases. Each cycle results in a software process improvement generation. A phase is a major milestone where stakeholders can determine if the software process improvement initiative should continue or be terminated. Cycles establish an approach for implementing software process improvements within an enterprise. Figure 1 shows the EIFís phases (horizontal).

The Initiate phase focuses on initiating the software process improvement effort, including establishing a vision and identifying the community involved in the software development process. This phase generally coincides with the IDEAL modelís Initiating phase for the software process improvement effort. The goal of this phase is to establish a vision and identify the community involved in the transformation. This is usually accomplished during one iteration, but may require more iterations to gain consensus.

For example, consider the organization discussed above whose customers are complaining that product features are not meeting their needs. During the Initiate phase, a vision is established with the various organizational departments and teams who are stakeholders to the software development process.

The Implement phase focuses on realizing software process improvements, including diagnosing and establishing software process improvements (best practices and automation) and acting to implement software process improvements (processes and automation usage models). This phase generally coincides with the IDEAL modelís Diagnosing, Establishing, and Acting phases for the overall software process improvement effort. The goal of this phase is to evolve the vision and realize the transformation, including implementing software process improvements within the enterprise and software process changes within the community. This is usually accomplished across multiple iterations where each iteration involves some set of software process changes being deployed in the organization. For the organization mentioned above, during the Implement phase, the enterprise and the various organizational departments and teams who are involved in the software development process are iteratively transformed as further discussed in the Iterations and Activities section.

The Close phase focuses on learning form the software process improvement effort, including capturing lessons learned and recommendations. This phase generally coincides with the IDEAL modelís Learning phase for the overall software process improvement effort. The goal of this phase is to close the transformation cycle, which may start another transformation cycle. This is usually accomplished during one iteration, but may require more iterations to reach closure. For the organization mentioned above, during the Close phase, the software process improvement effort is brought to closure.

The EIFís cycles and phases offer a very pragmatic general approach which emphasizes a management perceptive of software process improvement.

Iterations and Activities

A phase is composed of sequential time-boxed iterations. Each iteration results in a software process change increment. An iteration is a minor milestone where community members can influence and steer the software process improvement initiative. An activity is a primitive unit of work. Iterations establish an approach for deploying software process change to an enterprise, projects, departments, or other organizational unit using a human-oriented process for achieving sustainable software process change. Figure 2 shows the EIFís activities (vertical) which address the community (left) and individual people (right). Each iteration involves some set of software process changes being deployed in the organization.

The Plan activity focuses on the community and establishing a delivery schedule. The Orient activity focuses on people and introducing mentoring/coaching. These activities generally coincide with the IDEAL modelís Initiating phase for specific software process changes. This activity is generally driven by information pertaining to the overall software process improvement effort and previous iterations while explicitly being driven by the previous iteration.

The Install & Configure activity focuses on the community and installing and configuring the automation (tool). These activities include mentors/coaches delivering automation administration training, establishing the software process and usage model (information for configuring the tool to support the software process), implementing the usage model in the automation, and integrating the automation into the software development environment.

The Establish activity focuses on people and establishing an action plan. These activities include focusing on the current as-is and desired to-be state of the software process considering people, the software development process, and automation; and also focusing on an action plan (localized success plan) to transition capabilities. The plan is composed of activities involving mentors/coaches leading workshops and delivering software process and automation training, supporting project managers and teams (addressing questions, facilitating discussions, and steering), reviewing results and providing feedback, delivering software development process and automation expertise, and migrating software development content (requirements including features and user stories, tests including acceptance tests and unit tests, and so forth). These activities generally coincide with the IDEAL modelís Diagnosing and Establishing phases for specific software process changes.

The Deploy activity focuses on the community and introducing the software process and usage model. The Mature activity focuses on people and collaborating against the action plan. These activities include mentors/coaches delivering software process and automation training and mentoring/coaching teams and individuals. These activities generally coincide with the IDEAL modelís Acting phase for specific software process changes.

The Follow-up activity focuses on the community and evaluating progress. The Terminate activity focuses on people and concluding mentoring/coaching. These activities generally coincide with the IDEAL modelís Learning phase for specific software process changes. This information generally drives the overall software process improvement effort and future iterations while explicitly driving the next iteration.

For the organization mentioned above, one iteration may involve working with the Sales and Operations (including Support) departments to understanding their involvement in the software development process; determining what software development process changes may be able to increase their involvement and positively impact customer satisfaction; and working to implement those software development process changes by modifying the existing software development process and perhaps introducing some automation. Another iteration may involve working with the Fulfillment department to modify their software development process such that customers are more involved, including more intense user involvement in requirements gathering and user acceptance testing. And, another iteration may involve working with the Marketing, Sales, Fulfillment, and Operations departments in order to modify their automated processes such that partners and customers can more readily be involved in the software development process.

The triangles in Figure 2 show the general distribution of activities across phases. The triangles generally show in which phase activities start, peek, and end, but they are not meant to be interpreted as strictly linearly increasing and decreasing. The vertical bar in the Initiate phase in Figure 2 shows an iteration, but iterations will span all phases. The diamond in Figure 2 shows the general distribution of effort across the lifecycle. The diamond generally shows that a transformation ramps up at the start of a cycle, reaches an optimum where all activities are being performed in parallel and as appropriate, and then ramps down at the end of the cycle.

The EIFís iterations and activities offer a very pragmatic general approach which emphasizes a human-oriented perceptive of software process changes.

The IDEAL Model and the Enterprise Implementation Framework (EIF)

The IDEAL model focuses on the management perceptive of software process improvement: how does the organization manage a software process improvement effort? However, the EIF focuses on the management perspective as well as the communityís and individual peopleís perspective of software process improvement and change:

  • How does the organization manage a software process improvement effort?
  • How do the software process and automation changes impact the community and individual people?
  • What are the necessary behavioral changes to ensure the software process improvement effortís success?

Generally, the IDEAL modelís phases correspond to the EIFís cycle phases for the overall software process improvement effort as well as the EIFís iteration activities for specific software process changes. For an overall software process improvement effort, the EIFís Initiate phase corresponds to the IDEAL modelís Initiating phase; the EIFís Implement phase corresponds to the IDEAL modelís Diagnosing, Establishing, and Acting phases; and the EIFís Close phase corresponds to the IDEAL modelís Learning phase. For specific software process changes within the overall software process improvement effort, the EIFís Plan and Orient activities correspond to the IDEAL modelís Initiating phase; the EIFís Install & Configure and Establish activities correspond to the IDEAL modelís Diagnosing and Establishing phases; the EIFís Deploy and Mature activities correspond to the IDEAL modelís Acting phase; and the EIFís Follow-up and Terminate activities correspond to the IDEAL modelís Learning phase.

The IDEAL model does not make a granular distinction between software process improvements versus software process changes. The EIF emphasizes that software process improvements are made at the organizational level while software process changes are made at the organizational unit level (projects, departments, and ultimately people). This distinction emphasizes the criticality of people as collaborating and contributing stakeholders in any software process improvement and quality effort.

The IDEAL modelís Initiating, Diagnosing, Establishing, Acting, and Learning phases generally emphasize the management perceptive of software process improvement. However, the EIF uses the distinction between software process improvements and software process changes to further emphasize the impact on the community and individual people. The EIFís Initiate, Implement, and Close phases generally emphasize the management perceptive of software process improvement while the EIFís Plan, Install & Configure, Deploy, and Follow-up activities emphasize the community perceptive of software process changes and the EIFís Orient, Establish, Mature, and Terminate activities emphasize the individual peopleís perspective of software process changes. The community perceptive of software process changes involves software process and automation changes while the individual peopleís perspective of software process changes involves adopting and leveraging the software process and automation changes. This emphasizes is critical since most software process improvement and quality efforts are less than successful due to insufficiently considering the impact on the community and individual people and peopleís role as collaborating and contributing stakeholders.

The IDEAL modelís Acting phase, with its Pilot/Test Solution activity and Refine Solution activity, emphasizes iterative and incremental software process improvement. However, because the EIFís phases are grouped as cycles and activities are grouped as iterations, the EIF ultimately provides a more complete and scaleable framework for iterative and incremental software process improvement.

Ultimately, the EIF offers a more pragmatic framework for software process improvement than the IDEAL model due to its emphasis on a management perspective and human perspective, which focuses on the community and individual people, as well as its emphasis on iterative and incremental software process improvement.

Conclusion

Unequivocally, organizational improvement and change is a necessity where people are and will remain the "original ingredient" necessary for success. However, with a better understanding of the IDEAL model, individuals, teams, and organizations have a roadmap which may be further contextualized to increase the probability of success. The EIF as described in this paper provides a broader framework through which to leverage the IDEAL model. Furthermore, it is experience, experimentation, and application of the IDEAL model and EIF that will enable us to realize their benefits.

References

[1] Software Engineering Institute (http://www.sei.cmu.edu)

[2] The IDEAL Model (http://www.sei.cmu.edu/ideal)

Back to the archive list

Software Testing
Magazine


The Scrum Expert