SE Module1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Module 1

Introduction To Software Engineering and Process Models

Software
A collection of data or computer instructions that tell the computer how to work.

Nature of Software:
Nowadays, seven broad categories of computer software present continuing challenges for
software engineers .which is given below:
1. System Software:
System software is a collection of programs which are written to service other programs
Sometimes when, the system software area is characterized by the heavy interaction
with computer hardware that requires scheduling, resource sharing, and sophisticated
process management.

2. Application Software:
Application software is defined as programs that solve a specific business need.
Application in this area process business or technical data in a way that facilitates
business operation or management technical decision making.

3. Engineering and Scientific Software:


This software is used to facilitate the engineering function and task. however modern
application within the engineering and scientific area are moving away from the
conventional numerical algorithms

4. Embedded Software:
Embedded software can perform the limited and esoteric function or provided
significant function and control capability.

5. Product-line Software:
Designed to provide a specific capability for use by many different customers, product
line software can focus on the limited and esoteric marketplace or address the mass
consumer market.

6. Web Application:
It is a client-server computer program which the client runs on the web browser. In their
simplest form, Web apps can be little more than a set of linked hypertext files that
present information using text and limited graphics.

7. Artificial Intelligence Software:


Artificial intelligence software makes use of a nonnumerical algorithm to solve a
complex problem that is not amenable to computation or straightforward analysis.
Application within this area includes robotics, expert system, pattern recognition,
artificial neural network, theorem proving and game playing
Software Engineering
Software engineering is an engineering branch associated with development of software
product using well-defined scientific principles, methods and procedures. The outcome of
software engineering is an efficient and reliable software product.

Software Process

A software engineering process (also knows as software methodology) is the model selected

for managing the creation of software from customer initiation to the release of the finished

product.

The selected process typically involves methods such as

i. Requirement gathering & analysis

In this phase, stakeholders communicate with customer & system users to gather the business

requirements like who will use the system? How user will interact with the system? What

should be the system input and output? Etc.

Depending on these requirements, Software Requirement Specification (SRS) Document is

Prepared.

ii. Design

This phase makes use of output of requirement gathering phase i.e requirement specification as

an input.

Based on SRS, software design is prepared.

Data Flow Diagram, flowcharts etc. are included by design specification document.

iii. Implementation

Implementation phase of development process decomposes the system work into various
smaller parts called modules.
These modules are assigned to development team members and actual coding is started.

This is longest phase of system development.

iv. Testing

Testing phase involves testing of actual code of system against requirements of user in order

to ensure that system will satisfy all needs of users.

Various testing strategies used are unit testing, system testing, integration testing etc.

v. Deployment

In this phase, the system is deployed at user’s site for their use.

In this phase customer uses the software and give feedback to development team for any

changes or modifications in system if any.

vi. Maintenance

Some additional functionality may need to add in the application as per user’s requirement.

Capability Maturity Model (CMM)

The Software Engineering Institute (SEI) Capability Maturity Model (CMM) specifies an
increasing series of levels of a software development organization. The higher the level, the
better the software development process, hence reaching each level is an expensive and time-
consuming process.
Levels of CMM

 Level One :Initial - The software process is characterized as inconsistent, and


occasionally even chaotic. Defined processes and standard practices that exist are
abandoned during a crisis. Success of the organization majorly depends on an
individual effort, talent, and heroics. The heroes eventually move on to other
organizations taking their wealth of knowledge or lessons learnt with them.
 Level Two: Repeatable - This level of Software Development Organization has a
basic and consistent project management processes to track cost, schedule, and
functionality. The process is in place to repeat the earlier successes on projects with
similar applications. Program management is a key characteristic of a level two
organization.
 Level Three: Defined - The software process for both management and engineering
activities are documented, standardized, and integrated into a standard software
process for the entire organization and all projects across the organization use an
approved, tailored version of the organization's standard software process for
developing,testing and maintaining the application.
 Level Four: Managed - Management can effectively control the software
development effort using precise measurements. At this level, organization set a
quantitative quality goal for both software process and software maintenance. At this
maturity level, the performance of processes is controlled using statistical and other
quantitative techniques, and is quantitatively predictable.
 Level Five: Optimizing - The Key characteristic of this level is focusing on
