Software Development Lifecycle
- SDLC
- Models
- Agile methodologies
Software Development Lifecycle (SDLC) is a cost-effective and time-efficient process utilized by development teams to design and build high-quality software. It aims to minimize project risks through proactive planning, ensuring that software meets customer expectations both during production and in the long term.
Benefits
- Increased visibility of the development process for all stakeholders involved
- Efficient estimation, planning, and scheduling
- Improved risk management and cost estimation
- Systematic software delivery and better customer satisfaction
Workflow
Aspect | Planning & Requirement Analysis | Defining Requirements | Design | Development | Testing | Deployment & Maintenance |
---|---|---|---|---|---|---|
Purpose |
|
|
|
|
|
|
Key Activities |
|
|
|
|
|
|
Deliverables |
|
|
|
|
|
|
Techniques and Tools |
|
|
|
|
|
|
Best Practices |
|
|
|
|
|
|
Challenges |
|
|
|
|
|
|
Key Success Factors |
|
|
|
|
|
|
SDLC Model | Description | Advantages | Disadvantages | Best Suited Scenarios |
---|---|---|---|---|
Waterfall Model | Sequential approach with distinct phases: Requirements, Design, Implementation, Testing, Deployment, and Maintenance | Clear and simple to understand. Well-suited for projects with stable requirements | Lack of flexibility, difficulty accommodating changes late in the process | Projects with well-defined requirements and minimal expected changes |
V-Model (Verification and Validation Model) | Corresponds each stage of the development life cycle with a corresponding testing phase | Early and rigorous testing, traceability between requirements and tests | Inflexible to changes, requires detailed documentation | Projects with well-understood requirements and stringent quality standards |
Iterative Model | Breaks down the development process into smaller iterations. Each iteration goes through the phases of planning, requirements, design, implementation, testing, and deployment | Allows for early delivery of a usable product, flexibility to incorporate changes, and continuous improvement | Requires clear and stable requirements for each iteration | Projects with evolving or unclear requirements, where stakeholders are open to iterative refinement |
Spiral Model | Combines iterative development with elements of the waterfall model. Progresses through multiple cycles, each including risk analysis, planning, implementation, and evaluation | Allows for extensive risk analysis and mitigation, accommodates changes during development | Complex and time-consuming, requires expertise in risk management | High-risk projects where risk assessment and mitigation are critical |
Agile Model | Emphasizes flexibility, collaboration, and customer feedback. Focuses on iterative development, continuous improvement, and adapting to changing requirements | Delivers value early and frequently, accommodates changing requirements, enhances customer satisfaction | Requires active customer involvement, may be challenging for larger teams or complex projects | Projects with rapidly changing requirements, where customer collaboration is crucial |
Scrum | An iterative and incremental framework that emphasizes teamwork, accountability, and iterative progress. Divides the project into fixed-length iterations called sprints, with a focus on delivering a potentially shippable product increment | Enhances team collaboration and transparency, fosters adaptability to changing requirements | Requires experienced Scrum Master and Product Owner, may lack predictability in scope and timeline | Projects where requirements may evolve, and rapid delivery of working software is essential |
Extreme Programming (XP) | Focuses on short development cycles, continuous testing, and frequent releases. Emphasizes customer satisfaction, simplicity, and teamwork | Enhances software quality through continuous testing, accommodates changing requirements | Requires a high level of customer involvement and close collaboration among team members | Projects with evolving requirements and a need for high-quality software |
Lean Software Development | Draws from lean manufacturing principles to eliminate waste, optimize efficiency, and deliver value to customers. Emphasizes continuous improvement, respect for people, and delivering fast | Reduces waste and inefficiency, improves workflow and productivity | May require significant cultural and organizational changes, may not be suitable for all project types | Projects aiming for efficiency, continuous improvement, and rapid delivery of value |
Feature-Driven Development (FDD) | Emphasizes iterative and incremental development based on building features. Focuses on domain object modeling, regular inspections, and progress reporting | Enhances productivity through feature-based development, emphasizes iterative progress | Requires well-defined and stable domain models, may not be suitable for projects with highly volatile requirements | Projects with a need for frequent releases and a focus on feature delivery |
Rapid Application Development (RAD) | Emphasizes rapid prototyping and iterative development. Involves close collaboration between developers and end-users to quickly develop and refine prototypes | Accelerates development time, improves user involvement and satisfaction | May sacrifice scalability and long-term maintainability for speed, requires skilled developers and users | Projects with tight deadlines, where user involvement and rapid prototyping are critical |
Joint Application Development (JAD) | Involves workshops and collaborative sessions with stakeholders to gather requirements, define scope, and design solutions | Enhances stakeholder involvement and consensus, accelerates decision-making | May require extensive resources and time commitment from stakeholders, may not be suitable for all project types | Projects with diverse stakeholder groups, where consensus-building and rapid decision-making are critical |
Dynamic Systems Development Method (DSDM) | An Agile method that emphasizes frequent delivery of working software, active user involvement, and empowerment of the development team | Enhances user involvement and collaboration, delivers value early and frequently | May require significant cultural and organizational changes, may not be suitable for all project types | Projects with rapidly changing requirements and a need for close collaboration with users |
Prototype Model | Involves creating a preliminary version of the software to gather feedback and validate requirements | Enhances user involvement and feedback, reduces development risks | May lead to misunderstandings about the nature of prototypes, may require additional effort to transition from prototype to production | Projects with unclear or evolving requirements, where user feedback is essential |
Incremental Model | Divides the project into smaller, manageable modules that are developed and delivered incrementally. Each increment adds new functionality to the system | Allows for early delivery of partial functionality, reduces development risks | Requires careful planning and integration, may increase complexity | Projects with well-understood requirements, where early delivery of core functionality is essential |
Rational Unified Process (RUP) | An iterative software development process framework that provides a disciplined approach to assigning tasks and responsibilities | Emphasizes iterative development, component-based architecture, and continuous verification | Requires significant upfront planning and documentation, may be complex to implement | Projects with large development teams, where comprehensive planning and coordination are essential |
Crystal Methods | A family of Agile methodologies that emphasize communication, collaboration, and simplicity. Tailored to specific project characteristics, such as team size, criticality, and priorities | Enhances team collaboration and communication, adapts to project needs and constraints | May lack prescriptive guidance, may require experienced practitioners for effective implementation | Projects with diverse characteristics and a need for flexible methodologies |
Cleanroom Software Engineering | Focuses on rigorous formal methods, mathematical analysis, and statistical testing to ensure software correctness and reliability | Enhances software quality and reliability, reduces defects through formal methods | Requires specialized skills and expertise, may be time-consuming and expensive | Projects with stringent quality and reliability requirements, such as safety-critical systems |
Six Sigma | A data-driven approach to process improvement that aims to reduce defects and variation in software development processes. Involves statistical analysis, process mapping, and continuous improvement | Improves process efficiency and quality, reduces defects and waste | Requires a significant investment in training and infrastructure, may not be suitable for all project types | Projects where process efficiency and quality are paramount, such as large-scale enterprise applications |
Kanban | A visual workflow management method that emphasizes incremental, evolutionary changes to improve efficiency and throughput. Involves visualizing work, limiting work in progress, and continuous improvement | Improves workflow visibility and efficiency, reduces bottlenecks and waste | May require cultural and organizational changes, may not be suitable for all project types | Projects with dynamic requirements and a need for adaptive planning and workflow management |
DevOps | Integrates development and operations teams to improve collaboration, automation, and efficiency throughout the software delivery lifecycle. Focuses on continuous integration, delivery, deployment, and monitoring | Accelerates software delivery, improves quality and reliability, enhances collaboration between teams | Requires cultural and organizational changes, may increase complexity initially | Projects aiming for rapid and reliable software delivery, with a focus on automation and collaboration |
Continuous Integration (CI) | A software development practice that involves frequently integrating code changes into a shared repository, followed by automated build and test processes | Improves software quality and reliability, detects integration issues early, accelerates feedback cycles | Requires investment in automation and infrastructure, may increase complexity initially | Projects with multiple developers contributing code, where early detection of integration issues is essential |
Continuous Delivery (CD) | Extends continuous integration to automatically deploy code changes to production or staging environments. Focuses on automating the deployment process to ensure reliable and rapid releases | Accelerates software delivery, reduces deployment risks, enhances collaboration between teams | Requires investment in automation and infrastructure, may require changes to existing processes | Projects aiming for rapid, reliable, and automated software delivery, with a focus on deployment automation |
Model-Driven Development (MDD) | Focuses on creating software models as primary artifacts, which are automatically transformed into executable code. Emphasizes abstraction, automation, and code generation | Improves productivity and consistency, enhances maintainability and reusability | Requires expertise in modeling languages and tools, may be challenging for certain types of applications | Projects with well-defined domain models and a need for rapid development and code generation |
Big Bang Model | A non-linear approach where all development activities, such as planning, design, implementation, and testing, occur simultaneously | Allows for rapid development and experimentation, accommodates changing requirements | May lack structure and control, increases risk of scope creep and quality issues | Small projects with highly uncertain requirements, where flexibility and experimentation are valued |
Component-Based Development (CBD) | Involves building software systems from reusable software components. Focuses on component identification, specification, integration, and testing | Improves productivity and maintainability, enhances reusability and scalability | Requires well-defined interfaces and standards, may increase complexity initially | Projects with common functionality or where reuse of existing components is feasible |
Evolutionary Prototyping Model | Involves developing a basic prototype quickly, gathering feedback from users, and iteratively refining the prototype based on feedback | Enhances user involvement and satisfaction, reduces development risks | May lead to misunderstandings about the nature of prototypes, requires effective management of scope and expectations | Projects with evolving or unclear requirements, where user feedback is essential |
Formal Methods | Involves mathematical techniques for specifying, designing, and verifying software systems. Focuses on rigorous analysis and proof of correctness | Improves software reliability and correctness, reduces defects and vulnerabilities | Requires specialized skills and expertise, may be time-consuming and expensive | Projects with stringent safety, security, or reliability requirements, such as critical infrastructure or aerospace systems |
Object-Oriented Development (OOD) | Emphasizes modeling software systems as a collection of interacting objects. Focuses on encapsulation, inheritance, and polymorphism for building modular and reusable software | Improves software maintainability, enhances reusability and scalability | Requires a paradigm shift in thinking, may increase complexity initially | Projects with complex domain models or where reuse and scalability are important |
Service-Oriented Development (SOD) | Focuses on building software systems as a collection of loosely coupled, interoperable services. Emphasizes modularity, reusability, and composability | Improves system flexibility and scalability, enhances interoperability and integration | Requires well-defined service contracts and standards, may increase complexity initially | Projects with distributed architectures or where interoperability and flexibility are important |
Scaled Agile Framework (SAFe) | A framework for scaling Agile practices across large organizations. Provides guidance on roles, responsibilities, ceremonies, and artifacts at various levels of the organization | Improves alignment, collaboration, and transparency across teams and stakeholders | Requires significant cultural and organizational changes, may increase complexity initially | Large-scale projects or organizations transitioning to Agile practices, where coordination and alignment are essential |
Disciplined Agile Delivery (DAD) | An Agile framework that provides guidance on end-to-end delivery, from project initiation to delivery and beyond. Emphasizes flexibility, pragmatism, and tailoring based on context | Adapts Agile practices to various project situations, improves collaboration and decision-making | Requires expertise in tailoring practices and artifacts, may be challenging to implement initially | Projects with diverse characteristics and environments, where flexibility and pragmatism are valued |
Agile Unified Process (AUP) | A simplified version of the Rational Unified Process (RUP) tailored for Agile development. Emphasizes iterative and incremental development, risk management, and continuous improvement | Improves software quality and adaptability, enhances team collaboration and stakeholder involvement | Requires expertise in tailoring practices and artifacts, may be challenging to implement initially | Projects with evolving requirements and a need for iterative development and risk management |
Lean Software Development (LSD) | Draws from lean manufacturing principles to eliminate waste, optimize efficiency, and deliver value to customers. Emphasizes continuous improvement, respect for people, and delivering fast | Reduces waste and inefficiency, improves workflow and productivity | May require significant cultural and organizational changes, may not be suitable for all project types | Projects aiming for efficiency, continuous improvement, and rapid delivery of value |
PRINCE2 (PRojects IN Controlled Environments) | A structured project management methodology that provides a framework for managing projects effectively. Emphasizes governance, risk management, and stage-based planning and control | Improves project governance and accountability, enhances risk management and control | Requires comprehensive documentation and formal processes, may be bureaucratic for smaller projects | Projects with complex requirements, multiple stakeholders, and a need for formal project management practices |
PMBOK (Project Management Body of Knowledge) | A framework for project management developed by the Project Management Institute (PMI). Provides guidelines, best practices, and standard processes for managing projects effectively | Enhances project management knowledge and skills, provides a common language and approach for project management | Requires comprehensive training and certification, may be overly prescriptive for certain projects | Projects with a need for standardized project management practices and processes |
- Overview
- Agile
- Scrum
- Kanban
Aspect | Agile | Scrum | Kanban |
---|---|---|---|
Definition | Agile is a set of principles for software development in which requirements and solutions evolve through the collaborative effort of cross-functional teams | Scrum is an iterative and incremental Agile framework for managing complex projects | Kanban is a visual system for managing work as it moves through a process |
Key Principles | Collaboration, customer feedback, flexible response to changes | Time-boxed sprints, cross-functional teams, daily stand-up meetings | Visualize work, limit work in progress, measure and manage flow |
Methodology | Agile methodology is a practice that helps continuous iteration of development and testing in the software development process | Scrum is a type of Agile methodology that allows a team to self-organize and make changes quickly, in accordance with Agile principles | Kanban is a scheduling system for lean and just-in-time manufacturing, developed by Toyota |
Roles | No specific roles in Agile - everyone contributes as a team | Scrum Master, Product Owner, Development Team | No specific roles - everyone contributes as a team |
Communication | High level of communication required for collaboration | Daily stand-ups, sprint reviews, and retrospectives for communication | Communication happens around the Kanban board, with regular reviews of the board and process |
Change Philosophy | Welcomes changes at any stage of the project | Changes are discouraged during the sprint | Changes can be made at any time |
Work Organization | Work is organized into small manageable units and prioritized | Work is organized into sprints | Work is visualized on a Kanban board |
Focus | Agile focuses on continuous delivery | Scrum focuses on the delivery of complete, shippable increments within each sprint | Kanban focuses on continuous improvement, productivity, and efficiency |
Ideal for | Complex projects where requirements often change | Projects with clearly defined sprints and where changes are minimal during the sprint | Ongoing projects with continuous delivery or where priorities often change |
Delivery | Agile aims to deliver working software frequently, with a preference for the shorter timescale | Scrum delivers after each sprint which is usually 2-4 weeks long | Kanban allows for continuous delivery |
Work in Progress Limits | No explicit limit on work in progress | Work is limited by the length and capacity of the sprint | Work in progress is limited at each stage of the workflow |
Key Metrics | Velocity, cycle time, business value delivered | Velocity, sprint burndown, release burndown | Lead time, cycle time, throughput |
Advantages | Flexibility, customer satisfaction, increased quality | Transparency, increased quality, predictable delivery | Flexibility, reduced waste, continuous delivery |
Disadvantages | Less predictability, can lead to scope creep if not managed well | Can be rigid, not suitable for every team, requires commitment | Can lead to too much multitasking, requires discipline |
4 pillars​
- Individuals over processes and tools (people over processes): Prioritizes team collaboration over rigid procedures
- Working software over comprehensive documentation (functional software over docs): Values working software over extensive documentation
- Customer collaboration over contract negotiation (customer collaboration over contracts): Emphasizes customer involvement in shaping software
- Responding to change over following a plan (adaptation over adherence): Enables quick adjustments to plans over strict adherence to initial plans
12 principles​
- Satisfy customers early and continuously: Regular updates make customers happier and boost revenue
- Embrace changing requirements: Agile thrives on adaptability, rigid plans hinder progress
- Deliver value frequently: Regular delivery reduces customer churn
- Break project silos: Collaboration enhances Agile effectiveness
- Motivate team members: Agile success hinges on committed teams
- Prioritize face-to-face communication: Direct communication fosters better understanding
- Focus on working software: Functionality is the primary progress indicator
- Maintain sustainable pace: Avoid burnout by balancing speed and sustainability
- Pursue continuous excellence: Build on past successes for future efficiency
- Embrace simplicity: Avoid overcomplicating solutions
- Empower self-organizing teams: Proactive teams drive value creation
- Reflect and adjust regularly: Adaptation enhances effectiveness through retrospective meetings
Use cases​
- Most companies typically don't adhere to all principles or procedures, thus each company adopts its own version of "Lean Agile" that best suits their needs
Finance​
- Calculate Project Costs: Estimating project costs involves determining the budget required for team salaries, equipment, licenses, and other resources needed for product delivery. This is done collaboratively by the Scrum Team during Sprint Planning
- Select Project Investments: Product Owner prioritizes investments in the Product Backlog based on factors like market demand, customer feedback, and return on investment. Decision-making between buying and building solutions occurs during Sprint Review and Sprint Retrospective meetings
- The Payback Period: Time taken for a project to recoup its initial investment is assessed based on the frequency of delivering product increments, potentially shorter due to incremental value delivery
- Buy Versus Build: Choice between purchasing external solutions or developing in-house is made considering factors like time to market, customization needs, and long-term strategic goals
- Net Present Value (NPV): Is evaluated for each product increment, comparing the present value of expected benefits with development costs. This guides prioritization in the Product Backlog
- Internal Rate of Return (IRR), or Return on Investment (ROI): Profitability of features is assessed by comparing benefits with development costs, aiding prioritization decisions during Sprint Reviews
- Monitor Project Performance
- Cost Performance: Development Team tracks actual costs during Sprints, and the Scrum Master facilitates discussions to address budgetary concerns and deviations from the planned budget
- Schedule Performance: Progress is monitored using Sprint and Release Burndown Charts. Delays or impediments are addressed in Daily Scrums and Sprint Retrospectives to ensure project timelines are met
- Project Budget Forecasting: Future costs are estimated collaboratively by the Product Owner, Scrum Master, and Development Team based on velocity, scope changes, and uncertainties. Regular reviews ensure accuracy and inform resource adjustments
Values:​
- Commitment: Dedication to Sprint and project goals (ensures alignment and motivates high-quality delivery)
- Team, Product Owner, and Scrum Master commitment
- Courage: Willingness to tackle challenges and take risks (fosters innovation, resilience, and continuous improvement)
- Transparency, adaptability, and self-organization
- Focus: Concentration on valuable tasks and Sprint Goals (enables regular delivery of working product increments)
- Sprint Goal, prioritization, and time management
- Openness: Transparency, honesty, and communication (builds trust, fosters collaboration, and supports problem-solving)
- Transparency, feedback, and collaboration
- Respect: Valuing contributions, opinions, and diversity (fosters trust, motivation, and positive work environment)
- Team dynamics, stakeholder engagement, and conflict resolution
Principles​
- Empirical Process Control: Relies on transparency, inspection, and adaptation
- Self-Organization: Scrum Team determines how to accomplish work and improve processes
- Collaboration: Essential between stakeholders for maximizing product value
- Value-Based Prioritization: Product Backlog items prioritized based on value
- Time-Boxing: Scrum events are time-boxed for focus and adaptation
- Iterative Development: Promotes incremental delivery of potentially shippable increments
- Visibility: Progress and product made visible through artifacts
- Adaptation: Inspect progress and adapt plans to maximize value
Roles​
Product Owner​
- Responsibilities
- Product Backlog Management: Prioritize, refine, and order items in the Product Backlog
- Stakeholder Communication: Ensure alignment on product vision and goals among stakeholders
- Acceptance Criteria: Define clear acceptance criteria for backlog items
- Release Planning: Collaborate on planning and prioritizing releases
- Maximizing Value: Make decisions to maximize product value
- Skills and Qualities
- Visionary: Clearly communicate product vision
- Prioritization: Prioritize backlog items effectively
- Communication: Strong communication for requirements and feedback
- Negotiation: Balance priorities and negotiate with stakeholders
- Domain Knowledge: Understand market trends and user needs
- Decision-Making: Confidently make decisions based on data
- Interaction with Stakeholders
- Regular Updates: Provide regular progress updates
- Feedback Gathering: Actively seek stakeholder feedback
- Expectations Management: Manage stakeholder expectations
- Prioritization Discussions: Engage stakeholders in prioritization
- Conflict Resolution: Resolve conflicts among stakeholders
Scrum Master​
- Responsibilities
- Facilitate Scrum Events: Ensure effectiveness of Scrum events
- Coaching and Mentoring: Coach teams on Scrum and Agile principles
- Removing Impediments: Identify and remove obstacles for the team
- Promote Self-Organization: Empower teams to make decisions
- Servant Leadership: Lead by serving the team
- Ensure Transparency: Maintain transparency in Scrum artifacts
- Servant Leadership
- Supporting the Team: Prioritize team needs
- Empowering Others: Encourage autonomy within the team
- Active Listening: Listen to team concerns
- Removing Obstacles: Clear impediments for the team
- Building Trust: Foster trust within the team
- Removing Impediments
- Identify Impediments: Monitor team progress
- Problem-Solving: Collaborate on solutions
- Escalate Issues: Raise unresolved impediments
- Continuous Improvement: Foster a culture of learning
- Documentation and Reporting: Document and report impediments
Development Team​
- Responsibilities
- Deliver Increments: Produce shippable increments
- Estimate Work: Collaborate on effort estimation
- Self-Organization: Organize work within the team
- Collaboration: Work closely with PO and SM
- Quality Assurance: Ensure product quality
- Continuous Improvement: Seek process improvements
- Self-Organization
- Autonomy: Make decisions independently
- Ownership: Take responsibility for commitments
- Collaboration: Share knowledge and skills
- Adaptability: Be flexible in response to changes
- Continuous Learning: Pursue ongoing development
- Cross-Functionality
- Diverse Skill Set: Possess varied expertise
- T-shaped Skills: Combine depth with breadth of knowledge
- Shared Responsibility: Collaborate on all aspects of the product
- Swarm Behavior: Address challenges collectively
- Flexibility: Adapt roles as needed
Events​
- Sprint: Time-boxed iteration for completing specific work
- Duration: Fixed, typically not exceeding one calendar month
- Purpose: Deliver potentially shippable product increment, provide cadence, enable feedback loops, foster transparency
- Sprint Planning: Define Sprint goal, select backlog items
- Participants: Product Owner, Development Team, Scrum Master
- Daily Scrum: Synchronize activities, identify impediments, adapt plans
- Format: Three questions (yesterday, today, impediments), time-boxed to 15 minutes
- Timebox: 15 minutes
- Sprint Review: Demonstrate work, gather feedback, assess Sprint Goal
- Stakeholder Involvement: Invite stakeholders, present product increment
- Outputs: Demonstrated product increment, feedback, updated backlog
- Sprint Retrospective: Encourage improvement, reflect on Sprint process
- Conducting Retrospectives: Facilitate discussion, identify improvements
- Continuous Improvement: Actionable items, commitment to change, iterative process
Artifacts​
- Product Backlog: Dynamic list of all work needed for the project, owned by Product Owner
- Content: Includes user stories, technical tasks, bugs, enhancements, epics, and acceptance criteria
- Prioritization: Items prioritized based on value, often using techniques like MoSCoW
- Sprint Backlog: Subset of Product Backlog for current sprint, owned by Development Team
- Contents: Includes selected user stories, sprint goal, estimates, definition of ready, and dependencies
- Updating: Updated throughout sprint based on progress and changes, discussed in Daily Standup meetings
- Increment: Sum of completed Product Backlog items, potentially releasable at end of each sprint
- Quality Standards: Must meet quality standards defined by Definition of Done, covering functionality, performance
- Definition of Done: Set of criteria for an item to be considered complete, agreed upon by Scrum Team
Scaling Scrum​
- Scrum of Scrums: Technique for coordinating multiple Scrum teams
- Structure: Meetings held daily or as needed, representatives from each team share progress, dependencies, and impediments
- Benefits: Facilitates inter-team communication, identifies and resolves dependencies, provides visibility into project progress
- Large Scale Scrum (LeSS): Scaling Scrum while retaining simplicity and core principles
- Key Principles: Single Product Backlog, Whole Team Approach, Minimal Roles and Artifacts
- Structure: Teams organized around feature areas, Sprint Planning ensures alignment, Daily Scrum of Scrums for synchronization
- Benefits: Preserves Scrum principles, simplifies coordination, adapts to changing requirements
- Scaled Agile Framework (SAFe): Comprehensive framework for scaling agile practices across the organization
- Key Components: Three Levels of Scale, Agile Release Train (ART), Lean Portfolio Management, Scaled Agile Roles
- Implementation: Launch ARTs, focus on continuous improvement through Inspect and Adapt workshops
- Benefits: Provides structured scaling framework, aligns strategy with execution, facilitates collaboration across different levels
Visualization​
To-Do | In Progress | Done |
---|---|---|
Task1 | Task2 | Task3 |
Task4 | Task5 | |
Task6 |
Principles​
- Start with what you do now: Begin with the existing workflow, making gradual changes over time
- Agree to pursue incremental, evolutionary change: Aim for small, continuous improvements instead of drastic changes
- Respect the current process, roles, responsibilities, and titles: Acknowledge the value in current systems and improve on them without discarding them
- Encourage acts of leadership at all levels: Foster shared responsibility and continuous learning by promoting leadership at all levels
Practices​
- Visualize the workflow: Use a Kanban board to map out work items and their status for transparency and understanding
- Limit work in progress (WIP): Focus on task completion by limiting ongoing tasks, reducing multitasking and improving productivity
- Flow Management: Monitor and manage the pace and smoothness of work
- Making Policies Explicit: Make all process-related rules visible to all team members
- Implement Feedback Loops: Regular meetings to review work and discuss ways to improve
- Collaborative or Experimental Evolution: Experiment with processes and learn from the results collectively
- Understanding the principles: Case Studies and Examples: Provide insights into the principles and examples in action
Kanban board​
Kanban boards are visual tools for managing workflow. Each column represents a stage of work, with cards representing individual tasks. They help improve workflow transparency, limit work in progress, and improve efficiency.
Basic Kanban boards have 3 columns: To-Do (new tasks), In-Progress (tasks being worked on), and Done (completed tasks).
Kanban cards are visual tools used in the Kanban system to track work progress. Their main purpose is to ensure a smooth workflow and limit WIP.
Implementing WIP Limits​
- WIP limits prevent overloading, promote focus, and highlight bottlenecks in the workflow
- To set WIP limits, consider team capacity, work nature, and goals. Adjust based on team feedback and historical data
- WIP limits enhance productivity by reducing multitasking and context switching. They improve efficiency by making bottlenecks visible
- WIP limits should be regularly reviewed and adjusted based on team capacity and business priorities