A recent study of IT executives by McKinsey showed that executives’ top three concerns boil down to costs. They believe they can cut costs and improve the efficiency of IT by using lean principles, increasing the use of offshoring, and by scoping projects down.
While reducing business functionality of the projects is one way to achieve this, it’s not considered optimal. The better way to achieve success is by reducing wasted development effort. The challenge is to achieve these efficiencies in a climate where project complexity is growing exponentially.
Bill Curtis, senior vice President and chief scientist for CAST Software, said that successful application of lean principles to development and maintenance can significantly reduce complexity and cut costs. He notes that as much as 40% of a project’s cost is potentially waste. He points to 30 years of data showing that in less-mature IT organizations, anywhere between 30% and 50% of time on projects is spent fixing mistakes.
To effectively apply the principles of lean, however, IT must measure the detailed structural aspects of the product itself, like security, robustness, maintainability and performance efficiency, as well as other attributes. These factors determine the cost of doing work on the application and the risk that the application presents to the business. Unfortunately, most of the time, IT measures other factors like size, requirements, and function points at a higher level.
According to Curtis, most of the problems lie in the interactions between different tiers and different languages within the application. In other words, component quality is different than application quality.
Curtis described the landscape this way: “Most developers know one or two languages. Let’s say I’m a really good Java guy who knows how to write tight, elegant Java code. The challenge for me is that that business logic sits within a much larger body of technology that forms the application.
“There’s the UI tier that may be in ASP, JSP, VB; there’s a data management tier that may be in enterprise Java Beans or Hibernate, and SQL queries bouncing back and forth between my logic and the data. I may have to interact with middleware, enterprise apps that may be in SAP or Seybold, and I may even have to go off to some legacy app that’s in COBOL. Now, I’m a great Java programmer, but when I was in school, COBOL was taught in the archeology department.
“Any one programmer can know a lot, but no one can know everything.”
The origins of lean practices lie in processes in the automobile industry discovered by a group of MIT scholars who wrote a book called “The Machine that Changed the World” about the Toyota production system. The system improved efficiency and quality, which was the source of its “lean” name.
There are two pillars of this system. The “Just in Time” pillar, which focuses on the efficiency of the process, is where the agile community is focused. The second pillar is called “Jidoka,” which focuses on building in quality by reducing waste and getting defects out of products in the early stages.
The process of applying lean practices is reasonably simple and can be divided into three categories: Application development, application maintenance and application management. Each area of focus has specific analysis and action points which are discussed in detail in Curtis’ presentation.
Developers play a critical role, and there is much they can do to contribute toward their company’s migration toward lean practices. Retrospectives are commonplace in the agile world, and Curtis recommended that developers conduct their own personal retrospectives. He said that developers will get a sense of what takes them time and what types of mistakes they make so they can improve the quality of their own work, which in turn will take less time.
Curtis pointed out that developers get tired reworking things, and they have less time to spend on the fun parts of the project until they adopt lean practices and technologies. He also emphasized that adopting lean practices gives developers an opportunity to show that they understand that the more they win as a team, the more they win as a business.