continually improving process performance through both incremental and innovative
technological improvements. At this level, changes to the process are to improve the
process performance and at the same time maintaining statistical probability to achieve
the established quantitative process-improvement objectives.

GENERIC PROCESS MODELS

There are five generic process framework activities:

1. Communication:
The software development starts with the communication between customer and developer.

2. Planning:
It consists of complete estimation, scheduling for project development and tracking.

3. Modeling:
 Modeling consists of complete requirement analysis and the design of the project like
algorithm, flowchart etc.
 The algorithm is the step-by-step solution of the problem and the flow chart shows a
complete flow diagram of a program.

4. Construction:
 Construction consists of code generation and the testing part.
 Coding part implements the design details using an appropriate programming language.
 Testing is to check whether the flow of coding is correct or not.
 Testing also check that the program provides desired output.

5. Deployment:
 Deployment step consists of delivering the product to the customer and take feedback
from them.
 If the customer wants some corrections or demands for the additional capabilities, then
the change is required for improvement in the quality of the software.

PRESCRIPTIVE PROCESS MODELS

The name 'prescriptive' is given because the model prescribes a set of activities, actions,
tasks, quality assurance and change the mechanism for every project.
There are three types of prescriptive process models. They are:

1. The Waterfall Model

 The waterfall model is also called as 'Linear sequential model' or 'Classic life cycle
model'.
 In this model, each phase is fully completed before the beginning of the next phase.
 This model is used for the small projects.
 In this model, feedback is taken after each phase to ensure that the project is on the right
path.
 Testing part starts only after the development is complete.

NOTE: The description of the phases of the waterfall model is same as that of the process
model.

An alternative design for 'linear sequential model' is as follows:

Advantages of waterfall model


 The waterfall model is simple and easy to understand, implement, and use.
 All the requirements are known at the beginning of the project, hence it is easy to manage.
 It avoids overlapping of phases because each phase is completed at once.
 This model works for small projects because the requirements are understood very well.
 This model is preferred for those projects where the quality is more important as compared
to the cost of the project.

Disadvantages of the waterfall model


 This model is not good for complex and object oriented projects.
 It is a poor model for long projects.
 The problems with this model are uncovered, until the software testing.
 The amount of risk is high.

2. Incremental Process model

 The incremental model combines the elements of waterfall model and they are applied in an
iterative fashion.
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the customer for any suggested
modifications.
 The next increment implements on the customer's suggestions and add additional
requirements in the previous increment.
 This process is repeated until the product is finished.
For example, the word-processing software is developed using the incremental model.

Advantages of incremental model


 This model is flexible because the cost of development is low and initial product delivery is
faster.
 It is easier to test and debug during the smaller iteration.
 The working software generates quickly and early during the software life cycle.
 The customers can respond to its functionalities after every increment.

Disadvantages of the incremental model


 The cost of the final product may cross the cost estimated initially.
 This model requires a very clear and complete planning.
 The planning of design is required before the whole system is broken into small increments.
 The demands of customer for the additional functionalities after every increment causes
problem during the system architecture.

3. V MODEL
The V-model is a type of SDLC model where process executes in a sequential manner in V-
shape. It is also known as Verification and Validation model.
It is based on the association of a testing phase for each corresponding development stage.
Development of each step directly associated with the testing phase.
The next phase starts only after completion of the previous phase i.e. for each development
activity, there is a testing activity corresponding to it.
Verification: It involves static analysis technique (review) done without executing code. It
is the process of evaluation of the product development phase to find whether specified
requirements meet.

Validation: It involves dynamic analysis technique (functional, non-functional), testing


done by executing code. Validation is the process to evaluate the software after the
completion of the development phase to determine whether software meets the customer
expectations and requirements.

So V-Model contains Verification phases on one side of the Validation phases on the other
side. Verification and Validation phases are joined by coding phase in V-shape. Thus it is
called V-Model.

Design Phase:
 Requirement Analysis: This phase contains detailed communication with the customer
to understand their requirements and expectations. This stage is known as Requirement
Gathering.
 System Design: This phase contains the system design and the complete hardware and
communication setup for developing product.
 Architectural Design: System design is broken down further into modules taking up
different functionalities. The data transfer and communication between the internal
modules and with the outside world (other systems) is clearly understood.
 Module Design: In this phase the system breaks dowm into small modules. The
