The Six Lean Principles
Lean Principle of Value in Software Engineering
Lean Principle of Value Stream in Software Engineering
Lean Principle of Flow in Software Engineering
Lean Principle of Pull in Software Design
Lean Principle of Continuous Improvement in Software Design
Lean Concept of Respect for People in Software Design
The Six Kanban Principles
The core principles of Kanban include:
1. Visualize the Workflow
2. Limit Work in Progress (WIP)
3. Manage Flow
4. Make Process Policies Explicit
5. Feedback and Improvement
6. Collaborative Approach
Kanban
Kanban is a specific implementation of Lean principles, initially developed by Toyota for inventory management. In the context of software development and project management, Kanban is a visual management method that helps teams manage their work and optimize workflow.
Kanban boards often use visual cues like cards to represent work items, with each card progressing through the different stages of the workflow. This visual representation makes it easy for teams to understand the status of work and identify potential areas for improvement.
Lean Philosophy
Lean is a philosophy and a set of principles aimed at maximizing value while minimizing waste in a process. It was first developed by Toyota in the 1950s and revolutionized the manufacturing industry. Lean principles have since been applied to various domains, including software development.
What is the Software Development Life Cycle?
Series of General Steps in software development (will not always be exactly the same from one methodology to the next)
12 Steps of the Software Development Life cycle
Requirements Gathering and Analysis in Software Engineering
The very first step in SDFC
1. Understand the needs and requirements of stakeholders and users.
2. Analyze and document the functional and non-functional requirements of the software.
Example: Conduct interviews and surveys with stakeholders to understand their needs and preferences for a new e-commerce website. Document the required features, such as user registration, product catalog, shopping cart, and payment options.
System Design for Software Development
Creating detailed designs from system designs in Software Engineering
“Implementation” in Software Design
Testing in Software Design
Software Deployment
Maintenance and Support for Software
Software Documentation
Create comprehensive documentation throughout the development process, including design documents, user manuals, and technical guides.
Example: Create user manuals that explain how to use the e-commerce website or the mobile application. Prepare technical documentation detailing the system architecture and API specifications.
Project Management for Software
Quality Assurance in Software
Implement quality assurance practices to ensure that the software meets the required standards and quality criteria.
Version Control and Configuration Management in Software
Deployment and Release Management for Software