Friday, February 10, 2012

Patary's Philosophy: Kanban and software maintenance projects and pr...

Patary's Philosophy:
Kanban and software maintenance projects and

pr...
: Kanban and software maintenance projects and productivity improvement: Managing maintenance project is tough. Presenting maintenanc...

Kanban and software maintenance projects and 

productivity improvement:

Managing maintenance project is tough. Presenting maintenance project report to upper management is tough. There are several factors, which drives maintenance project into crazy!.
Most of the product company’s significant effort goes to maintain the legacy systems.
Those products support many customer Bases. Organization cannot say NO to the customer. Organization has to listen to their customer and help them to satisfy their need. More customization happening the product stability, extensibility of the product is becoming issue if the product was not architecting properly and then maintenance projects born
Most of the maintenance project are in legacy system with legacy technology.
Getting good resources for old technology is challenging,
retaining and maintaining motivation level of the resources for maintenance project is challenging.
Driving the maintenance project based on the release/priority need constant push.
Maintenance project ROI is not always good.
Deploying standard process for maintenance project is a challenge
Resource loading is a challenge if the SPR flow is not constant
Most of the maintenance project team size are small in number
Project can not afford to do many process as overhead will increase
priority fluctuation cause lot of planning issue, some time some issues are "do it now”, some time it tag with some release schedule for later period, some time product manager change the priority `
Kanban is best to apply for maintenance project.
Kanban word meaning is "Signboard" or "Billboard". The concept is related to lean or Just in time(JIT).Lean is a general term for finding ways to eliminate waste and increase efficienty.Kanban is one of the lean tool .Kanban is a scheduling system that tells you what to produce, when to produce it, and how much to produce
Software maintenance project follow certain process - a series of steps to achieve the results.
Kan ban is a tool for managing the flow of materials or information in a process.Kanban is a tool to learn and manage an optimal flow of work within a process.
Kanban process will tell us:
• Where are we now?
• When will it be done?
• Who is working on what?
• What should I be doing now?
How can we use Kanban in software maintenance project :
a) Visualize the workflow:
A visual representation of the process lets you see exactly how tasks change from
being "not done" to "done right". Visualizing the flow of work and making it visible is core to building an understanding how work works. We add who is working on which CR/Bug and what is the state of the bugs and what phase it is in.
b)Limit Work in Process (WIP):
Limiting work-in-progress implies that a pull system is implemented on parts or all of the workflow. The pull system will act as one of the main stimuli for continuous, incremental and evolutionary changes to your system. at one point of time we are minimizing many things and concentrating to work in hand and complete it with full energy.
c) Manage flow:
if we can not measure we can not manage.The flow of work through each state in the workflow should be monitored, measured and reported.
d)Make Process Policies Explicit:
Until the mechanism of a process is made explicit it is often hard or impossible to hold a discussion about improving it. Without an explicit understanding of how things work and how work is actually done.
e) Improve collaboratively:
The Kanban Method suggests that a scientific approach is used to implement continuous, incremental and evolutionary changes. The method does not prescribe a specific scientific method to use. Daily stand up meeting , working as a pair and reviewing with peer has helped to increase collaboration.
Our maintenance flow:
1.Bugs are raised in the production environment/ from site/fields.
2.They are prioritized and assigned based on their priority.
3.Along with bugs change requests are raised. They need to be fixed based on prioritised along with the bugs.
4.Sprint would be planned based on a group of bugs and CRs depending on resources available.
5.If there are no bugs or change requests, improvements could be done to system (Of course trying not to introduce new bugs).
6. Some bugs are not reproducible, so those bug need to close with proper comments
7. Some bugs cause more bugs for that impact analysis phase has to be mentioned.

How to measure productivity:
Kanban is a "pull" system. The term comes from the idea that one stage of the process pulls work from the previous stage, giving the signal to the previous stage to "make another one" (to borrow manufacturing terms).
This approach limits WIP, as opposed to a "push" system, where getting started with Kanban each stage works as quickly as possible and then pushes.
Pull means that when someone is ready to do work, they look on the board to see what
needs to be done, and they pull their next task into the column representing the next step in the process. The task
becomes their responsibility until they finish their step in the process and someone else pulls it into the next step.
Inspect and Adapt:
It's not a requirement of kanban that you learn from your
mistakes, but generally it's a good idea. Certain advantages
come simply as a result of visualizing your workflow. Two powerful tools
for tracking improvements are to know the lead-time and
cycle time.
Work to the next task – no matter how much WIP already
exists.