Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

DevOps-1

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

DevOps :

The DevOps is the combination of two words, one is Development and other is Operations.
DevOps is a transformative culture and practice that unites software development (Dev) and
IT operations (Ops) teams.

DevOps and Why is it Crucial?


Integration between development, operations, security, and quality assurance teams is
promoted by the DevOps ideology and set of procedures.

Here's why DevOps is essential:


 Faster Time to Market: Deliver features and updates at breakneck speed, keeping your
business ahead of the curve.
 Improved Quality and Reliability: Automate testing and monitoring to ensure flawless
application performance.
 Enhanced Collaboration: Bridge the gap between development and operations teams,
fostering a culture of shared responsibility.
 Reduced Costs: Streamline processes and eliminate inefficiencies, leading to significant
cost savings.

DevOps Model Defined


DevOps is a software development approach that emphasizes collaboration and
communication between development (Dev) and operations (Ops) teams. It aims to shorten
the software development lifecycle and improve the quality and reliability of software
releases.
DevOps History

o In 2009, the first conference named DevOpsdays was held in Ghent Belgium. Belgian
consultant and Patrick Debois founded the conference.
o In 2012, the state of DevOps report was launched and conceived by Alanna Brown at
Puppet.
o In 2014, the annual State of DevOps report was published by Nicole Forsgren, Jez
Humble, Gene Kim, and others. They found DevOps adoption was accelerating in
2014 also.
o In 2015, Nicole Forsgren, Gene Kim, and Jez Humble founded DORA (DevOps
Research and Assignment).
o In 2017, Nicole Forsgren, Gene Kim, and Jez Humble published "Accelerate: Building
and Scaling High Performing Technology Organizations".
DevOps Architecture Features
Here are some key features of DevOps architecture, such as:

1) Automation
Automation can reduce time consumption, especially during the testing and deployment
phase. The productivity increases, and releases are made quicker by automation. This will
lead in catching bugs quickly so that it can be fixed easily. For contiguous delivery, each code
is defined through automated tests, cloud-based services, and builds. This promotes
production using automated deploys.

2) Collaboration
The Development and Operations team collaborates as a DevOps team, which improves the
cultural model as the teams become more productive with their productivity, which
strengthens accountability and ownership. The teams share their responsibilities and work
closely in sync, which in turn makes the deployment to production faster.

3) Integration
Applications need to be integrated with other components in the environment. The
integration phase is where the existing code is combined with new functionality and then
tested. Continuous integration and testing enable continuous development.
4) Configuration management
It ensures the application to interact with only those resources that are concerned with the
environment in which it runs. The configuration files are not created where the external
configuration to the application is separated from the source code. The configuration file
can be written during deployment, or they can be loaded at the run time, depending on the
environment in which it is running.

Development Process :
DevOps is a continuous cycle, often depicted as an infinity symbol, where the 'final' stage
connects to the 'first', to emphasize the continuing nature of the process.

The stages in DevOps are:

 Plan
 Code & Assemble
 Build
 Test
 Release
 Deploy
 Operate
 Monitor

DevOps Life Cycle


DevOps is a practice that enables a single team to handle the whole application lifecycle,
including development, testing, release, deployment, operation, display, and planning. It is a
mix of the terms “Dev” (for development) and “Ops” (for operations).
DevOps Lifecycle is the set of phases that includes DevOps for taking part
in Development and Operation group duties for quicker software program delivery. DevOps
follows positive techniques that consist of code, building, testing, releasing, deploying,
operating, displaying, and planning. DevOps lifecycle follows a range of phases such as
non-stop development, non-stop integration, non-stop testing, non-stop monitoring, and
non-stop feedback.
DevOps lifecycle is effortless to manipulate and it helps satisfactory delivery.

DevOps Approach: 7Cs of DevOps

dev0ps approach starts with the agile mantra “People over Process over Tools”. People –
Communication & Collaboration Process – Source Control Check-ins, Code Review, Code
Quality, CI, CD, Change Control, RCAs Tools – For Continuous Delivery and Continuous
Monitoring

We ensure our clients agile delivery through Continuous Planning, Continuous


Development, Continuous Integration, Continuous Deployments, Continuous Testing,
Continuous Monitoring and Continuous Feedback.
7 Cs of DevOps
1. Continuous Development
2. Continuous Integration
3. Continuous Testing
4. Continuous Deployment/Continuous Delivery
5. Continuous Monitoring
6. Continuous Feedback
7. Continuous Operations