detailed design of modules is specified, also known as Low-Level Design (LLD).

Testing Phases:
 Unit Testing: Unit Test Plans are developed during module design phase. These Unit
Test Plans are executed to eliminate bugs at code or unit level.
 Integration testing: After completion of unit testing Integration testing is performed.
In integration testing, the modules are integrated and the system is tested. Integration
testing is performed on the Architecture design phase. This test verifies the
communication of modules among themselves.
 System Testing: System testing test the complete application with its functionality,
inter dependency, and communication.It tests the functional and non-functional
requirements of the developed application.
 User Acceptance Testing (UAT): UAT is performed in a user environment that
resembles the production environment. UAT verifies that the delivered system meets
user’s requirement and system is ready for use in real world.

Advantages:
 This is a highly disciplined model and Phases are completed one at a time.
 V-Model is used for small projects where project requirements are clear.
 Simple and easy to understand and use.
 This model focuses on verification and validation activities early in the life cycle
thereby enhancing the probability of building an error-free and good quality product.
 It enables project management to track progress accurately.
Disadvantages:
 High risk and uncertainty.
 It is not a good for complex and object-oriented projects.
 It is not suitable for projects where requirements are not clear and contains high risk of
changing.
 This model does not support iteration of phases.
 It does not easily handle concurrent events.

Evolutionary Process Models

 Evolutionary models are iterative type models.


The Evolutionary development model divides the development cycle into smaller,
incremental waterfall models in which users are able to get access to the product at the end
of each cycle.

 They allow to develop more complete versions of the software.

Following are the evolutionary process models.

1. The prototyping model


2. The spiral model
3. Concurrent development model

1. The Prototyping model

 Prototype is defined as first or preliminary form using which other forms are copied or
derived.
 Prototype model is a set of general objectives for software.
 It does not identify the requirements like detailed input, output.
 It is software working model of limited functionality.
 In this model, working programs are quickly produced.
The different phases of Prototyping model are:

1. Communication
In this phase, developer and customer meet and discuss the overall objectives of the software.

2. Quick design

 Quick design is implemented when requirements are known.


 It includes only the important aspects like input and output format of the software.
 It focuses on those aspects which are visible to the user rather than the detailed plan.
 It helps to construct a prototype.

3. Modeling quick design

 This phase gives the clear idea about the development of software because the software is
now built.
 It allows the developer to better understand the exact requirements.

4. Construction of prototype
The prototype is evaluated by the customer itself.

5. Deployment, delivery, feedback

 If the user is not satisfied with current prototype then it refines according to the requirements
of the user.
 The process of refining the prototype is repeated until all the requirements of users are met.
 When the users are satisfied with the developed prototype then the system is developed on
the basis of final prototype.

Advantages of Prototyping Model

 Prototype model need not know the detailed input, output, processes, adaptability of
operating system and full machine interaction.
 In the development process of this model users are actively involved.
 The development process is the best platform to understand the system by the user.
 Errors are detected much earlier.
 Gives quick user feedback for better solutions.
 It identifies the missing functionality easily. It also identifies the confusing or difficult
functions.

Disadvantages of Prototyping Model:

 The client involvement is more and it is not always considered by the developer.
 It is a slow process because it takes more time for development.
 Many changes can disturb the rhythm of the development team.
 It is a thrown away prototype when the users are confused with it.2. The Spiral model
 Spiral model is a risk driven process model.
 It is used for generating the software projects.
 In spiral model, an alternate solution is provided if the risk is found in the risk analysis, then
alternate solutions are suggested and implemented.
 It is a combination of prototype and sequential model or waterfall model.
 In one iteration all activities are done, for large project's the output is small.
The framework activities of the spiral model are as shown in the following figure.
NOTE: The description of the phases of the spiral model is same as that of the process
model.

Advantages of Spiral Model

 It reduces high amount of risk.


 It is good for large and critical projects.
 It gives strong approval and documentation control.
 In spiral model, the software is produced early in the life cycle process.

Disadvantages of Spiral Model

 It can be costly to develop a software model.


 It is not used for small projects.

The concurrent development model

 The concurrent development model is called as concurrent model.


 The communication activity has completed in the first iteration and exits in the awaiting
