Kanban - David-Lennuk/Buketov_Python GitHub Wiki

Theoretical Part:

image

Meaning of the word "Kanban":

Kan (看) – means "visible" or "to look" in Japanese.

Ban (板) – means "board" or "plank."

What is Kanban?

Kanban is a workflow management method aimed at improving process transparency, efficiency, and effectiveness by using visual boards to track task progress. Originally from manufacturing processes, Kanban is now widely used in software development and project management as a methodology that helps reduce overload and increase productivity.

Kanban’s Complementary Principles and Values

Kanban’s methodology relies not only on visual tools and WIP (Work In Progress) limits but also on values that help create an effective and sustainable workflow. These values are essential for ensuring smooth work, team well-being, and delivering value to the customer.

History of Kanban

Kanban was invented by the Toyota company in the 1940s as a way to organize car production. Managers knew exactly how many cars needed to be produced and how many parts were required. This kind of planning allowed the factories to follow a just-in-time production principle, and over time, employees refined their skills toward automation.

In the 2000s, Microsoft employees adapted some of these principles for software development. Operating system development teams began creating products in a flow mode.

Transparency

Creating a transparent workflow requires maturity and responsibility from the entire team. All work stages and tasks are visible to all team members, allowing them to monitor and understand the entire workflow and identify bottlenecks.

Balance

Effective work doesn’t mean constant overwork. Maintaining balance between work and personal life is critical to avoiding burnout and maintaining high team productivity. Kanban’s WIP limits help keep workload in check and ensure the team doesn't overwhelm itself.

Collaboration

Maximum performance and quality are achieved through team collaboration. In the Kanban model, the team solves work problems together, sharing knowledge and supporting each other.

Customer-Centricity

A satisfied customer is the best indicator of work success. Kanban focuses on creating value for the customer by delivering a consistent and high-quality product or service that meets the customer’s needs.

Flow

Achieving flow means completing tasks quickly and with maximum focus. Flow is a smooth, uninterrupted process where all tasks move forward without delays, ensuring an efficient workflow.

Leadership

Strong leadership creates an independent and responsible team that can work effectively and make decisions on its own. Weak leadership, on the other hand, can demotivate and reduce team effectiveness.

Understanding

Changes in the workflow are made only when the entire team understands their necessity and purpose. Process improvements require a shared understanding and a willingness to adapt.

Consent

Kanban emphasizes the importance of finding compromises. Resolving conflicts over work and collaboration with colleagues and customers leads to a better work environment and helps achieve the best results.

Respect

Respect for oneself, colleagues, and customers is essential for achieving productivity and quality growth. A strong team is built on mutual respect and support, creating a favorable environment for productivity and innovation.

image

Kanban Principles

Visualization

A Kanban board helps visualize the workflow and see at which stage each task currently is. A typical board consists of columns representing different stages of the workflow, such as "To Do," "In Progress," and "Done."

Example: Team members can easily see which tasks are in progress and where bottlenecks might occur.

Work-in-Progress (WIP) Limits

Kanban limits the number of tasks being worked on simultaneously to reduce overload and increase efficiency. WIP limits ensure the team focuses on finishing tasks before taking on new ones.

Example: If the WIP limit in the "In Progress" column is 3, the team will not start a new task if there are already 3 tasks in progress.

Flow Management and Measurement

Kanban focuses on improving and optimizing the flow of tasks, measuring how long it takes for a task to move from one stage to another. The goal is to achieve a fast and continuous flow of work.

Example: If a task is stuck in one stage for too long, the team can analyze what causes the delay and make changes if necessary.

Continuous Improvement

Kanban supports continuous process improvement to make work smoother and more efficient. The team regularly assesses its processes and makes changes to improve the workflow.

Example: Every week, the team evaluates the progress of tasks on their board, discussing if there are any bottlenecks or tasks that require more resources.

Kanban Board Structure and Element Explanation

Columns

The Kanban board has several columns that break down the workflow into stages. Typical columns include:

  • To Do: All tasks that need to be completed.
  • In Progress: Tasks that are currently being worked on.
  • Done: Tasks that are completed.

Cards

Each task is represented by a card that moves across the board from one column to another. Cards usually contain task titles, priority, deadlines, and additional information.

WIP Limits

Set the maximum number of tasks that can be worked on at once. WIP limits help focus on completing tasks before starting new ones.

Advantages of Using Kanban

Workflow Transparency: A Kanban board enables the team to get a quick overview of the entire project and helps identify bottlenecks.

Flexibility: Kanban doesn’t require short iterations (like Scrum), so work can continue continuously without defined cycles.

Increased Efficiency: With WIP limits, the team focuses on completing tasks, reducing the number of tasks in progress, and increasing the smoothness of the workflow.

Adaptability: Kanban is highly adaptable and suitable for various workflows, from manufacturing to software development.

Important Aspects of the Definition of Done

The Definition of Done (DOD) is a set of criteria for evaluating whether a task or feature is fully complete. DOD helps avoid confusion and ambiguity by specifying the requirements each task must meet to be considered done. It is important for both quality and workflow smoothness.

Working Code:

The code must meet the task requirements and work without errors. This means all functions must operate as initially designed.

Testing:

All created code must be tested. Testing may include automated tests, unit tests, or manual checks to ensure the code's reliability and quality.

Documentation:

The code must be well-documented, including comments within the code and/or separate documentation regarding usage instructions or technical details. This makes it easier for other developers and team members to understand the code and make future modifications.

Approval from Client or Team:

The completed task must meet the client’s or company’s requirements. Before marking the task as done, approval must be obtained from stakeholders or the product owner.

Compliance with Standards:

The code and project must adhere to the company's or project’s quality and style standards (e.g., code style, commenting conventions, file structure). This ensures consistency in the project and simplifies future maintenance.

Integration:

The code must be integrated into the existing system or application and checked to ensure it doesn’t introduce new bugs or issues.

Example:

Definition of Done:

  • Data transmission to the server works 100% of the time.
  • Transmitted data includes:
    • User's GPS data (latitude and longitude).
    • The time the data was sent.
  • Data transmission is secure:
    • HTTPS protocol is used.
    • Data is encrypted according to the company’s security standards.
  • The transmission process is logged:
    • Each data transmission is logged to the server with status (success or failure).
  • The following scenarios have been tested:
    • Successful data transmission.
    • No network connection (the user receives an error message).
    • Incorrect data structure (server rejects and logs the error).
  • The team has reviewed the solution:
    • Code review has been done.
    • Unit and integration tests have passed.

Advantages of the Definition of Done

Clear Completion Criteria: The team has a shared understanding of what "done" means, helping avoid ambiguity.

Quality Assurance: DOD establishes a quality standard to ensure that each task or feature is thoroughly checked and well-documented.

Process Transparency: DOD makes the workflow transparent and reduces the risk of tasks being marked as done before they are truly finished.

System and Project Integrity: DOD requires that each task be integrated and tested within the system context, ensuring smooth operation and maintainability of the project.

image