DevOps Principles

The main principles of DevOps are Continuous delivery, automation, and fast reaction to
the feedback.

1. End to End Responsibility: DevOps team need to provide performance support until
they become the end of life. It enhances the responsibility and the quality of the
products engineered.
2. Continuous Improvement: DevOps culture focuses on continuous improvement to
minimize waste. It continuously speeds up the growth of products or services
offered.
3. Automate Everything: Automation is an essential principle of the DevOps process.
This is for software development and also for the entire infrastructure landscape.
4. Custom Centric Action: DevOps team must take customer-centric for that they
should continuously invest in products and services.
5. Monitor and test everything: The DevOps team needs to have robust monitoring
and testing procedures.
6. Work as one team: In the DevOps culture role of the designers, developers, and
testers are already defined. All they needed to do is work as one team with complete
collaboration.

Benefits of DevOps

1. Faster Delivery: DevOps enables organizations to release new products and updates
faster and more frequently, which can lead to a competitive advantage.
2. Improved Collaboration: DevOps promotes collaboration between development and
operations teams, resulting in better communication, increased efficiency, and reduced
friction.
3. Improved Quality: DevOps emphasizes automated testing and continuous integration,
which helps to catch bugs early in the development process and improve the overall
quality of software.
4. Increased Automation: DevOps enables organizations to automate many manual
processes, freeing up time for more strategic work and reducing the risk of human error.
5. Better Scalability: DevOps enables organizations to quickly and efficiently scale their
infrastructure to meet changing demands, improving the ability to respond to business
needs.
6. Increased Customer Satisfaction: DevOps helps organizations to deliver new features
and updates more quickly, which can result in increased customer satisfaction and
loyalty.
7. Improved Security: DevOps promotes security best practices, such as continuous testing
and monitoring, which can help to reduce the risk of security breaches and improve the
overall security of an organization’s systems.
8. Better Resource Utilization: DevOps enables organizations to optimize their use of
resources, including hardware, software, and personnel, which can result in cost savings
and improved efficiency.

Complete DevOps Roadmap

DevOps is considered a set of practices that combines the abilities of Software


Development i.e Dev and IT Operations i.e Ops together, which results in delivering top
quality software fastly and more efficiently. Its focus is to
encourage communication, collaboration, and integration between the software
development team and IT operations to maintain the software development lifecycle.
A DevOps Engineer is a person who manages DevOps practices and ensures the streamlined
flow of the deployment process. Its key responsibilities may vary from organization to
organization but here are some key roles and responsibilities of a DevOps Engineer:
 Implementing CI/CD operations.
 Automating the Infrastructure.
 Collaborating with different teams mainly SDE teams and IT operations teams.
 Managing the availability and performance of the Software applications.
 Troubleshooting and resolving the issues of the organization.

ITOps:
IT operations is important because it manages the most critical digital assets and processes
within an organization. It's a key component of any business, and helps to ensure that IT
systems are secure, reliable, and compliant with industry regulations.

ITOps involves a range of tasks, including:

 Managing hardware and software: Ensuring that hardware, software, and network
resources are functioning optimally
 Administering network structure: Managing the devices that can connect to the
network
 Defending assets: Mitigating threats posed by malware and hackers
 Implementing new technologies: Streamlining processes and reducing manual labour
 Planning for disaster recovery: Protecting the business from experiencing significant
downtime and lost revenue

DevOps has become one of the most valuable business disciplines for enterprises or
organizations. With the help of DevOps, quality, and speed of the application delivery has
improved to a great extent.
DevOps For Business Agility
Software development providers struggle to deliver at the rate business leaders want. As
the speed of application development is increasing, businesses must deliver software ultra-
fast with high quality. To achieve that, businesses need an express way with highest degree
of automation and standardization to repeat the entire solutions life cycle over and over
again at supersonic speed; DevOps is that expressway.
DevOps is a culture that promotes better working relationship within the company and
improves IT service delivery agility. DevOps is an approach based on agile and lean principles
in which business owners, development, operations and quality engineering team
collaborate to deliver software in a continuous stable manner.
Continuous Testing

Continuous testing is a key principle in DevOps that's important because it helps deliver
high-quality software faster. It involves running automated tests throughout the software
development lifecycle (SDLC) to find and fix issues early:

 Faster feedback: Automated test cases provide instant feedback at each stage of
