Answers

 

Surajit D

Business Consulting at HCL Technologies

see all my questions

Do you see a problem in applying Lean manufacturing and/or Kaizen principles to software engineering?

posted June 28, 2008 in Software Development, Enterprise Software | Closed

Share This Question

Share This

Answers (12)

 

Joel A

Founder and CEO, Efasoft

see all my answers

The test-code-refactor cycle advocated by test driven development (TDD) in agile software development can be considered as an implementation of Kaizen or continuous improvement.

posted June 28, 2008

 

Michael O

Software engineer

see all my answers

No problem at all.
Try this: http://martinfowler.com/bliki/AgileVersusLean.html
and check out Mary & Tom Poppendiek's book(s).
Good luck.

Links:

posted June 28, 2008

 

Joy M

building your business system so you can build your business

see all my answers

Best Answers in: Using LinkedIn (6), Staffing and Recruiting (2), Public Relations (2), Manufacturing (2), Professional Networking (2), Job Search (1), Mentoring (1), Occupational Training (1), Foreign Investment (1), Personnel Policies (1), Events Marketing (1), Business Development (1), Search Marketing (1), Writing and Editing (1), Corporate Governance (1), Planning (1), Philanthropy (1), Inventory Management (1), Supply Chain Management (1), Branding (1), Market Research and Definition (1), Engineering (1), Interface Design (1), Career Management (1), Ethics (1), Small Business (1), Databases (1)

People have been doing "Lean" and "Agile" in the SDLC for decades under the structured analysis label.

posted June 28, 2008

 

Manish K

Director of Projects at SourceN Inc

see all my answers

Hi Surajit-

Quite a thought.. I don't think there will be a big hurdle implementing Lean Manufacturing but i believe its very much to do with process planning and execution. With Manufacturing you have well defined Independent and Dependent tasks. Manufacturing allows you to micro divide the task and assign it to resources in a logical sequence to save Man Hours and max the Machine utilization. The time and labor required to manufacture is more or less and very well defined. Most of the tasks are heavily handled by Machines with very little human intervention.

With Software development, You need alot of Human Brain power to solve a problem which is controlled by resource's mood, attitude, and mind status, there are alot of variables involved while handling human resources. The time to complete a task is not accurately defined at the first place and most of the time the development dose not stick to the plan and is off the rail most of the time. Many a times the task and programming abilities required are varied and are not as consistent as in Manufacturing

If we can define a granular sequence of tasks, estimate the time accurately and hope all our team members are in best of their form during most of the project duration, than we can successfully implement Lean Management and try to improve over and again. The advantages Manufacturing has is the tasks are highly defined, repetitive and machine controlled. If we can mirror this in Software Development, than we are GOLDEN!

Do let me know what your thoughts are on this.

Manish

posted June 29, 2008

 

Eli W

Software Developer at XS, Inc.

see all my answers

I have thought about this subject on the past and have read numerous conversations on the parallels between Agile and Kaizens. The major dispute I have with this parallel is that Kaizens do not define the production process they are a method to make small improvements to the process in order to allow the process to run smoother. Agile, on the other hand, is the process or the framework for the process and focuses on improving the product. So while Agile can be considered Lean-inspired or similar to Lean, it has a different focus than that of Lean.
Another useful tool that can be used directly in development projects, especially with IT groups, is the project management technique called Critical Chain Project Management. This methodology derives from manufacturing processes by focusing on the deliverables during each step of the project. While at first glance this may seem like I am drawing the same parallel as Agile, the difference is that each deliverable time span is treated like a process in the project plan and each one can be looked at as a parallel to a process on a real manufacturing floor. You have buffers that correspond to buffers or kanban locations, a chain of 'processes' that are the most critical that can be optimized to directly affect the production time, and several other common factors. While I am not sure that this method would work well with Agile or iterative development, it definitely is applicable to development models such as waterfall, that more closely match how physical manufacturing processes work.

