Lean Software Development with Kanban by Dimitar Karaivanov - HTML preview

PLEASE NOTE: This is an HTML preview only and some elements such as links or page numbers may be incorrect.
Download the book in PDF, ePub, Kindle for a complete version.

4. Our Philosophy, Principles and Practices

 

The case study from the previous chapter represents the mechanics of what we do. However, realizing all this in practice requires a much deeper understanding of the underlying philosophy, principles and practices. This last chapter is dedicated to our view of how software should be created, which is, indeed, a rather complex mixture of different components.

The image below provides a good overview of all the different ingredients that contribute to a healthy, effective and efficient system:

  • Our philosophy in blue (at the bottom)
  • Our principles in green (in the middle)
  • Our practices in orange (at the top)

img33.png

Discussing each and every box on this graph in details will likely result in a few hundred pages, so we will not go into detail about every single one. However, I would like to cover as much as possible, at least on a basic level. This should give enough food for thought to the inexperienced Lean Thinker, but even the experienced one could learn something valuable.

Philosophy

Responsibility

I have survived two life-changing experiences that completely transformed my views of the world. The first one was a free fall from 10+ meters height, which put me to bed for more than three months. Broken spine, hands, legs… a real beauty. I was really lucky to have lived through it and recover completely. That’s how I learned where the thin line between bravery and stupidity was.

The second thing that shook my world was my divorce. It was not a nasty divorce, we just admitted to ourselves that we were not happy and decided to go our own ways. No arguments, no quarrels, no conflicts, we are actually still pretty close friends. That being said, when you are putting an end to a long-lasting relationship, it is natural to ask yourself a lot of questions. Being a truly rational person, I was trying to analyze why things turned out the way they did, but I always reached the point where “I’d done nothing wrong”. That’s when I got acquainted with the work of Christopher Avery and the “Responsibility Process”. The “Responsibility Process” answered all my questions… I would never be able to explain this better than Dr. Avery himself, so I suggest you check this video (if you are reading this on paper, switch to Youtube and search for “The Responsibility Process™”). You will thank me later.

I am not telling you all this as a call for sympathy. If you want to implement Lean, you need to have your organization acting out of responsibility and that’s a given. If you lay blame, or tell good stories, things will not work. However, if you do this right, you will succeed with or without Lean. Lean will just make things happen faster.

img34.png

The Responsibility Process

Management Applies and Teaches Lean

It is somewhat hard to admit that, but it took us more than four years to realize this. In the beginning, we were only team of a couple of people and we did not need any special conditions to do what we were supposed to do. Then, we started to grow and many new people joined the company. That’s when things started to crack. The processes were no longer working, we were getting worse results than before and it looked like we were speaking different languages with the people with whom we were supposed to be on the same page. Moreover, we did not have time to do what we were doing before, which hurt the overall performance of the company.

Trying to figure out how to improve this situation I read a really good book - ​The E-Myth Revisited by Michael Gerber. He emphasized the importance of training and how it affected the ability of organizations to scale. That’s when the solution just occurred to me - we needed to teach Lean to the people with whom we work and hire in the future. At that point in time, this seemed so obvious that I couldn’t go beyond the “shame” zone for a while.

We started a series of workshops within and outside the office with the sole goal of teaching what we had learned. To this day, these teachings are being received really well and it is great how people engage with the new things they are learning. Our discussions changed, the arguments became backed up by the right theory and principles. The overall situation became, and still is, much better compared to what we used to have before.

Right now, we are in the process of transforming the company into a “learning machine” and we do realize that the role of the leaders is a major one. Teaching and learning has proven to be the right way for us so far and it will most probably work for you in the long-run as well.

Respect People

This might sound like stating the obvious, but managers or business owners tend to forget that all great things were made by somebody. Innovation doesn’t just happen - it is created by people. We should train them and then trust them to do the right thing. We must treat everyone as if they were a volunteer who came to help us. Treat your colleagues as equals. Be friends. They will respond with their best.

Decentralized Control

If I asked you to think about a structure with a super strict hierarchy, following orders without ever questioning them, I bet you’d think about the military. Historically, most of the battles were fought by commanders who instructed their troops what to do and when to do it. But as the German strategist Helmuth von Moltke said: “No battle plan survives contact with the enemy.” Suffering severe casualties, the military had to re-think their ways. They realized that they needed to only provide a global plan and then leave it to the troops to take the smaller, but still important, decisions along the way. That’s how the US marines or any similarly structured organizations were created. You get extremely well-trained and capable people, give them an objective, define the constraints and let them do their job.

