October 27, 2010
Agile Software Development, Lean Thinking, Lean Software Development, and the Toyota Production System (TPS) all have a set of founding principles. These are understood and are receiving increasing attention in software development. Deming’s management principles have had enormous influence on the evolution of TPS and Lean. Stakeholder Management is an area of strategic management that so far has received less attention in software development, but equally has a set of founding principles that we can learn from and that compliment the other sets of principles.
Principles provide guidance, in the form of non-prescriptive rules, for making decisions in contexts that the authors of those principles can’t imagine. Systems such as Agile Software Development and Lean Thinking are bolstered by a set of guiding principles. The same is true for Lean Software Development and the Toyota Production System (TPS). All over the world, teams and organizations are benefitting from applying these principles to become more agile, more lean. The power of principles lie in the fact that these teams and organizations can successfully apply these same principles using different sets of practices that meet their particular needs.
Although often used almost interchangeably, there is a fundamental difference between Lean Thinking, Lean Software Development, and the Toyota Production System (TPS). Each has its own set of principles, and I present them separately below.
Stakeholder Management also has a set of guiding principles. Taken together, the principles of Stakeholder Management, Agile, Lean Thinking, TPS and Lean Software Development provide a powerful system for guiding organizations engaged in development of products and systems. For me, the principles of Stakeholder Management provide balance to the others and help to create a more complete picture of what an organization needs to consider.
As shown in the diagram, Stakeholder Management Principles form part of a ‘system of principles’ for organization design. This article provides a summary of the principles, not a deep analysis. As part of my research work I am working on a paper that provides that deeper level of analysis.
Stakeholder Management Principles
There are ten principles of Stakeholder Management. These are from R. E. Freeman’s ‘Managing for Stakeholders‘.
- Stakeholder interests need to go together over time.
- We need a philosophy of volunteerism – to engage stakeholders and manage relationships ourselves rather than leave it to government.
- We need to find solutions to issues that satisfy multiple stakeholders simultaneously.
- Everything that we do serves stakeholders. We never trade off the interests of one versus the other continuously over time.
- We act with purpose that fulfills our commitment to stakeholders. We act with aspiration towards fulfilling our dreams and theirs.
- We need intensive communication and dialogue with stakeholders – not just those who are friendly.
- Stakeholders consist of real people with names and faces and children. They are complex.
- We need to generalize the marketing approach.
- We engage with both primary and secondary stakeholders.
- We constantly monitor and redesign processes to make them better serve our stakeholders.
There are twelve principles behind the Agile Manifesto:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Toyota Production System (TPS) Principles
There are fourteen principles behind the Toyota Production System. These are a summary of the TPS principles in Jeffrey Liker’s ‘The Toyota Way‘. Liker groups the fourteen principles into four sections.
Section IV: Continuously Solving Root Problems Drives Organizational Learning
12. Go and see for yourself to thoroughly understand the situation (genchigenbutsu).
13. Make decisions slowly by consensus, thoroughly considering all options; implement decisions rapidly (nemawashi).
14. Become a learning organization through relentless reflection (hansei) and continuous improvement (kaizen).
Principles of Lean Thinking
In ‘Lean Thinking: Banish Waste and Create Wealth in Your Corporation‘, James P. Womack and Daniel T. Jones describe five principles of Lean Thinking:
- Value (as defined by the consumer, and created by the producer).
- The Value Stream (the set of all specific actions required to bring a product from concept through producer to consumer)
- Flow (specifically, the flow of value creating activities, or how the work flows through our organizations)
- Pull (people in the value stream pull work when ready, rather than have it pushed on them)
- Perfection (the ongoing, continuous pursuit of improvement and of the elimination of waste)
Lean Software Principles
- Implement lean across an entire value stream and the complete product
- Restructure the measurements
- Reduce the Cost of Crossing Boundaries
- Train team leaders / supervisors
- Move responsibility and decision-making to the lowest possible level
- Foster pride in workmanship
- Work in small batches at a steady cadence
- Limit work to capacity
- Focus on cycle time, not utilization
- Abolish the notion that it is a good practice to start development with a complete specification
- Break Dependencies
- Maintain Options
- Create design-build teams
- Maintain a culture of constant improvement
- Teach problem solving methods
- Provide market and technical leadership
- Create nothing but value
- Write less code
Deming’s 14 Points
If you want to understand the history of Lean development, then you need to read Deming. W.Edwards Deming define his principles as 14 points. For a deeper understanding and explanation of Deming’s points, see Deming’s own ‘Out of the Crisis’ or Mary Walton’s ‘The Deming Management Method’.
- Create constancy of purpose for improvement of product and service. Deming suggests a radical redefinition of a company’s role. Rather than focus just on making money, the role of the company is to stay in business and provide jobs through innovation, research, constant improvement, and maintenance.
- Adapt the new philosophy. Our organizations should not accept the production of poor quality products and services.
- Cease dependence on mass inspection. Deming argues that quality comes not from inspection of the product at the end of the cycle, but rather from improvement of the process.
- End the practice of awarding business on price tag alone. Build long-term relationships with suppliers.
- Improve constantly and forever the system of production and service. Improvement needs to be accepted as a continuous, with everyone seeking ways to reduce waste and improve quality.
- Institute training and retraining (in skills).
- Institute leadership. Leaders help people do a better job, and know how to focus on the individual needs to everyone they are responsible for.
- Drive out fear.
- Break down barriers between staff areas. Apart from the functional silos that pose a problem, different groups can have different, competing goals.
- Eliminate slogans, exhortations, and targets for the workforce.
- Eliminate numerical quotas. If you ask someone to meet a quota, they will meet it at any cost. They encourage local optimizations. The problem with quotas is they only consider numbers, not quality or methods, and usually lead to high costs and inefficiency.
- Remove barriers to pride of workmanship. People want to do a good job. Sometimes the system prevents them from doing so.
- Institute a vigorous program of education and retraining (in the process). Everyone in the organization (and even beyond) is a stakeholder in the process, and needs to be trained, and retrained as the process evolves and improves.
- Take action to accomplish the transformation. This point calls for an effective change management program, with a critical mass of people from all levels in the organization.
It’s interesting to examine the principles from these different value systems and to see how they compare. What’s interesting for me is how they work so well together. There are areas where they have a lot in common, and there are areas where they address different concerns yet compliment each other well. As the software industry embraces agile and lean methods it is important to build an understanding of founding principles so we understand where these methods have come from, and what it takes to be successful with them. Blindly copying a set of practices will have limited, if any, positive results for a team or an organization. Developing a deep understanding of the underlying principles, and then working out how to apply these principles to the benefit of your organization and stakeholders, will have a far more lasting and positive impact.
I am continuing to explore these principles, as well as related areas, to see how they work together in practice, and how we can evolve them.
I would love to hear your experiences, thoughts and opinions.