development.
 Improved quality: Continuous testing ensures quality is prioritized at every stage.
 Reduced risk: Software is checked many times throughout its life cycle, which reduces
the risk of business disruption.
 Improved user experience: Continuous testing can simulate use cases and
troubleshooting scenarios to observe how users respond.
 Faster time to market: Continuous testing can help you get a viable product to market
faster.
 Seamless collaboration: Continuous testing can help developers, QA, and operations
teams collaborate more seamlessly.
Continuous testing is integrated into the CI/CD pipeline and can include functional, code
quality, unit, regression, integration, and load tests.

What is CI / CD in DevOps :
CI/CD, or continuous integration and continuous delivery, is a set of practices that are an
essential part of DevOps methodology. CI/CD aims to streamline and speed up the software
development lifecycle.

CI/CD includes the following practices:

 Continuous integration (CI)


Developers frequently merge code changes into a central repository. CI includes
automated testing steps to ensure the reliability of merged code changes.
 Continuous delivery (CD)
The code is then delivered quickly and seamlessly as part of the CD process.
 CI/CD platform to automate the following stages:
o Code commit: Trigger builds upon code commits to the version control system.
o Build and test: Automate building, testing, and code quality checks.
o Deployment: Deploy the application to staging or production environments based on
successful test results.
o Monitoring: Monitor the deployed application for errors or performance issues.

CI/CD helps ensure that:

 Code is always in a releasable state


 New features and bug fixes reach customers as quickly as possible
 Problems are identified early in the development process

Software Development Life Cycle (SDLC)

SDLC Cycle represents the process of developing software used by the software industry to:

- Design

- Develop

- Test

The end goal of the SDLC to produce high quality products.

The stages of SDLC are as follows :

- Planning and Requirement analysis

- Defining Requirements

- Designing the software


- Developing the project

- Testing

- Deployment

- Maintenance

Planning and Requirement Analysis :

Requirement Analysis is the most important and necessary stage in SDLC.

The senior members of the team perform it with inputs from all the stakeholders and
domain experts or SMEs (Subject Matter Expert) in the industry.

Planning for the quality assurance requirements and identifications of the risks associated
with the projects is also done at this stage.

Business analyst and Project organizer set up a meeting with the client to gather all the data
like what the customer wants to build, who will be the end user, what is the objective of the
product. Before creating a product, a core understanding or knowledge of the product is
very necessary.

Defining Requirements :
Once the requirement analysis is done, the next stage is to certainly represent and
document the software requirements and get them accepted from the project stakeholders.

This is accomplished through "SRS"- Software Requirement Specification document which


contains all the product requirements to be constructed and developed during the project
life cycle.

Designing the Software :


The next phase is about to bring down all the knowledge of requirements, analysis, and
design of the software project. This phase is the product of the last two, like inputs from the
customer and requirement gathering.
Developing the Project :
In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow the
coding guidelines described by their management and programming tools like compilers,
interpreters, debuggers, etc. are used to develop and implement the code.
Testing :
After the code is generated, it is tested against the requirements to make sure that the
products are solving the needs addressed and gathered during the requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance testing are
done.

Deployment :

Once the software is certified, and no bugs or errors are stated, then it is deployed. Then
based on the assessment, the software may be released.

After the software is deployed, then its maintenance begins.

Maintenance :

Once when the client starts using the developed systems, then the real issues come up and
requirements to be solved from time to time.

SDLC Models
Software Development life cycle (SDLC) is a spiritual model used in project management
that defines the stages include in an information system development project, from an
initial feasibility study to the maintenance of the completed application.

There are different software development life cycle models specify and design, which are
followed during the software development phase. These models are also called "Software
Development Process Models." Each process model follows a series of phase unique to its
type to ensure success in the step of software development.

Here, are some important phases of SDLC life cycle:

