Agile or Not?
Let us have a look at the agile manifesto again. It is all about getting the product to the customer and obtaining feedback. Basically it is about developing the right product that satisfies the customer. Ahh… no. This is not what the manifesto says. The first principle is pretty close though. Before entering a useless discussion about what the oracle meant or said or wrote more than 20 years ago, let us have a look at today’s challenge.
Let us assume the main challenge were to deliver products with high quality, (defect free, lifetime of the product matching the expectations of the customer, always being close the state of the art, never outdated, …) with short turn around time, while requirements or actually feature lists a frequently updated.
These targets are probably agreeable by many people.
Taylorism is bad and agility is good. Or not? Is this the contrasting pair? Maybe yes, maybe no. It does not matter. Let us have a look at the rules of the game.
Taylorism
The basic rules in Taylorism are that the boss knows best and success can be measured precisely. In the last couple of years, Taylorism is widely regarded as out-of-time. As everything, it needs to be seen in its context. The challenge was to produce goods with relatively unskilled workers that work for money, not for purpose. This is the environment that was present at the time. Read Taylor in the original version to get some exposure. The writing style is just the style of the time, so have patience. What Taylor basically did was to take the division of labor in to small units as proposed by Charles Babbage and add a cost function to the equation. The division of labor simply meant that not all work in a production process requires the same skill level. Less skilled worker could take over the less skilled parts while more skilled worker would have execute the more complicated tasks. Equating in the salaries of the workers, you can see an optimization strategy.
Cost = time (worker_1)*hourly_cost(worker_1) + time (worker_2)*hourly_cost(worker_2) + … + time (worker_n)*hourly_cost(worker_n) + overhead costs
There is some overhead to be computed in for the handover and storage and maybe some inefficiency and whatever. Then you can optimize operations. You need to understand EXACTLY what you are doing, then you can optimize HOW you are doing it. This necessary precise knowledge coined the term “scientific management” as Taylor called it. If you are in a situation, where you can understand your processes well enough, you can use this method. Lean manufacturing is maybe the gold standard for scientific management. In lean, there are the overhead costs that need to be looked at carefully. Zero line breaks, no rework for electronics, target of single piece flow, … At first lean manufacturing does not appear to lead to cheaper production at impressive quality standards, but it is the holistic treatment of the entire value generation that does the magic. Single components are simply not enough and the introduction of a single action may destroy the entire party.
Now you can connect Taylor to Lean Manufacturing and Machine Learning. All the same thing: the cost function. Henry Ford added something more into it: you may want to not only include the wages of your workers in, but also the training and education costs. He widened the field of view if you like. Total cost of employment needs to be considered. At some point he realized that it makes a lot of sense to pay enough salary to make your people stay. Money is not everything, but it at least it helps. Sometimes. Legend goes that Taylor and Ford never met or never collaborated. I don’t know. The world is small and who knows what exactly happened around 100 yrs ago?
I made the connection to Lean Manufacturing already. What is now the difference between Taichi Ohno’s manufacturing system and the Tayloristic system? The workers and their culture that is ASSÙMED by the two people. In both cases, the laborer are pretty much untrained. The difference is their assumed interest in the work they are asked to execute. Why “assumed”? Well, who knows what really motivates people and who can look into somebody elses mind? You have to make an assumption on you “average” worker and his or her “average” interest in the work they are asked to do. For sure the assumption is wrong, but we only need to be right on average. And not even that. Taylorism assumes little interest of the worker in the result, Ohno assumes people want to deliver the best result possible. Thus Taylor controls, Ohno involves. It is that simple. If you submit Taylor’s clientele to Ohno’s process you will run into quality issues. The other way around will lead to boredom and attrition. – In simple terms. As always: the context matters a lot.
In addition, there is an extra twist with Henry Ford: He played with the production system. At one point he envisioned the production line at Highland Park, where the work was brought (by gravity) to the worker. Starting with the raw material at the top of the building and having the finished Model-T’s driving out in the bottom. In the end he reduced the production time of a car from more than 12 hrs to about 90 mins. If you dig into the details, you will find that the improvement process itself was not straight forward and it took a couple of years to see this huge improvement in production time. In addition he fought attrition rate by increasing the hourly salary to more than twice the salary paid by his competitors and lowered the working hours. Overall this improved quality and costs.
Anyhow, we now understand where Taylorism excels: In the well known environment. Only if I understand the cost function, I can optimize the system. If my understanding of the cost function is incomplete, there is no way I can find the optimum in terms of cost in a predictable manner. Intrinsically, the cost function can only be found iteratively. I make a proposal, use it and check I get the correct result. If not, I need to improve the cost function. The improved cost function then needs to be checked again. The old and nicely working PDCA cycle by Shewhart and Deming. In total, the scientific management method. That does not mean I can only start scientific management when I have 100% knowlege about my system. I can get started on incomplete information. If and when I go through the PDCA-cycle, my knowledge will automatically improve. Actually there is always something that can be improved, so you are never done with scientific management. Production is an environment, where scientific management excels. Clear data, clear cost functions, clear return on invest, short cycles, clear measured cost for inputs consumend and clear measured numbers for outputs generated are our parameter used for optimization. We do not need to be too picky. A few approximations here and there are acceptable.
As a consequence we now understand that accounting is key to generate the correct cost function. For production typically, the costs are more easily found and attributed to the correct production step. In development, the costs sometimes are not so well documented, i.e. the total costs are typically correct, but the documentation with respect to the individual steps sometimes has improvement potential. In this respect, Taylor, Ford, and Ohno follow a similar concept. Taylor apparently focused on manufacturing alone. Ford considered training and re-training of his workforce and non-conformance costs. Ohno tried to optimize the time needed to fulfill the order from the end customer. The time from the point the order was signed until the money was in the bank. In a similar way, Lean Manufacturing optimizes the money spent for the entire production process, leading to the reduction of stocks on input and output side.
The advantage of the Tayloristic approach and everything that may be inspired by it, is that it is a controlled, predictable process for repetitive activities. There is not much variance allowed within the process. In the Toyota Production System, just as in lean production and management, the worker are encouraged to propose and implement improvements. These process improvements from bottom up direction will optimize all production steps. Therefore workers are heard and will contribute to the improvement of the production steps. Not so much into the improvement of the product. It is often said that Tayloristic management limits the engagement of the worker in the process and reduced their identification with the product.
Henry Ford is not F. W. Taylor and both are not Taichi Ohno, nor W. Edwards Deming. Each of them propose valid, useful, and superb methods. All of them were developing for their specific context. Understand the context, know your context and choose the elements that make sense for your situation. One more thing: There is no best practice. There are only good practices and good ideas.
Agile Approaches
The basic rule in agile approaches is to understand that we are in a situation, where the well known Tayloristic approach does not work. We may know what to achieve, but cannot write a detailed plan. We need to question the paradigms to see what to do differently. Sometime it is just that we cannot optimize because we do not have a precise cost function. What is the added value of base development? The value generated by development can be calculated after we sold the last product. Nice, but too late. Return on invest is not a smart indicator to optimize the development. I cannot use this number to optimize the development process. What is the value of a line of code a developer wrote? Sometimes a smart idea reduces the number of lines of code and is very valuable. How does this enter the equation? If I am traveling in a well developed environment with roads and highways and maps and navigation systems, it is easy to measure the progress I am going to make towards a target destination. When we are traveling in the wild, maybe a jungle or a semi-desert and have no satellite data exploration of our route, it is very difficult to make a prediction. Well even with a lot of data available, predicting the arrival at a certain location is difficult. Here scientific management will fail. Iterative methods will flourish.
The first thing is that we need to know when following agile or iterative/adaptive principles is what we want to achieve in terms of customer experience. I we do not know the outcome as we think it should be experienced, we shall stop all activities. That is simple. If we know what to achieve, and know exactly what to do, stop thinking about agile and write a plan and execute the plan. Still it helps to communicate strategy, environment, plan, ideas, etc. If you cannot write a plan, do not know HOW to achieve your target, communicate strategy, environment, plan, ideas, etc. Listen to your team to get feedback and embark on the voyage. Respect your team and invite them to contribute with ideas and feedback. Together with the team, you need to develop a plan. We do not need to know exactly what to do. We simply ask “Who might have an idea?” This is the motto of the game.
As a consequence, we need to acknowledge that as a manager of such an undertaking, nobody can tell the developer/worker WHAT to DO. We need skilled and knowledgable people that if and when we tell them what to achieve will find a way to reach the objective. We are changing the role of the manager into the role of a leader that gives guidance. Guidance on what to achieve. In case we have the “right” people on the team, our job is to develop the team to keep the work efficient. We need to refrain from telling people what to do and need to develop trust into what they are doing. This is not a laissez-faire approach to leadership. As leader we still are responsible for the outcome of the activity. In the setup in the Tayloristic approach, the manager checks the fulfillment of the individual activities and needs to see the progress report in terms of activities executed. If all the activities are executed, success is guaranteed. In the agile approach the execution of the tasks anticipated is not a guarantee for success. Trust is generated by the delivery of outcomes, i.e. intermediate results leading the greater target. Team and leader agree on intermediate outcomes. These outcomes are tracked. Due to the large uncertainty in such a project, if an intermediate objective is not met, the team shall not be blamed automatically. What is to be done is to investigate the situation and act accordingly.
Working in the agile mode generates more overhead on the planing and alignment side of the undertaking. Instead of one person absorbed in planning activities, we have the entire team involved. In addition, we need alignment in the team. Depending on the challenge to be solved, one or the other method is the right choice. It might also be smart to run the activity in some hybrid mode, where some functionality is developed in a Tayloristic framework, while the rest is done in an agile setup.
And never trust your consultants too much. I used the picture of the voyage in the wild. Remember Henry Morton Stanley with the quote “Mr. Livingston, I suppose?”. The story is cool, but do you really believe you travel to Africa in 1871 to search a single man and actually find him just like that? The story told is a bit over the top, but entertaining. Agile works, Taylor works, but both need to be taken with some grains of salt.
Let us Compare
Back to serious content. The context drives the choice of the methodology, nothing else. These are aspects of the two different approaches. Depending on context, each of these aspects may be regarded as positive or negative. It just depends on what I need now.
Tayloristic | Agile |
---|---|
Efficient | Effective |
Cost reduction | Target orientation |
Easy training | Skill development |
Specialization | Generalization |
Control and monitoring | Trust and monitoring |
Monotony of work | Diversity of work |
Limitation of responsibility | Engagement and commitment to results |
Errors can propagate | Robustness wrt. error propagation |
Tayloristic approaches and agile approaches in consequence are solution paths to two different challenges. How to find out which is the right choice for the current challenge? Very simple: If you inspect the challenge and are asking yourself “What do we need to do now?” With high probability, the Tayloristic approach is likely good. If you are asking yourself “Who might have an idea?” Then the agile solution is likely the better choice. Maybe the person you are asking has a clear idea already, so you could get an easy fix. However, it is better not to randomly trust people because you like their assessment. “In God we trust, all others bring data.” is attributed to W. Edwards Deming. Do not get the impression that Deming and Taylor were proposing similar management techniques. Remember, they differ dramatically based on the role and a competency assumption for the workers in the line. Also here the context is essential. Tayloistic Style is made for workers that do not identify with product quality. Deming and Ohno are focusing on the situation, where worker identify with the product and product quality. The best thing is to understand method and context and not to copy anything, but take what makes sense in your context. Adapt. It is hard to imagine in current times that we still find value creators that are not interested in the quality of their output. If there are some in your context – the proven method is clear. If you have engaged value creators, some aspects of scientific management still make a lot of sense.
A more formal and very interesting discussion is found in the works by Gerhard Wohland (unfortunately not translated to English language – yet).
Gerhard, please do not be upset. I know your concept has many more details, what is reproduced here this is all I need right now. In addition, I think, the world is a little bit more complex. Instead of “dead” and “alive” I prefer “formal value creation” and “adaptive value creation”. Let us define terms first.
Formal value creation refers to classical Tayloristic value creation. The boss kows best, defines the processes and orders the worker/developer what to do. The structure is going to deliver high value and quality if
- rules are defined and followed.
- methods are developed and trained.
- clear processes are defined and followed.
- the organization is steered based on data.
- we define a plan and follow the plan.
- we have clear targets to be reached.
The condition for this to be successful is that we have a slowly evolving market situation. We have enough time to adapt to the changing environment and situation. We do respond to changes of the environment, i.e. we are in principle adaptive, but there is enough time to adapt the methods, processes and workflows to the changing outside world by the modification of the guidelines for the value creators.
In contrast, we will use adaptive value creation when we do not have the time to adapt the workflows and methods on management level. (Basically this refers to adaptations with a process release of every 6 months or less frequent.) In the case of the need for higher responsiveness, what we need to communicate and define to be successful is
- common principles and rules. Decision are made locally, but aligned via common principles.
- habits and values are developed and trained.
- the target outcomes are defined and guardrails are respected.
- the organization is lead based on information, i.e. correlated data.
- a tactic is followed, based on an agreed strategy. A plan exists and is adapted to new learning.
- An outcome as target is defined, but options to get there are respected.
In consequence, the formal value creation clearly has advantages when the change in the environment is slow enough that the leadership has time to analyze the situation, adapt the processes in the organization, and roll them out. When the market is changing faster than the organization can adapt, then the adaptive value creation has advantages. However, people need to behave differently in both types of value creation. Executives, leader, developer, and worker need to show different talents and skills. In the shop-floor environment, adaptive value creation is close to craftsmanship or even the Toyota Production System. Still differences sure exist, but the overall atmosphere is similar. In the adaptive value creation mode, the value creators need skill and knowledge to create the best workflow. In the realm of formal value creation, diligence is what brings us forward. Adaptive value creation is prototyped by agile ways of working, but not limited to agile practices.
What to Do …
In very simple terms:
- if management and the steering part of the organization has enough time to analyze new customer requests, and can respond, Taylor and the like are a very good choice. We can analyze the new features, break them down to requirements, define an architecture and simply write a plan and deliver. This is working with internal references like documents and specifications.
- in all the cases, where the is not enough time for the steering part of the organization to analyze new customer requests, we need to allow the value provider to take decisions and deliver independently. The central part of the organization then needs to issue rules and guidelines to steer the organization. Otherwise we will end up in a pretty disordered setting. You can envision this as working with an external reference since you will need to ask the customer if you are on the right path.
Here again, context rules. Working in adaptive mode without getting feedback is not going to lead to satisfied customers. The same way, following a clear plan and schedule and asking for a review will iterate the customer. You should be knowing what to do. Don’t ask.
O.K. so far? That just directly tells us that the good old Taylor with scientific management is still the a very good approach under the premise that we exactly know how to do the job we are asked to do. No research, no REAL development. With REAL development I am targeting challenges where in the beginning I do not know for sure how the solution will look like. There are development tasks, were I just need to adjust some parameter and I am done. In this case, yes I will generate something new, but the learning is very limited. In challenges, where I will be learning a lot and new knowledge is generated, the Taylor approach is not so effective. Whenever learning is involved, i.e. I have a plan, I am executing the plan and check the result, a.k.a. I am following the scientific method with the option to fail and actually generate new knowledge, the Tayloristic approach is not smart. Then agile or other adaptive methods are of advantage.
Reflecting these two aspects, it is clear that the adaptive approach on a higher level is always the best solution. If Taylor is the best choice, I will use Taylor. If agile is the best choice, I will use agile. In addition, we always can blend in some Toyota Kaizen: even in Tayloristic settings, the worker or developer have direct exposure to the work. They know how to improve the workflow. Kaizen is thus somewhat in the middle between Taylor and agile. Somewhat. It really does not matter much.
Thus, there never should be a discussion or dispute V-cycle or agile. If you really are agile, you will use the V-cycle or a real Tayloristic setup whenever it leads to faster and cheaper and more reliable results. When it is not faster or generates issues, you will use agile approaches.
To turn the screw one more time: Tayloristic approaches, Lean ideas, Toyota Production System, Agile mindset/methods are actually solutions to challenges. They all have their right of existence – that is granted anyways – and they all have their environment, where they flourish. At this point we need to look at reference points. This is something from the old greek philosophy: Without a reference point you do nothing. Archimedes a bit far fetched.
After we stopped this useless discussion through the understanding when to do what, we shall go to something important: architecture of things.