Monday, September 11, 2006

SOFTWARE DEVELOPMENT AND LEAN SYSTEM CONCEPTS:
I have transitioned from Lean Manufacturing Backgroud to software Field.I am amazed at the lean concepts applicability to the software development Methods.
Lean Primary preaches any system to identify the process into these two categories:
1.Value added processes
2.Non-Value added processes.
Value added processes:
It is simple as it sounds.Identify the process which adds value to the product.
Eliminate the Non-value added processes.As we all know,it is not possible to identify and eliminate all the non-value added processes.
For example Testing Does not really add value to the Customers.Still all the corporations ubiquitiously have the Test Team.Why do they have Test Team if they do not add value to the Products?
Does it mean,the management does not have enough confidence on their development team to deliver the bug free product?
Does it mean,the test team improves the quality of the products delivered to the customers ?
Does it mean,every corporation is having the test team and let us have one too?
So what is the purpose of the Test Team in Software Development life cycle?
Most of the testers think,The responsibility of the Team to ensure the Product meets/exceeds the requirements given in the functional specification,to identify the deviations from the expected behavior,so developers can fix those issues.
Why can't developers do the task of developing the applications which meets/exceeds the expections provided in the functional specification(Customer expectations).
If you ask any tester,what's your core responsibility?
Most of the testers answer ,to find the deviations (defects,bugs,etc) and let the developers and analysts know those issues and make them fix those issues.
Does it mean the job of the testers is to find the defects inDevelopers/Analysts WOrk?
Does it mean the Devlopers/Analysts are not delivering what they suppose to deliver?
If the product goes to the customers with the deviations from the expected behavior,who owns the responsibility? Testers or Devlopers or Analysts or Product management or Program Management?

Over the years,the Manufacturing has developed and matured where as the Software developement has not matured.

Lean system preaches the responsisbility and ownership ;focus on people;commitment in the team;etc.It all sounds really nice.why it is so hard to follow those principles?
It is more cultural.We have always been taught the idea of following hierarchial structure.
Higher up in the Hierarchy means they have more power and they are always right.
How many times,do you confront your manager or some one higher up about the designs,methodology,etc.
We blindly follow the organization hierarchy structure whether it is good or bad.We feel insecure about our jobs and reviews.We have the feeling,what would happen if I say this,What would happen if I say that,etc?

Why is it not possible to create the transparent work environment where every one is part of the team and given the equal importance,foster their creative thinking,be original,not to alter their opionions and thoghts to suit the opinions and thoughts of their bosses?
Lean teaches us treat everyone with respect ,dignity and disregard thier designation,race,color,etc.How many of us are able to practice these principles?