- Waterfall Model
- RAD Model
- Prototype Model
- Spiral Model
- V Model
- Agile Model
Waterfall Model
The Waterfall Model is a classical software development methodology. It was first
introduced by Winston W. Royce in 1970. It is a linear and sequential approach to software
development that consists of several phases. It must be completed in a specific order. This
classical waterfall model is simple and idealistic. It was once very popular. Today, it is not
that popularly used. However, it is important because most other types of software
development life cycle models are a derivative of this. In this article we will see waterfall
model in detail.
The waterfall model is useful in situations where the project requirements are well-defined
and the project goals are clear. It is often used for large-scale projects with long timelines,
where there is little room for error and the project stakeholders need to have a high level of
confidence in the outcome.
Features of Waterfall Model
Following are the features of the waterfall model:
1. Sequential Approach: The waterfall model involves a sequential approach to software
development, where each phase of the project is completed before moving on to the
next one.
2. Document-Driven: The waterfall model depended on documentation to ensure that the
project is well-defined and the project team is working towards a clear set of goals.
3. Quality Control: The waterfall model places a high emphasis on quality control and
testing at each phase of the project, to ensure that the final product meets the
requirements and expectations of the stakeholders.
4. Rigorous Planning: The waterfall model involves a careful planning process, where the
project scope, timelines, and deliverables are carefully defined and monitored
throughout the project lifecycle.

Phases of Waterfall Model

The Waterfall Model has six phases which are:

1. Requirements: The first phase involves gathering requirements from stakeholders and
analyzing them to understand the scope and objectives of the project.

2. Design: Once the requirements are understood, the design phase begins. This involves
creating a detailed design document that outlines the software architecture, user
interface, and system components.

3. Development: The Development phase include implementation involves coding the


software based on the design specifications. This phase also includes unit testing to
ensure that each component of the software is working as expected.

4. Testing: In the testing phase, the software is tested as a whole to ensure that it meets
the requirements and is free from defects.

 Alpha testing: Alpha testing is the system testing performed by the development
team.
 Beta testing: Beta testing is the system testing performed by a friendly set of
customers.
 Acceptance testing: After the software has been delivered, the customer performs
acceptance testing to determine whether to accept the delivered software or reject
it.

5. Deployment: Once the software has been tested and approved, it is deployed to the
production environment.
6. Maintenance: The final phase of the Waterfall Model is maintenance, which involves
fixing any issues that arise after the software has been deployed and ensuring that it
continues to meet the requirements over time.

Advantages :
- Simple
- Provides a structured way of doing things.
- Works well with the small projects where requirements are well understood before
hand.
- Time spent in the software development cycle can reduce cost at later stages.
Disadvantages :
- Not change friendly
- Poor resource allocation
- Communication gap can result in disaster.
- Need crystal clear requirements.
- No working model of the software will be available until all phases are finished.
- It might be difficult to foresee all the risks which will come later stages of
development.
Prototype Model
The Prototyping Model is one of the most popularly used Software Development Life Cycle
Models (SDLC models). This model is used when the customers do not know the exact
project requirements beforehand. In this model, a prototype of the end product is first
developed, tested, and refined as per customer feedback repeatedly till a final acceptable
prototype is achieved which forms the basis for developing the final product.
Steps of Prototyping Model

1. Requirement Gathering and Analysis: This is the initial step in designing a prototype
model. In this phase, users are asked about what they expect or what they want from the
system.

2. Quick Design: This is the second step in the Prototyping Model. This model covers the
basic design of the requirement through which a quick overview can be easily described.

3. Build a Prototype: This step helps in building an actual prototype from the knowledge
gained from prototype design.

4. Initial User Evaluation: This step describes the preliminary testing where the
investigation of the performance model occurs, as the customer will tell the strengths
and weaknesses of the design, which was sent to the developer.

5. Refining Prototype: If any feedback is given by the user, then improving the client’s
response to feedback and suggestions, the final system is approved.

6. Implement Product and Maintain: This is the final step in the phase of the Prototyping
Model where the final system is tested and distributed to production, here the program
is run regularly to prevent failures.

Advantages of Prototyping Model

 The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.

 New requirements can be easily accommodated as there is scope for refinement.

 Missing functionalities can be easily figured out.


 Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.

 The developed prototype can be reused by the developer for more complicated projects
in the future.

 Flexibility in design.

 Early feedback from customers and stakeholders can help guide the development
process and ensure that the final product meets their needs and expectations.

 Prototyping can be used to test and validate design decisions, allowing for adjustments
to be made before significant resources are invested in development.

 Prototyping can help reduce the risk of project failure by identifying potential issues and
addressing them early in the process.

 Prototyping can facilitate communication and collaboration among team members and
stakeholders, improving overall project efficiency and effectiveness.

 Prototyping can help bridge the gap between technical and non-technical stakeholders
by providing a tangible representation of the product.