changes state.
 The modeling activity completed its initial communication and then go to the
underdevelopment state.
 If the customer specifies the change in the requirement, then the modeling activity moves
from the under development state into the awaiting change state.
 The concurrent process model activities moving from one state to another state.
Advantages of the concurrent development model

 This model is applicable to all types of software development processes.


 It is easy for understanding and use.
 It gives immediate feedback from testing.
 It provides an accurate picture of the current state of a project.

Disadvantages of the concurrent development model

 It needs better communication between the team members. This may not be achieved all the
time.
 It requires to remember the status of the different activities.
Agile Model

The meaning of Agile is swift or versatile."Agile process model" refers to a software


development approach based on iterative development.

Agile methods break tasks into smaller iterations, or parts do not directly involve long term
planning.

The project scope and requirements are laid down at the beginning of the development
process. Plans regarding the number of iterations, the duration and the scope of each iteration
are clearly defined in advance.

Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks.

The division of the entire project into smaller parts helps to minimize the project risk and to
reduce the overall project delivery time requirements. Each iteration involves a team working
through a full software development life cycle including planning, requirements analysis,
design, coding, and testing before a working product is demonstrated to the client.

Phases of Agile Model:

Following are the phases in the Agile model are as follows:


1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback

1. Requirements gathering: In this phase, you must define the requirements. You should
explain business opportunities and plan the time and effort needed to build the project. Based
on this information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders
to define requirements. You can use the user flow diagram or the high-level UML diagram to
show the work of new features and show how it will apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work begins.
Designers and developers start working on their project, which aims to deploy a working
product. The product will undergo various stages of improvement, so it includes simple,
minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance
and looks for the bug.

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.

When to use the Agile Model?


o When frequent changes are required.
o When a highly qualified and experienced team is available.
o When a customer is ready to have a meeting with a software team all the time.
o When project size is small.

Advantage(Pros) of Agile Method:


1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
Disadvantages(Cons) of Agile Model:
1. Due to the shortage of formal documents, it creates confusion and crucial decisions
taken throughout various phases can be misinterpreted at any time by different team
members.
2. Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can become
a difficulty.

Agility Principles:

The Agile Alliance defines twelve lightness principles for those that need to attain agility:
1. Our highest priority is to satisfy the client through early and continuous delivery of
valuable computer software.
2. Welcome dynamical necessities, even late in development. Agile processes harness
modification for the customer’s competitive advantage.
3. Deliver operating computer software often, from a pair of weeks to a couple of months,
with a preference to the shorter timescale.
4. Business individuals and developers should work along daily throughout the project.
5. The build comes around actuated people. offer them the setting and support they have,
and trust them to urge the task done.
6. the foremost economical and effective methodology of convincing info to and among a
development team is face-to-face speech.
7. working computer software is the primary live of progress.
8. Agile processes promote property development. The sponsors, developers, and users got
to be able to maintain a relentless pace indefinitely.
9. Continuous attention to technical excellence and smart style enhances nimbleness.
10. Simplicity—the art of maximizing the number of work not done—is essential.
11. the most effective architectures, necessities, and styles emerge from self– organizing
groups.
12. At regular intervals, the team reflects on a way to become simpler, then tunes and
adjusts its behavior consequently.

Agile Testing Methods:


o Scrum
o eXtreme Programming(XP)
o Kanban Model
o Crystal
o Dynamic Software Development Method(DSDM)
o Feature Driven Development(FDD)
o Lean Software Development

Scrum

SCRUM is an agile development process focused primarily on ways to manage tasks in team-
based development conditions.

Scrum is the type of Agile framework. It is a framework within which people can address
complex adaptive problem while productivity and creativity of delivering product is at
highest possible values. Scrum uses Iterative process.

There are three roles in it, and their responsibilities are:

o Scrum Master: The scrum can set up the master team, arrange the meeting and
remove obstacles for the process
o Product owner: The product owner makes the product backlog, prioritizes the delay
and is responsible for the distribution of functionality on each repetition.
o Scrum Team: The team manages its work and organizes the work to complete the
sprint or cycle.

Silent features of Scrum are:


 Scrum is light-weighted framework
 Scrum emphasizes self-organization
 Scrum is simple to understand
 Scrum framework help the team to work together

