Better Project Management and Process Improvements are not enough; Systems Thinking and Deep Learning are needed
Software-intensive enterprises often organize software development work into one or more software projects. Related projects are usually organized and managed as a program. Examples: A project to develop a new Customer Relationship Management software; a program consisting of all customer-facing software packages, such as Customer Relationship Management, Field Service Management, and Customer Call Management.
Often software projects and programs are expected to follow a well-defined process. Note that not all work managed by defined processes in an enterprise is organized into projects. Often day-to-day production and operations are managed according to well-defined processes, but that work may not be managed as a set of projects. Examples: Data center service management process, Call center customer support process, order entry and fulfillment process.
Sometimes the changes needed to improve enterprise performance or resolve an issue may be relatively small. At other times, such changes may need major process changes; for example, you may need to radically change your traditional software product development and project management processes from traditional “plan the work and work the plan” heavy-weight processes to light-weight, agile methods that are more appropriate for environments containing uncertainty or volatility.
Often, enterprise processes are supported by systems. A process may cross or span multiple systems. However, a system is much more than a process or a collection of processes. A system is characterized by its:
- Purpose and function
- Guiding values and principles
- People and organization
- Processes and practices.
For example, for each quadrant in Figure 1 representing different work areas in an enterprise, there are usually systems responsible for managing that work:
- Production and Operations Systems
- Project Management Systems
- Innovation Systems
- Interaction and Collaboration Systems.
And supporting the
above four types of systems are usually two additional types of systems in the
enterprise:
5. Leadership System
6. Change Management System.
These typical six systems in an enterprise are richly interconnected and influence each other as illustrated in Figure 2, Enterprise as a System of Systems.
Figure 2: Enterprise as a System of Systems
Often the system for a work area may be weak or inadequate (lack of clarity on purpose or value), or it may be using inappropriate processes, or it may have inadequate organizational structure, or it may use people with inadequate skills. Consequently, your enterprise may not be getting the results it wants.
Improved project management methods, process changes or process re-engineering may not be enough; what may be required is a fundamental change or restructuring in the system: its values and principles, organizational structure, system components, interconnections between system components, or interactions and feedback loops between systems.
As an example, to ensure robust flow of new innovations into commercial products, adding more resources to the R&D budget (i.e., direct intervention in the R&D system) may not be the answer; by removing communication impediments to the timely flow of information, increasing timely feedback from early adapters, and inculcating a value of risk taking may be far more cost-effective. Similarly, adding more resources on a software product development team may not be very effective in reducing the product development cycle time, but radically improving interactions and interface between product management and product development teams may be the high-leverage point.
Sometimes there is even a deeper cause why enterprises may not see enduring, sustainable improvements in spite of their efforts to change processes and even to change systems. It requires a deep commitment by an enterprise to become a learning organization so that it can continually adapt at a rate faster than the rate of change in its environment (market conditions, competition, demographics, globalization, etc.). It requires deep systems thinking about all systems shown in Figure 2.
This new worldview is predicated on new ways of seeing and thinking about how an enterprise and its employees interact with all their stakeholders (customers, partners, suppliers, etc.) and competitors, and how they organize to deliver innovative products and services. This is the essence of becoming a learning organization.
The concept of the learning organization is perhaps best articulated by Professor Peter M. Senge of MIT in his seminal book The Fifth Discipline: The Art & Practice of The Learning Organization [Senge 2006]. Systems thinking is at the core of the learning organization because it promotes a better understanding of how apparently different or seemingly unrelated problems are truly interrelated, and the role each of us plays in the system's behavior, its success, and the problems we experience. We end up seeing the symptoms or events and reacting to them, or we may even see patterns behind events and try to fix the underlying process; but the root cause or causes may not be in any component, but in complex interactions and feedback connections between components of a system or in the interactions between systems. A learning organization learns how to change its mental models (world views), develop shared values and vision, work as a team, see the big picture holistically, and fix the problem systemically creating a lasting or enduring solution.
Finally, it is really important to recognize that the business environment volatility and unpredictability are here to stay. Therefore, we must manage discontinuities, disruptions and volatility, because the past cannot predict the future. As shown in Figure 3, software-intensive enterprise systems must be designed for Agility and Resilience so the enterprise can give appropriate response to environmental uncertainty and volatility. As illustrated in Figure 3, these are some of the methods and practices to increase agility and resilience of an enterprise:
Agile project management
Iterative, incremental delivery of feature sets of a product or solution based on fixed time boxes. Each delivery (typically with 30 to 90 day iterations) delivers a complete subset of user-visible features that are fully tested and ready to be deployed and used.
-
Close collaboration of all stakeholders: Product management, Project management, Development, Quality assurance, Customer representatives, etc.
Agile program management
- Manage several related projects concurrently based on agile project management and agile process management.
- Within each product or solution, manage several projects concurrently: Development of the current release, customer support of the previous one or more releases, plan the next release.
Agile product management
- Harmonize the interests and resolve potentially conflicting priorities of multiple stakeholders to decide feature sets of each product or solutions, and for each of its iterative, incremental releases.
- Close and effective interactions with project management.
Ability to rapidly ramp-up and ramp-down software development and QA staff
- Close cooperation with external service providers.
- In-house staff bench for both development and QA
staff, who are ready to be flexibly deployed across multiple projects.
- Cross-trained IT staff on multiple technologies, development environments and processes.
- Shared project management repository for project plans, features, requirements, tasks, defects, customer trouble tickets, etc.
- Rich modes and tools of communication: Instant messaging, Skype, VOIP, Google Circle, etc.
- Project wikis and blogs for shared knowledge bases without depending on centralized IT development staff.

Figure 3: Examples of
responses of agile software-intensive enterprise to environmental volatility
Services: Training | Workshops | Consulting | Management | IP Development
Home | New | Resources | About Us | Testimonials | Partners | Contact Us
·