Disadvantages of the Prototyping Model

 Costly concerning time as well as money.


 There may be too much variation in requirements each time the prototype is evaluated
by the customer.
 Poor Documentation due to continuously changing customer requirements.
 It is very difficult for developers to accommodate all the changes demanded by the
customer.
 There is uncertainty in determining the number of iterations that would be required
before the prototype is finally accepted by the customer.
 After seeing an early prototype, the customers sometimes demand the actual product to
be delivered soon.
 Developers in a hurry to build prototypes may end up with sub-optimal solutions.
 The customer might lose interest in the product if he/she is not satisfied with the initial
prototype.

Applications of Prototyping Model

 The Prototyping Model should be used when the requirements of the product are not
clearly understood or are unstable.
 The prototyping model can also be used if requirements are changing quickly.
 The prototyping Model is also a very good choice to demonstrate the technical feasibility
of the product.
RAD Model
The RAD model or Rapid Application Development model is a type of software development
methodology that emphasizes quick and iterative release cycles, primarily focusing on
delivering working software in shorter timelines. Unlike traditional models such as the
Waterfall model, RAD is designed to be more flexible and responsive to user feedback and
changing requirements throughout the development process.

When to use the RAD Model?

1. Well-understood Requirements: When project requirements are stable and


transparent, RAD is appropriate.
2. Time-sensitive Projects: Suitable for projects that need to be developed and delivered
quickly due to tight deadlines.
3. Small to Medium-Sized Projects: Better suited for smaller initiatives requiring a
controllable number of team members.
4. High User Involvement: Fits where ongoing input and interaction from users are
essential.
5. Innovation and Creativity: Helpful for tasks requiring creative inquiry and innovation.
6. Prototyping: It is necessary when developing and improving prototypes is a key
component of the development process.
7. Low technological Complexity: Suitable for tasks using comparatively straightforward
technological specifications.

Objectives of Rapid Application Development Model (RAD)

1. Speedy Development
Accelerating the software development process is RAD’s main goal. RAD prioritizes rapid
prototyping and iterations to produce a working system as soon as possible. This is
especially helpful for projects when deadlines must be met.
2. Adaptability and Flexibility
RAD places a strong emphasis on adapting quickly to changing needs. Due to the model’s
flexibility, stakeholders can modify and improve the system in response to changing
requirements and user input.

3. Stakeholder Participation
Throughout the development cycle, RAD promotes end users and stakeholders’ active
participation. Collaboration and frequent feedback make it possible to make sure that the
changing system satisfies both user and corporate needs.

4. Improved Interaction
Development teams and stakeholders may collaborate and communicate more effectively
thanks to RAD. Frequent communication and feedback loops guarantee that all project
participants are in agreement, which lowers the possibility of misunderstandings.

5. Improved Quality via Prototyping


Prototypes enable early system component testing and visualization in Rapid Application
Development (RAD). This aids in spotting any problems, confirming design choices, and
guaranteeing that the finished product lives up to consumer expectations.

6. Customer Satisfaction
Delivering a system that closely satisfies user expectations and needs is the goal of RAD.
Through rapid delivery of functioning prototypes and user involvement throughout the
development process, Rapid Application Development (RAD) enhances the probability of
customer satisfaction with the final product.

Advantages of Rapid Application Development Model (RAD)

 The use of reusable components helps to reduce the cycle time of the project.
 Feedback from the customer is available at the initial stages.
 Reduced costs as fewer developers are required.
 The use of powerful development tools results in better quality products in
comparatively shorter periods.
 The progress and development of the project can be measured through the various
stages.
 It is easier to accommodate changing requirements due to the short iteration time
spans.
 Productivity may be quickly boosted with a lower number of employees.

Disadvantages of Rapid application development model (RAD)

 The use of powerful and efficient tools requires highly skilled professionals.
 The absence of reusable components can lead to the failure of the project.
 The team leader must work closely with the developers and customers to close the
project on time.
 The systems which cannot be modularized suitably cannot use this model.
 Customer involvement is required throughout the life cycle.
 Not every application can be used with RAD.

