Kanban for Software Product Development

GUPTA, Gagan       Posted by GUPTA, Gagan
      Published: July 20, 2021
        |  

Enjoy listening to this Blog while you are working with something else !

   

Background

Kanban was invented as a lean manufacturing practice for managing assembly lines. In the mid-2000s, many agile practitioners realized Kanban met their needs as a lightweight project management methodology, so they adapted the Kanban system for software development. It requires real-time communication of capacity and full transparency of work. Work items are represented visually on a Kanban board, allowing team members to see the state of every piece of work at any time.

Kanban can be effective for data science. Its fluid and less rigorous processes provide data scientists with greater flexibility to execute their work without having to hit constant deadlines.

To learn how to integrate Kanban and other agile concepts with data science, explore our individual training and corporate consulting services.

Four Principles Of Kanban

Kanban is the Japanese word for 'billboard'or 'Visual Board'.
You can start building your Kanban system by setting up the most straightforward Kanban board with three basic columns - 'Requested', 'In Progress' and 'Done'. When constructed, managed, and functioning correctly, it serves as a real-time information repository, highlighting bottlenecks within the system and anything else that might interrupt smooth working practices.
Kanban is focused on getting things done, and its fundamentals can be broken down into four principles.

Principle #1 - Visualize Workflow

A visual representation of your process exposes potential and real problems that will impact the output of the project. It helps you locate potential and actual bottlenecks. As you compartmentalize to visualize your system, you need to define policies for managing tasks. Also, set the criteria required for completing a specific stage and moving on to the next one.

Principle #2 - Limit Work in Progress

To ensure efficiency, Kanban team members must complete their current task before starting a new one. Limiting work in progress benefits individual team members by reducing the mental effort involved in juggling multiple unfinished tasks and managing priorities.

Principle #3 - Focus on Flow

Collect and analyze flow-related data to create indicators and metrics for existing and future problems. Use this information to solve specific problems immediately as they occur.

Principle #4 - Continuous Improvement

The Kanban system is designed to create a culture of continuous improvement, across an entire organization. Feedback cycles are an important element of that. Feedback encourages reporting and fixing problems quickly. Teams are encouraged to try new approaches and solutions to existing problems. Kanban is a data-driven system, making it possible to analyze the results of this type of experimentation.

Our On-Premise Corporate Classroom Training is designed for your immediate training needs

Kanban for Software Product Development
Kanban for Software Product Development

Kanban for software teams

Agile software development teams today are able to leverage these same JIT principles by matching the amount of work in progress (WIP) to the team's capacity. This gives teams more flexible planning options, faster output, clearer focus, and transparency throughout the development cycle.

While the core principles of the framework are timeless and applicable to almost any industry, software development teams have found particular success with the agile practice. In part, this is because software teams can begin practicing with little to no overhead once they understand the basic principles. Unlike implementing kanban on a factory floor, which would involve changes to physical processes and the addition of substantial materials, the only physical things a software teams need are a board and cards, and even those can be virtual.

The Kanban development methodology differs from SCRUM with its focus on tasks. The main objective of a team in SCRUM is the successful completion of a sprint. In the Kanban methodology, tasks take first place. There aren't any sprints and a team works on a task from beginning to end.

The difference between the Kanban methodology and SCRUM is that:
- There are no time boxes in Kanban for anything (either for tasks, or sprints)
- The tasks in the Kanban methodology are larger, and there are less of them
- The period assessments in Kanban are optional, or there are none of them at all
- There is no 'speed of team' in Kanban - only average time for a full implementation is counted

Columns from left to right on the Kanban board:
- Goals: This is an optional, but useful, column on the Kanban board. High-level goals of a project may be placed here so everyone on the team knows about and can be regularly reminded of them.
- Story Queue: This column deals with the tasks ready to be started. The highest card (which has the most priority) is taken first and its card is moved to the next column.
- Elaboration & Acceptance: This column and all the others before the 'Done' column may vary, based on the workflow of individual teams. Tasks that are under discussion - an uncertain design or code approach that needs to be finalized, for example - may be placed here. When the discussion is finished, it is moved to the next column.
- Development: The task lives here until the development of the feature is completed. When the task is complete, it is moved to the next column. If the architecture is incorrect or uncertain, it may be moved back to the previous column.
- Test: The task is in this Kanban column while it is being tested. If there are any issues, it is returned to 'Development'. If there are none, then it is moved to the next column.
- Deployment: Each project has its own deployment. This could mean putting a new version on the server or just committing code to the repository.
- Done: The card appears in this section of the Kanban board when the item is completely finished and doesn't need to be worried about anymore.

Our On-Premise Corporate Classroom Training is designed for your immediate training needs

Disadvantages of kanban


- Required Constant Board Monitoring: While many teams may consider this a benefit, it cannot be denied that a kanban board must be constantly surveilled, to ensure that the cards do not become outdated, thus causing more harm than good.
- Kanban is not a methodology that could be applied solely rather it can be merged with other processes and systems of a company like JIT, make to order and scrum etc. making these systems more visible.
- As the tasks are continuously shifted between the columns of kanban board, the prediction of specific timelines for completion of tasks or activities becomes difficult. This is because kanban acts only as a signaling port in a pull production system.
- Kanban will become very difficult to apply if too much activities or tasks are interrelated in a system. This is because such systems enhance the possibility of transfers of goods and expertise amongst different tasks too often and increases difficulty to keep the pace of all these activities.

Kanban with JIRA

Once you login to Jira Software, you will have the option to create a project. When you get the project type selection, ensure you select Kanban software development project. Your new Kanban software development project will also include a Kanban board. Once you've created your project, your team's Kanban board is the first thing you'll see. This is where your team will eventually keep track of their work. In Jira Software, the Kanban project gives you an out-of-the-box workflow with Backlog, Selected for Development, In Progress, and Done. This lets the product owner add tasks to the backlog, and move them to "ready for development" once the task or user story is fully baked. Contact our team of experts to guide you through kanban in JIRA.

Scrumban

Some teams blend the ideals of kanban and scrum into 'scrumban'. They take fixed length sprints and roles from scrum and the focus on work in progress limits and cycle time from kanban. For teams just starting out with agile, however, we strongly recommend choosing one methodology or the other and running with it for a while. You can always get fancy later on.

Development teams use Kanban because it provides a simple visual method to improve productivity, reduce development overhead costs, and speed time to market. The key to success? Just get started. Learn by doing. With work visibility offered by a Kanban board, you'll soon discover the efficiencies you and your team are capable of.

Support our effort by subscribing to our youtube channel. Update yourself with our latest videos on Data Science.

Looking forward to see you soon, till then Keep Learning !

Our On-Premise Corporate Classroom Training is designed for your immediate training needs

Kanban for Software Product Development
                         



Corporate Scholarship Career Courses