Note: This post originally appeared in my other blog, Random Thoughts from a CTO in February 2006. I have updated it based on what I have learned and tied it more directly to Lean development.
You can't talk about management without eventually bringing up W. Edwards Deming. Deming is a fascinating individual and his ideas have challenged the future of management. One of his contributions is fourteen key principles of management for transforming business effectiveness. As I have been learning more about Lean, I am finding that there is significant overlap between Lean principles and these by Deming. This is no coincidence, as Deming learned a lot from Japanese companies include Toyota. Here are each of the 14, with my comments following each one:
1. Create constancy of purpose for the improvement of product and service, with the aim to become competitive, stay in business, and provide jobs.
Skip: Too many times in software development, we fall victim to the "kitchen-sink mentality". The focus is on what the technology can do more than what is important for business. We lose track that we need to get something out the door that allows us to stay competitive and in business. Competition has shown us that things can get done more quickly. Customers expectations are higher than ever in wanting quick responsiveness. You must figure out what you absolutely have to produce and then get it out as quickly as possible without compromising quality. Is your company aligned around your particular products or do they have various project teams that can players every few months? Is it easy or difficult to understand why products are going because initiatives don't align well with the progression of each product?
2. Adopt a new philosophy of cooperation (win-win) in which everybody wins and put it into practice by teaching it to employees, customers and suppliers.
Skip: Partnerships, this is what we are talking about. Let's work on the solution together. Let's get rid of our own political agendas and figure out what we can make together. We need each other, so let's recognize that. We are moving more towards this model but it is slow going. There are still customers, employees and suppliers who just don't "get it" and are only looking out for number 1. I wish those people could realize how much easier life would be if you think of these relationships as cooperative instead of "give-and-take".
3. Cease dependence on mass inspection to achieve quality. Instead, improve the process and build quality into the product in the first place.
Skip: Years ago, if you did think about quality you usually had a testing group that would manually review the product before it went out the door. Then, if you took it a step further, you would have customers "test" your product in an "alpha" or "beta" release. However, organizations are finding out that it is best to be proactive instead of reactive when it comes to quality. Automate testing, create tests before design or implementation, make people think about the quality of the solution as requirements are being gathered. Those organizations that build quality in by checking early and often are going to be more successful in the long-term. Why? Because while the competitors are having to go back and fix past mistakes that could have been caught, you are able to focus on better meeting the customers' needs right now!
4. End the practice of awarding business on the basis of price tag alone. Instead, minimize total cost in the long run. Move toward a single supplier for any one item, based on a long-term relationship of loyalty and trust.
Skip: I have learned a long time ago when it comes to looking at financials and success in any business, you have to focus on the long-term results and impact of your short-term decisions. You may think your short-term decisions have merit, but if you choose to ignore (or understand) the long term negative effects you could get yourself in trouble. On the other hand, if you are focused on long-term partnerships that work for all of those concerned, you will be better off.
5. Improve constantly, and forever, the system of production, service, planning, of any activity. This will improve quality and productivity and thus constantly decrease costs.
Skip: For many organizations, this is a challenge. Why? Because they like to move on. Fix something, it works, leave it only since it works (the ol' adage, "If it's not broke, don't fix it"). So, even if it does seem to work,it may not be the most efficient or it may tend to have problems as time going on and the world changes around it. The best organizations are those that recognize that change is always happening and can adapt to those changes quickly. When they realize that there are always improvements, and the company rewards those who make improvements to improve quality or productivity or reduce costs, then you will have an efficient organization. Now, I encourage others to have the attitude of "Is there a better way?"
6. Institute training for skills.
Skip: Does your organization have formal training? Is it for new people only? Or does your organization expect the skills to be developed before they are hired? Or does your organization "train by fire". Organizations need to evaluate their training programs and look for consistency. In other words, are people being consistent in their performance based on their knowledge? Are they getting the same training? If they need refresher courses, is that available? If everyone isn't "sharpening their blades" on a regular basis you can quickly find that you aren't able to adapt to changing conditions or have as much flexibility in responding to change as you used to. The world is changing around us, don't you think each of us needs to change and improve as well? How can you do that without some time around training?
7. Adopt and institute leadership for the management of people, recognizing their different abilities, capabilities, and aspiration. The aim of leadership should be to help people, machines, and gadgets do a better job. Leadership of management is in need of overhaul, as well as leadership of production workers.
Skip: I am a firm believer that leadership isn't something you are born with, isn't part of your DNA, isn't part of a job title, and that each person is capable of becoming a leader. Some will take on more responsibilities than others, but each person need to become an expert of their own domain. You can't be an expert in my opinion if you aren't leading others with your expertise. Organizations promote people every day into management roles that they are prepared for. We should constantly encourage the building of leaders within the organization. I have told many people that one of my primary job duties is to create leaders for the organization. It is my legacy. I truly believe that!
8. Drive out fear and build trust so that everyone can work more effectively.
Skip: Mutual trust and respect are the heart and soul of a team's productivity. If you don't have one or both towards a teammate, you will find extra work is produced to work around this. Extra work means less productivity...period. Also, you also need to be able to take risks and make decisions that could have a negative impact. Of course, you should do your homework if the risk occurs. On the other hand, you can't be scared of making decisions by always going the safe route.
9. Break down barriers between departments. Abolish competition and build a win-win system of cooperation within the organization. People in research, design, sales, and production must work as a team to foresee problems of production and use that might be encountered with the product or service.
Skip: I have seen this happen in both large companies I have worked for as well as smaller ones. Why does this happen? Easy....departments have different goals that are in conflict with each other. Processes or work doesn't seem to flow well between departments, or work seems to contradict each other. This causes much frustration and the feeling of "us" vs. "them". I have even seen organizations with there are contests between different development groups to see who is better. While this may sound like healthy competition, it often creates "classes" of groups within the organization that is anything but healthy. The entire organization should look at the processes across the organization and determine if everyone is working towards customer needs in the most efficient way possible. We can't forget that the "us" is the entire organization and the "them" is our customers, vendors and even competitors. We can't forget to serve customers, support vendors and go after the external competitors for market share.
10. Eliminate slogans, exhortations, and targets asking for zero defects or new levels of productivity. Such exhortations only create adversarial relationships, as the bulk of the causes of low quality and low productivity belong to the system and thus lie beyond the power of the work force.
Skip: This is SO true. The cost of trying to support zero defects goes up exponentially as you get closer to zero. There are always acceptable defects that can wait on being fixed. The opposite is also true, in that there are defects that could cause data corruption that are not acceptable. You need to decide what is and is not acceptable and make sure that employees, customers and vendors are on the same page. If customers expect zero defects, and internally you know that is impossible, you will only have frustration on both sides.
11. Eliminate numerical goals, numerical quotas and management by objectives. Substitute leadership.
Skip: I hear from people that you "can't manage what you can't measure". However, I really haven't had any particular metrics for many years....yet, I know that I have been successful with the groups that I have managed. Whenever I have tried to implement metrics...it seems the focus has been more on keeping up with the metrics than focusing on the work itself. Isn't it the work that should be more important? In the end, I'll pick a good leader that motivates people to perform over a manager that is making sure his people are conforming to the metrics any time! I'm not saying metrics are bad but that they need to measure true value and support the right goals and behaviors of the organization.
12. Remove barriers that rob people of joy in their work. This will mean abolishing the annual rating or merit system that ranks people and creates competition and conflict.
Skip: Dilbert and The Office typically portray the workplace as a terrible place to be. Though it's done in a humorous fashion, it's still a testament to how people view most organizations. Managers from all levels should pay attention to this one, as they create programs, policies, procedures, etc that seem like good ideas but cause more conflict than they resolve. Are these things going towards improving morale and productivity or against it?
13. Institute a vigorous program of education and self-improvement.
Skip: Education and self-improvement seem to take a second seat to getting the work done. They are either used as recruiting perks, or rewards for hard work. I haven't been with an organization that puts a high enough value on these activities. Most people don't realize that if the company invests in people this way, and encourages self-improvement....that will lead to organizational improvement with better skills, higher knowledge and overall desire to learn.
14. Put everybody in the company to work to accomplish the transformation. The transformation is everybody's job.
Skip: Imagine a company where everybody has a particular role, everybody knew what was most important or not, everybody worked towards the same goals. I haven't seen it yet, but would love to be part of an organization like that! This is the ultimate goal of a Lean and Agile organization.