Understanding the Development and Improvement Problem
Software Process Dynamics, LLC
Helping our clients discover the dynamic structures that shape their software companies' success.
Current focus on processes and process improvement emphasizes seeing and modeling organizations, departments, projects, and teams as interchangeable components that can be decomposed and managed as independent parts, and on the forward flow of work products through the development activities. While this approach is useful to understand how processes in an organization work, it does not help people understand the effects of several critical aspects of process that affect performance:
- dynamic interdependence (e.g., projects and teams)
- nonlinearity (where the effect of a change is not linearly proportional)
Both of these aspects, as well as others, are pervasive throughout any organization engineering computer-based products.
Unfortunately, current industry-standard process modeling tools are “static” and thus do not help improvement teams analyze and understand the relationship between processes and performance; nor do they predict the effects of process changes being considered. This means process improvements are relegated to “live” pilots and deployments as the basis for determining their effectiveness, a risky and expensive endeavor, where the analyses of change results are not always conducted objectively.
And finally, to meet the growing demand for faster, cheaper and greater product complexity, organizations are shifting towards more dynamic development methodologies and increased coordination between suppliers, developers and customers during development. Thus, development processes are becoming more dynamic, nonlinear and open, all of which inhibit their ability to predict and manage changes to them.
Managing and meeting these demands will require empowering people to not only master their personal processes, but to also see how their actions and decisions have short- and long-term effects on the greater systems of which they are a part. This requires integrating new tools and methods with existing ones that help people:
- model and simulate systems (e.g., projects) to understand why they behave as they do
- understand and analyze the effects of interdependent components and nonlinear feedback on performance, identify when and how chaos is contributing to variability, and describe how to distinguish random from chaotic variations
- select the right system level for improving performance
- conduct what-if scenarios to predict potential short- and long-term improvement results and identify high leverage change opportunities