In any economic climate, a company’s most important objective is ensuring that the cost of doing business does not overshadow its returns. When margins are robust, companies can afford to invest heavily in technologies that may not immediately produce visible returns, but can be counted on to reap benefits several years down the line.
However, when these margins become razor thin and the future looks uncertain, companies must quickly adapt their strategies and invest in only the software development strategies that can provide an immediate return on investment (ROI). With more companies seeking new approaches to achieve faster ROI in their development efforts, many have begun applying and incorporating “Lean” thinking in order to drive value to the bottom line.
Based on the manufacturing model Toyota successfully leveraged as it achieved market dominance, “Lean” principles in software development provide a systematic approach to simultaneously improving cost, quality, speed and agility.
Experience shows that it is possible to improve cost, quality, speed, and agility of development projects at the same time, but the recipe is not easy. One must start from the guiding principles of Lean thinking, and only then translate these principles into specific actions that apply to each company’s reality. The beauty of Lean is that it is simple. It doesn’t involve memorizing acronyms or buying off-the-shelf solutions. It simply requires critical thinking and a willingness to change.
What Does Lean Actually Mean?
Although the word “Lean” may initially be confused with frugality when applied to an application development scenario, it actually carries a much deeper meaning. Remember that the purpose of Lean is to improve cost, and also quality, speed and agility — and it’s no accident that agility and speed are grouped together. Agility does not necessarily mean doing things quickly. It means doing the right things, at the right speed, with the right returns. In this sense, if a company does the wrong thing in their development projects very quickly, it does not make them agile. If a company does something very inexpensively, very quickly, and with very high quality then it sounds better, but if it was the wrong thing to do to begin with, then that doesn’t achieve the promise of Lean either.
This is the first concept of Lean: understand how value is perceived by the customer, and add nothing that doesn’t increase value.
As simple as it may sound, this principle is significantly more difficult to implement than it seems. Over decades, the software industry has been built using the paradigm of mass production: software factories with extreme specialization (architects, designers, developers, testers, etc.) allowing progressively less skilled (and cheaper) workers to do the job according to detailed standardized processes — ultimately producing extensive documentation to allow hand-offs between teams. All this has pushed workers farther away from the customer, making it much more difficult to understand what and where the value is. Nevertheless, try to change this structure and you will hear cries from the rafters — this is the way it’s always been, and it’s worked so far.
The truth is that while this model has worked, it has also created significant waste in the value stream, from the customer request to the delivery of software. This is what the Lean philosophy aims to eliminate. That’s not to say that this is easy — if it were easy to see where the waste is, no one would do it in first place. Eliminating waste requires critical thinking: it requires questioning the “way we do things.” Beyond that, it requires asking the question: “Are we doing the right thing?”
If a CIO is to answer that question, they should not be limited to receiving requests from business users. They should proactively ask themselves and the business how this adds value to the company and, moreover, what will add the most value to the business? By doing this, CIOs gain a more prominent role in strategy setting and obtain the respect and commitment of non-IT colleagues. By employing short but in-depth engagements where IT and business co-workers think through the business model, strategy and value chain, the right system, process or organization redesigns can be determined. The business outcomes can be foreseen and the application development project goals, instead of delivering a set of requirements on time and on budget, evolve into delivering the right business outcome. It is a shift from “doing what was specified” to “doing what will make us all more successful.”
Adding Value with Lean
The Lean approach to software development incorporates a number of principles designed to do add value in each and every project. As previously mentioned, the first of these is to deliver only what the customer needs, when they need it.
In the software world, that means choosing tools and platforms that fit the current requirements of the user, not paying for hundreds of features that will never be used (or may only be used years from now). In application development, it means delivering software quickly and frequently, delaying commitment to features implementation until absolutely necessary.
This is contradictory to the status quo of extensive requirements-gathering phases, but it is proven to bring better results. It allows users to think about the problem at hand — and developers to take development strategies from the customer’s mouth to working software in a very short amount of time. It eliminates waiting time, including waiting for customer approvals. It reduces unnecessary documentation, making the whole process less expensive. It reduces the timeframe for moving a piece of working software to production from six months to six weeks (this is not a hypothetical result — it is a real-world example).
Another form of waste in typical application development projects is the very form in which they are framed, as projects. The ramp-up and ramp-down of project teams, and the knowledge transfer necessary at each end require an enormous amount of money. Lean instead advocates production capacity at the customer’s disposal.
Lean is Simple
Lean is an approach — a philosophy, really — and is not something that can be achieved through an out-of-the-box software suite. Forrester Research in late 2009 labeled Lean “The New Business Technology Imperative,” reinforcing the idea that the Lean approach to software development is very real, and will only grow in prominence as companies continue to seek out ways to stay nimble in the current economic climate.
But contrary to popular opinion, Lean does not require formulating a new vocabulary to understand. In fact, it’s a simple concept to understand and implement, and requires only awareness, willingness, and continuous effort. Lean IT principles been adopted across countless industries and proven their effectiveness time and again, and if implemented correctly, can reap real ROI benefits for software companies strategic enough to use them.
Leonardo Mattiazzi is Vice President of International Business for Ci&T, a global IT services company headquartered in King of Prussia, Penn., and Sao Paulo, Brazil.