Agile Model
What is Agile : It is flow of action / Process / Pattern
Why Agile is popular?
There are two reasons why Agile is so popular and famous.
- Continuous Feedback
- Constant Customer / Client Interaction
Important Terms in Agile Model :
- SCRUM
- Kanban
Sprint / Iteration :
The main motto of the Agile Model is to deliver the product successfully.
What is Sprint : Time period. The sprint period usually 1 to 4 weeks time. In general Sprint
time period is 2 weeks.
It includes :
- What to take
- What to do
- What to deliver
Before going further we need to focus on :
- Product backlog
- Sprint backlog
What is product? : It is an end result what customer / client expects.
What is Product Backlog?
A product backlog is a prioritized list of work for the development team that is derived from
the product roadmap and its requirements. The most important items are shown at the top
of the product backlog so the team knows what to deliver first.

In simple words :
- All the actions are related to the entire process / development.

What is Sprint Backlog?


A sprint backlog is a list of work items your team plans to complete during a project sprint.
These items are usually pulled from the product backlog during the sprint planning session .
In other words :
What you want to complete within the sprint period.
Sprint Planning : Effort estimation.
Here,
- Developers
- Team Lead
- SCRUM Master (Manager)
- Product Owner
Here, they discuss about development process, how much effort require to develop this
product.
They ask about the effort estimation. It is possible to give effort estimation through planning
poker.
Planning Poker : Planning poker is also known as Scrum Poker, is a collaborative estimation
technique used in Agile software development to estimate the effort or complexity of tasks
in a project.
Here we use story points.
Story points : It is a unit of measure used in Agile to estimate the relative effort or
complexity of a use story or task.
Daily Stand Up :
Every day they assembled in one place and discuss about the product development process.
They discuss about :
- Progress
- What are you doing today.
- What we completed so far.
- Are there any issues with the development process?
Sprint Demo :
Here, we demonstrate the product and we ask feedback from the client, whether the
product is working according to the requirement or not.
If everything working properly we can go further or if something went wrong, we have to
rectify the issue.
Sprint Retrospective :
- What went well
- What did not go well
- Any improvement or suggestions.
Velocity :
Here,
- How many tasks we have taken to complete within the sprint period.
- How many tasks we have completed within the sprint period.
- What is the velocity of the team.
Roles of Agile Scrum Team :
- Scrum Master
- Development Team
- Product Owner
Epic : Entire task (it includes all actions that are there in the product)
Feature / User Stories : Parts of the product
Concept of Agile Model : Test – Driven development.
Kanban Methodology
- Kanban is the most popular agile framework after Scrum for software development.
It provides the real-time and transparency of work.
- Kanban is a workflow management system that is easy to introduce and maintain.
- The Kanban methodology follows set of steps or principles to help team to manage
their work effectively.
- In Kanban board, all the tasks are visible that allows the team members to see the
state of every task at any time.

Kanban Board

Kanban board is a tool used to visualize the work and limit work-in-progress.
As in scrum, we are taking some activities from a product backlog and adding in a sprint
backlog. However, in Kanban, we do not have sprint, so sprint backlog activity will not be
performed. This is the main difference between scrum and Kanban that scrum contains
sprint backlog while kanban does not contain the sprint backlog.
Kanban board consists of three states:

- To Do
- Doing
- Done
When the project is started, then we put all the activities from the product backlog to the
'To Do' state. When the team member starts working on an activity, then that activity is put
in a 'Doing' state, and when the activity is placed, then it is placed in a 'Done' state.
One of the most important features of the Kanban board is a Limit option. In the above
figure, we have eight tasks in a product backlog and limit set is 4. At a time, it will take only
four tasks in a 'To Do' state, and if any of the tasks come in a 'Doing' state, then one more
task from the product backlog will be placed in a 'To Do' state. In this way, we can set
the limit depending on the availability of the resources.
Steps :
- Visualize the workflow
- Limit work in progress
- Manage Flow
- Make Process Policies Explicit
- Implement Feedback Loops
- Pull System
- Continuous Improvement
Visualize the Workflow :
Here, we create visual representation of the work process using Kanban board. This board
consists columns that represents different stages of the workflow
For example :
- What to do
- In progress
- Done
Limit Work in Progress (WIP) :
WIP limit helps to prevent overloading the team and ensure the work control flow of work.
For example :
If a column has a WIP limit of 3 the team can work only on 3 tasks.
Manage Flow :
Focus on achieving on study and continuous flow of work through the system. Analyse the
work flow regularly identifies bottlenecks and address them to optimize process.
Bottleneck : A bottleneck is a stage of your Kanban board where tasks pile up and create a
backlog, causing delays and waste.
To handle blockers and bottlenecks in your Kanban process and optimize your Kanban board
and workflow.
Identify the root cause
The first step to handle blockers and bottlenecks is to identify the root cause of the
problem. A blocker is anything that prevents you from completing a task or moving it to the
next stage of your Kanban board. A bottleneck is a stage of your Kanban board where tasks
pile up and create a backlog, causing delays and waste.
Communicate and collaborate
The second step to handle blockers and bottlenecks is to communicate and collaborate with
your team and stakeholders. Communication is key to ensure that everyone is aware of the
status of the tasks, the blockers and bottlenecks that affect them, and the actions that need
to be taken to resolve them.