Links:

posted June 29, 2008

 

Richard G

Database and data integration professional

see all my answers

Best Answers in: Databases (4), Software Development (1)

You have listed two techniques from manufacturing and asked whether they can be applied without problems, to an alternate field.

Hence common sense suggests that we should expect problems (in applying the same method without modification) - unless we have some compelling reasons, arguments, or statistics showing commonalities between the two disciplines.

posted June 30, 2008

 

Michael S

Sr Software Engineer at Infor

see all my answers

A manufacturing operation produces the same product over and over. If all you want to produce is the same software over and over, you're on the right track. However, I suspect what you're really trying to develop is new features and functions. That's not manufacturing, that's engineering. The engineering department of a manufacturer does not use Lean manufacturing or Kaizen principles, because these techniques simply won't work when everything you create is new. Go to any manufacturer who uses either of these techniques successfully and ask them what would happen if every day they had to produce a different product.

posted June 30, 2008

 

Jeff P

Business Intelligence Solutions Architect at Corning Incorporated

see all my answers

I don't see a problem with this at all. What's the definition of LEAN? The short answer is "elimination of waste". From a software development perspective, that waste could be memory, CPU cycles, disk space, or even code that is cut & pasted over & over instead of creating a shared class or subroutine.

Refactoring code would also fall into this category. At the end of the day, LEAN is a mindset. If you have the mindset, you will code in a LEAN way working up front to keep your code efficient, short & sweet.

Hope that helps!

posted July 1, 2008

 

Jan S

Manager:Lean Practices at F-Secure Corporation

see all my answers

There is also a quite nice podcast series that I would recommend: Lean and Agile Straight Talk by NetObjectives. I found it very useful.

Links:

posted July 2, 2008

 

Muhammed U

Business Analyst At Web Notes Tech. Pvt. Ltd.

see all my answers

Best Answers in: Business Development (1), Business Analytics (1), Career Management (1)

What makes difference is tangibility and in tangibility of product.
In production it is much simpler but because of in tangibility of Software solutions if becomes difficult to measure its efficiency unless the software solutions is build using frame work where we can measure improvement i frame work from time to time or else new software system is been tested properly but third person and not the person who developed software.

Hope i made some sece.

Regards,
Umair Sayyed
mailmemumbai@gmail.com

posted July 2, 2008

 

Richard Z

President at ZULTNER & COMPANY

see all my answers

Best Answers in: Project Management (8), Software Development (3), Planning (2), Quality Management and Standards (2), Organizational Development (1), Manufacturing (1), Market Research and Definition (1), Engineering (1), Product Design (1), Computers and Software (1)

The main problem is the confusion about what "Lean" is, and what "Kaizen" is. Yes, you can apply both to software engineering, and yes you can find many people who will tell you they have done so successfully. If you are just looking to do something and claim you did "lean" and "kaizen", then you can do almost anything, and most won't be able to refute your claim.

The most direct, and most obvious, application is to the "production" side of software -- the routine processing of large numbers of little changes, error fixes, and minor enhancements. The factory metaphor fits closely here, and lean and kaizen work very similarly to the way they work in actual factories.

When you turn to the development side of software, the application is neither direct nor simple. It is necessary to understand the principles of lean and kaizen, and consider how projects differ from production. As one answer noted, critical chain project management (CC PM) is a good example of many of the lean principles applied to projects, and CC PM works very well for software projects. The Total Matrix approach in particular is "more lean" than most "lean software development" approaches.

Kaizen is easier to apply, but there is less available in the way of good training on how to do it in a software development context. You have read both Imai's books on Kaizen, yes?

Links:

posted July 3, 2008

 

Charles R

International Marketing Consultant at Media Equation

see all my answers

Taking AGILE a stage further - look at SCRUM. One of the 'founders' of SCRUM was John Scumniotales who now works for Serena Software. See -
http://community.serena.com/people/566ab3ddb0

posted July 3, 2008