This is what businesses can and should do as well. They need to make sure that everyone is qualified for their job and then create a productive environment to allow the rest to happen. One way that companies do this is by establishing a few very simple rules. I remember reading another great book on that topic - Made to Stick by Chip and Dan Heath. The authors dissected why some ideas survive and others die. I remember an example of an airline that enabled thousands of employees to make their own decisions by giving them one simple rule: “We want to be the low-cost flight company.”. From then on, everyone could tell if a given decision would bring the company closer to its goal or not and acted accordingly.

Develop Teams & Talent

We will talk a lot about knowledge and how we generate it in our company. That is why I’d rather keep this section pretty short. Just remember that you need to make sure everyone in the organization learns to do their job better. If they stop learning, your organization is aging.

Leader-teachers from within

The only way an organization can scale effectively is through strong leaders, who express the behaviors expected by the company culture. If a company fails to create the leaders it needs, sooner or later, it will be in great danger. It happened even to Toyota, when they grew their operations outside of Japan - they just couldn’t create leaders fast enough and that resulted in some major messes.

We believe that people, and especially leaders, should try very hard. We do not work with “sissies” and, on the rare occasion of having hired one by mistake, we let him/her go really fast. As a famous woman on Youtube once said, “Ain't Nobody Got Time For That”. The question here is how you make people “try hard” and like doing that they’re doing it. Quite honestly, we don’t have a complete answer to that question quite yet, but we will figure it out. For the moment, I can only suggest that you check Dan Pink’s Ted talk on motivation. It is a true eye-opener.

One thing is certain, though. We would only hire a leader from the outside if we need some exceptional talent, that we have not yet managed to breed internally. We strongly believe in this approach and we are prepared to wait patiently for the time when we will be reaping the benefits of this long-term strategy.

Pursue Perfection

Kaizen

Kaizen is a Japanese word used to represent the culture of continuous improvement. We are really good at this and that’s what makes things possible around here. We don’t tolerate inefficiency and wasteful activities. We pursue and eliminate them relentlessly. This is possible through great commitment from the leaders of the organization and the people who support them. The engine for this is, of course, the responsibility process I referenced earlier, because, quite often, the root cause of a problem is a person. If that person acts out of blame or justification, things wouldn’t work. Everyone in the company is (or will soon be) proficient in the responsibility process and has granted permission to others to tell him or her when they are not above the line of responsibility.

Each team has adopted a data-driven approach to improvement. We collect metrics and analyze them during our weekly meetings. Apart from that, we hold a weekly all-hands meeting where we discuss potential improvements.

As it is with the responsibility process, if you get this right, you will sooner or later succeed. This is a critical part of the adoption of Lean and, unless you get everyone to adopt this idea, your efforts might be doomed to fail.

Entrepreneurial Spirit

Working with brilliant people is a must if you want to achieve long-term success. However, brilliant people have special needs. At some point in time, they want to create something on their own. They want to have their ideas heard and see them come to life. That is why we welcome entrepreneurial spirit at the company. We love it when somebody has a good idea and wants to work to make it happen. To be honest, I wish we had more of this, but we are making some steps to ensure that the energized people have the time to think about innovation. I guess it’s a matter of time to have our own 20% free time for cool ideas, we just need to figure out how exactly we want to do it.

Jidoka (Automation with a human touch)

The Jidoka concept was invented by Sakichi Toyoda, the Founder of the Toyota Group. He figured out how to stop the automatic looms as soon as a defect was introduced. This simple invention allowed Toyota to separate the human from the machine and have just a single worker manage many machines. Not only that, but the wastes from defective goods were greatly minimized. These two contributed to huge economic improvements and made Toyota a much more profitable company.

At this point, you may understand why we are investing so much work in the run-time policies (business rules) module in Kanbanize. They are our Jidoka - they allow us to detach the human from the machine and have the machine report to the human, when it needs attention. This is a really powerful concept, which is considered one of the pillars of the ​TPS house.

Principles

Value & Waste

This might be a blunt statement to throw at you, but making money is a necessary goal for every business out there. Feeding the starving children around the planet, preventing global warming and colonizing Mars are noble causes (no irony intended), and many corporations are notable activists, but in the end, they have to make money to support what they believe in. Money comes from the customer and the customer pays for value that they get from a product or a service. Therefore, the goal of a Lean business should be to generate more value for the customer without increasing the cost for the generation of this value.