Lifecycle of Scrum:
Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts immediately after the
completion of the previous Sprint.

Release:
When the product is completed then it goes to the Release stage.

Sprint Review:
If the product still have some non-achievable features then it will be checked in this stage
and then the product is passed to the Sprint Retrospective stage.

Sprint Retrospective:
In this stage quality or status of the product is checked.
Product Backlog:
According to the prioritize features the product is organized.

Sprint Backlog:
Sprint Backlog is divided into two parts Product assigned features to sprint and Sprint
planning meeting.

Advantage of using Scrum framework:


 Scrum framework is fast moving and money efficient.
 Scrum framework works by dividing the large product into small sub-products. It’s like
a divide and conquer strategy
 In Scrum customer satisfaction is very important.
 Scrum is adaptive in nature because it have short sprint.
 As Scrum framework rely on constant feedback therefore the quality of product
increases in less amount of time

Disadvantage of using Scrum framework:


 Scrum framework do not allow changes into their sprint.
 Scrum framework is not fully described model. If you wanna adopt it you need to fill in
the framework with your own details like Extreme Programming(XP), Kanban, DSDM.
 It can be difficult for the Scrum to plan, structure and organize a project that lacks a
clear definition.
 The daily Scrum meetings and frequent reviews require substantial resources.

eXtreme Programming(XP)

This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.

XP is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop
a software.
eXtreme Programming (XP) was conceived and developed to address the specific needs of
software development by small teams in the face of vague and changing requirements.

Extreme programming (XP) is one of the most important software development framework
of Agile models. It is used to improve software quality and responsive to customer
requirements.

The extreme programming model recommends taking the best practices that have worked
well in the past in program development projects to extreme levels.

Extreme Programming Values


Extreme Programming (XP) is based on the five values −
 Communication
 Simplicity
 Feedback
 Courage
 Respect

Communication
Communication plays a major role in the success of a project. Problems with projects often
arise due to lack of communication. Many circumstances may lead to the breakdown in
communication. Some of the common problems are −
 A developer may not tell someone else about a critical change in the design.
 A developer may not ask the customer the right questions, and so a critical domain
decision is blown.
 A manager may not ask a developer the right question, and project progress is
misreported.
 A developer may ignore something important conveyed by the customer.
Extreme Programming emphasizes continuous and constant communication among the team
members, managers and the customer. The Extreme Programming practices, such as unit
testing, pair programming, simple designs, common metaphors, collective ownership and
customer feedback focus on the value of communication.

Simplicity
Extreme Programming believes in ‘it is better to do a simple thing today and pay a little more
tomorrow to change it’ than ‘to do a more complicated thing today that may never be used
anyway’.
 Do what is needed and asked for, but no more.
o ''Do the simplest thing that could possibly work'' The DTSTTCPW principle.

o Implement a new capability in the simplest possible way. Also known as the
KISS principle ‘Keep It Simple, Stupid!’.
o A coach may say DTSTTCPW when he sees an Extreme Programming
developer doing something needlessly complicated.
o Refactor the system to be the simplest possible code with the current feature
set. This will maximize the value created for the investment made till date.
 Take small simple steps to your goal and mitigate failures as they happen.
 Create something that you are proud of and maintain it for a long term for reasonable
costs.
 Never implement a feature you do not need now i.e. the ‘You Aren’t Going to Need It’
(YAGNI) principle.
Communication and Simplicity support each other.
The more you communicate the clearer you can see exactly what needs to be done, and you
gain more confidence about what really need not be done.
The simpler your system is, the less you have to communicate about the fewer developers that
you require. This leads to better communication.

Feedback
Every iteration commitment is taken seriously by delivering a working software. The software
is delivered early to the customer and a feedback is taken so that necessary changes can be
made if needed. Concrete feedback about the current state of the system is priceless. The value
of the feedback is a continuously running system that delivers information about itself in a
reliable way.
In Extreme Programming, feedback is ensured at all levels at different time scales −
 Customers tell the developers what features they are interested in so that the developers
can focus only on those features.
 Unit tests tell the developers the status of the system.
 The system and the code provides feedback on the state of development to the
managers, stakeholders and the customers.
 Frequent releases enable the customer to perform acceptance tests and provide