Implement solutions and monitor results

The third step to handle blockers and bottlenecks is to implement solutions and monitor
results. Once you have identified the root cause of the problem and communicated and
collaborated with your team and stakeholders, you need to take action to remove the
blocker or reduce the bottleneck.
Prevent recurrence and improve continuously
The fourth step to handle blockers and bottlenecks is to prevent recurrence and improve
continuously. Blockers and bottlenecks are not one-time events, but rather symptoms of
deeper issues that need to be addressed.
Review your Kanban board and workflow
The fifth step to handle blockers and bottlenecks is to review your Kanban board and
workflow. Your Kanban board and workflow are the visual representations of your Kanban
process, and they should reflect your current reality, goals, and expectations. Therefore, you
need to review them regularly and make sure they are aligned with your team's needs,
customer's demands, and organizational objectives.
Make Process Policies Explicit :
This step involves the following three activities-

1. Identify and Improve:


 Analyze data.
 Establish future value stream.
 Identify improvement opportunities.
 Prioritize.
 Develop action plans.
 Implement action plans.
 Ensure improvement.

2. Establish standards:
 Revisit limits and policies.
 Train the team.
 Implement a new process.

Implement Feedback Loops

In Kanban, reviews are crucial for establishing a feedback loop, aimed at reflecting on and
enhancing service delivery through data-driven insights and observations.

Pull System
The use of pull signals to indicate that fresh tasks are ready to be handled is an important
part of a pull system. When the quantity of cards in a column falls below the specified limit
in a Kanban pull system, a pull signal is generated. This tells the previous column that a new
job is ready to move forward. No further tasks may be pulled once the work in progress limit
has been reached unless an outstanding one has been completed first.
Continuous Improvement
 Set up the system to continuously monitor and improve processes.
 Make the process, process-driven rather people-driven.

ITIL (Information technology Infrastructure Library)


ITIL is an abbreviation of Information Technology Infrastructure Library.

It is a framework which helps the IT professionals for delivering the best services of IT. This
framework is a set of best practices to create and improve the process of ITSM (IT Service
Management). It provides a framework within an organization, which helps in planning,
measuring, and implementing the services of IT.

The main motive of this framework is that the resources are used in such a way so that the
customer get the better services and business get the profit.

IT Services by ITIL :
 Selecting
 Planning
 Delivering
 Maintaining
Benefits of ITIL :
 Lower Costs
 High Quality of IT Services
 Increased Business Productivity
 Improved Return on Investment
 Greater Customer Satisfaction
 Improved Resource Utilization
ITIL Service Life Cycle :
 Service Strategy
 Service Design
 Service Transition
 Service Operation
 Continual Service Improvement
Release Management
Release Management in DevOps is about planning, scheduling and controlling the software
development and delivery process.
IT operations and Developers collaborate from the beginning of the process to the end in
DevOps from shorter and fewer feedback loops faster releases.

Release Management Process Components


Release Pipeline :
A particular release process from feature planning to delivery.
Release Value Stream :
The release processes that add or create value across the release pipeline.
Release Policy :
Release policy consists of the definition of release types, standards and governance
requirements for an organisation
Release Template :
Release template is a single or repeatable workflow process for release pipeline which
includes human and automated activities.
Release Plan :
A structured plan of an instance of a release template developed for a specific release.
Deployment Plan :
Deployment plan consists of activities to deploy a release to the production environment.
Release Unit :
The set of artifacts released together to implement a specific feature.
Release Package :
Release package is a combination of release units deployed together as a single release due
to interdependencies, scheduling, or business priorities.
Major Release :
Infrequent release packages that include many release units that have a high or critical
business impact.
Minor Release :
More frequent release packages with fewer release units that do not include critical
components

You might also like