At first, this may sound like an oxymoron, but this is, in fact, what Taiichi Ohno did in TOYOTA in the second half of the 20th century. This is what James Womack says about him in his book “Lean Thinking” - “​Taiichi Ohno (1912– 1990), the Toyota executive who was the most ferocious foe of waste human history has produced . Taiichi Ohno was devoted to eliminating waste ​​(​muda) from the production process in his company, because he realized that this is how more value could be generated for the customer. He was able to recognize multiple activities in the design, development and production processes, the removal of which could improve the overall economics of the company. Working relentlessly to remove various types of waste, he identified the seven types of ​muda:

  • Defects
  • Overproduction
  • Over-processing
  • Motion
  • Waiting
  • Transportation
  • Inventory

The table below shows how these seven types of waste map to the production process in a factory and to the development process in a software company:

img35.png

img36.png

It is important to differentiate between waste in its pure form and waste, which is “necessary” in order to get things done. For example, testing in software development is a non-value adding activity, but it is virtually impossible to produce complex software without testing. Can you imagine flying on a plane knowing that its software was never tested? I’d rather walk.

Let us summarize the different activities you can have in a Lean implementation:

  • Pure waste - any form of waiting can be described as pure waste. Also, projects that get developed, but never delivered to a customer, defective goods, etc.
  • Necessary waste - activities that our customers have no interest paying for, but are required to get things done in a quality manner. These are all sorts of activities like planning, testing, tracking, documenting, reporting, invoicing, etc.
  • Value - what the customer has interest paying for.

When we look around, we can clearly see a lot of waste being generated around us. Even a non-experienced Lean thinker will notice the multiple meetings where nothing gets decided, the dozens of defects filed by customers, the people waiting for their boss to assign work and so on. This is both bad news and good news. The bad news is that the majority of companies are spending too much time and money on wasteful activities and the good news is, that yours does not have to be one of those companies. If you train your thinking in Lean, things will suddenly start to improve, thus giving you the competitive advantage against your competition.

To quote James Womack again, “​Lean thinking must start with a conscious attempt to precisely define value in terms of specific products with specific capabilities offered at specific prices through a dialogue with specific customers.”

Why would he say that? Is it even close to reality that companies do not really know what value is? The striking answer to the question is that most of the product companies have a really hard time defining real value for the customer. This is the reason why we see some companies succeed big time, while others fail. The ones that succeed have been able to first, identify what value means for a given customer segment and second, deliver a product that represents this value. The thing is, that only the customer can define value in its entirety and sometimes even the customer cannot do that. I bet you have heard the famous quote by Henry Ford, “​If I had asked people what they wanted, they would have said faster horses. . Yes, people sometimes do not know that they want something until they see it. This was the case with the PC, the iPhone and many other innovations. All these facts make it really hard to guess what value means for the customer.

However, one thing is certain, the customers are not willing to pay more if they can pay less (with some exceptions for countries built on top of oil barrels). The customer doesn’t care if you have to pay more to your vendors or if you had a bad quarter and you have to delay their order. It’s your own problem and you have to do whatever it takes to meet their expectations. Cost is always a constraint for product development and one of the key aspects of Lean, when it comes to cost, is to put the customer first. You should be asking yourself how much would the customer be willing to pay for a product. Then calculate the cost for the production of the product, provided that no ​waste​​ exists. Provided that there is a reasonable margin between these two, it is worth pursuing the possibility. As long as you are able to remove significant waste from your development process, everyone will be happy. The customer will be happy to buy the product at a cost they perceive as reasonable and your company will also be happy because of the profit. Removing waste from the development process also makes it possible to push back on competition, as long as they are not doing better than you are.

Before we close this chapter, let us touch on the idea of “total product” or, also referred to as, “whole product”. This concept is important because it is the equivalent of value. Customers enjoy value in its entirety and not delivered piece by piece. Yes, there are technology geeks, who enjoy getting their hands dirty, but most of us do not. I have an example of a real-life experience, which will definitely keep me from buying from a certain brand again.

When I was moving into my new home, I had to purchase all sorts of electrical appliances. Of course, this also meant a fridge. I had the fridge delivered to my house, but the delivery guys just put it on the street, handed me the invoice and left. So I had to adjust my expectations and figure out how to bring the appliance inside with nobody around to help me. Luckily enough, I am a relatively strong man, so I could lift it and manage to bring it in. This wo