feedback and developers to work based on that feedback.
 When the customers write new features/user stories, the developers estimate the time
required to deliver the changes, to set the expectations with the customer and
managers.
Thus, in Extreme Programming the feedback −
 Works as a catalyst for change
 Indicates progress
 Gives confidence to the developers that they are on the right track

Courage
Extreme Programming provides courage to the developers in the following way −
 To focus on only what is required
 To communicate and accept feedback
 To tell the truth about progress and estimates
 To refactor the code
 To adapt to changes whenever they happen
 To throw the code away (prototypes)
This is possible as no one is working alone and the coach guides the team continuously.

Respect
Respect is a deep value, one that lies below the surface of the other four values. In Extreme
Programming,
 Everyone respects each other as a valued team member.
 Everyone contributes value such as enthusiasm.
 Developers respect the expertise of the customers and vice versa.
 Management respects the right of the developers to accept the responsibility and
receive authority over their own work.
Combined with communication, simplicity, and concrete feedback, courage becomes
extremely valuable.
 Communication supports courage because it opens the possibility for more high-risk,
high-reward experiments.
 Simplicity supports courage because you can afford to be much more courageous with
a simple system. You are much less likely to break it unknowingly.
 Courage supports simplicity because as soon as you see the possibility of simplifying
the system you try it.
 Concrete feedback supports courage because you feel much safer trying radical
modifications to the code, if you can see the tests turn green at the end. If any of the
tests do not turn green, you know that you can throw the code away.

Applications of Extreme Programming (XP): Some of the projects that are suitable to
develop using XP model are given below:
 Small projects: XP model is very useful in small projects consisting of small teams as
face to face meeting is easier to achieve.
 Projects involving new technology or Research projects: This type of projects face
changing of requirements rapidly and technical problems. So XP model is used to
complete this type of projects.
What is Kanban?

Kanban is a very popular framework for development in the agile software development
methodology. It provides a transparent way of visualizing the tasks and work capacity of a
team. It mainly uses physical and digital boards to allow the team members to visualize the
current state of the project they are working on.

When to use Kanban?

Here are the reasons for using Kanban development method:

 Kanban can be used in any domain, and it can be used very effectively in software
development. Kanban project management helps in improving the efficiency of the
team.
 It is a pull-based system. Tasks are being pulled as soon as an individual is free.
 Kanban should be used when you want to release your work at any time. It requires
git branching, but it is doable.
 Kanban should be used when you want to change the priorities on the fly. For that, all
you need to do is to put this story on the top of the to-do queue.
 It should be used when you want to visualize your work, and you want to see the
progress of your tasks visually.

Kanban Cards

The Kanban system recommends visualization of work. It suggests the use of the physical
and the digital board.

The Kanban cards are essential pieces on the Kanban board as it represent the work that the
team is working on. These cards will have

1. Priority
2. Owner
3. Type
4. Due date

A column in Kanban board represents the work stage, and you can place a WIP (Work in
Progress) limit on the column. The WIP limit means the maximum number of cards that
can stay on that column.

Since Kanban project management uses a pull-based system, as and when a developer is free,
he/she can pull a card from the to-do column to the dev column.
Kanban Board

Kanban Board is an agile project management tool that helps implement Kanaban to
manage projects for personal and business purposes. It is a physical or digital (JIRA) board
designed to help teams visualize their work at different stages and processes. It also helps
represent the stages of work with columns using cards.

It has columns that represent the status of the work like

1. To-do,
2. Dev
3. Testing
4. Done.

The Four Principles of Kanban

Below are the main Four core principles of Kanban:

1. Start with what you have now: Kanban system suggests working incrementally and
start with what you have currently. Since one of its practice is to improve
continuously, you must improve the system gradually.

2. Agree to Pursue Incremental, Evolutionary Change: Kanban recommends an


incremental change in the process, and you must not make a big change in the process
in one go.

3. Respect the Current Process, Roles & Responsibilities: Once again, start with what
you have now and change the process, role, and responsibilities in an incremental
manner.

4. Encourage Acts of Leadership at All Levels: Every individual can act as a leader
and provide ideas to improve the efficiency of the overall Kanban system. You should
not think that this is a management level activity, and even the youngest member of
the team can act as a leader.

You might also like