0% found this document useful (0 votes)
8 views40 pages

SE3351 - Unit 2

The document outlines Unit 2 of SE 3351, focusing on practical implementation of software development practices, including Scrum, Kanban, and DevOps. It covers the roles, events, and artifacts of Scrum, principles of Kanban, and the cultural and technical practices of DevOps that enhance collaboration and optimize workflows. Additionally, it includes practical exercises for applying these methodologies in real-world scenarios.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views40 pages

SE3351 - Unit 2

The document outlines Unit 2 of SE 3351, focusing on practical implementation of software development practices, including Scrum, Kanban, and DevOps. It covers the roles, events, and artifacts of Scrum, principles of Kanban, and the cultural and technical practices of DevOps that enhance collaboration and optimize workflows. Additionally, it includes practical exercises for applying these methodologies in real-world scenarios.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

SE 3351 Software Project &

Process Management
Unit 2: Practical Implementation of Modern Software
Development Practices

Fadi AlMahamid, Ph.D.


Learning Outcomes

Understand the Scrum framework by examining its roles,


01 events, and artifacts.

Demonstrate the application of Scrum through practical


02 exercises

03 Explore the principles of Kanban as a Lean method

Discuss how Kanban complements Lean principles in


04 optimizing workflows 2
Learning Outcomes

Explain DevOps's cultural and technical practices that


05 enable seamless collaboration between development and
operations teams.
Evaluate the impact of DevOps practices on project
06 delivery speed and software quality.

Discuss the tools and techniques used to automate


07 software integration, testing, and deployment processes

3
Unit Roadmap

SCRUM
Unit 2
Kanban

DevOps

4
01 SCRUM
SCRUM
Sprint
Retrospective

Product
Daily
Backlog Scrum
Refinement
Scrum
Team
SM PO Sprint
Sprint Planning Every 30 Days Review
24 Hours
Dev QA
Increment

Product Sprint
Backlog Backlog

Sprint

6
Scrum Roles
Product Owner:
• Represents the stakeholders and is responsible for maximizing
the value of the product. They prioritize the product backlog
and ensure the development team understands the tasks.
Scrum Master:
• Acts as a facilitator, ensuring the team follows Scrum practices
and removing any impediments. They focus on enabling the
team to work efficiently.
Development Team:
• A self-organizing, cross-functional team that works to deliver
increments of the product during sprints. They decide how to
complete the work prioritized by the Product Owner.

7
Artifacts
Product Backlog:
• A prioritized list of all features, enhancements, and bug
fixes for the product. The Product Owner manages it and
adds new items as needed.
Sprint Backlog:
• A selection of items from the product backlog chosen by
the development team to complete during a sprint. It
includes specific tasks needed to achieve the sprint goals.
Increment:
• The usable and potentially releasable output of each sprint,
which adds value to the product.

8
Scrum Events
Sprint:
• A sprint is a fixed-length iteration, typically 2-4 weeks (up to 30 days), during
which the team works to deliver an increment of the product. Sprints are
continuous, meaning a new sprint starts immediately after the previous one
ends.
Sprint Planning:
• A meeting is held at the beginning of each sprint, during which the team
decides which backlog items to work on and how they will be completed.
Daily Scrum:
• A short, daily meeting (around 15 minutes) where team members discuss
progress, upcoming tasks, and any roadblocks.
Sprint Review:
• Held at the end of the sprint to inspect the increment and adapt the product
backlog if necessary. The development team demonstrates what they
accomplished.
• A session is held after the Sprint Review to reflect on what went well, what can
be improved, and how to enhance the next sprint.

9
Scrum Principles
Transparency:
• Everyone involved must clearly understand the work, the
current progress, and the goals.
Inspection:
• The team regularly checks progress during daily Scrums
and reviews to identify any deviations from the plan.
Adaptation:
• Adaptation empowers the team to adjust its process or
goals based on inspections, giving us more control to
better meet the project's needs and ensure its success.

10
Scrum Process Overview
1. The Product Owner creates and manages the
product backlog.
2. During each sprint, the development team
works on items from the sprint backlog.
3. Daily Scrums ensure continuous alignment
and progress.
4. The sprint ends with a potentially releasable
product increment, followed by a review and
retrospective for improvement.
11
Practical Use Case
Your team is tasked with building a simple
student registration portal for a university. The
portal should allow students to:
• Register for courses
• View available courses
• Check the status of registration (confirmed or
waitlisted)
• As a PO, what other features should be included?

12
Volunteers
Product Owner (PO) è 1-2 students
Scrum Master è 1 student
Development Team è 3-4 students

13
Please download and install the
Slido app on all computers you use

Product Backlog

ⓘ Start presenting to display the poll results on this slide.


14
Please download and install the
Slido app on all computers you use

Sprint Planning

ⓘ Start presenting to display the poll results on this slide.


15
Sprint Executing/Daily Scrum
• Objective:
• Simulate a short, 15-minute stand-up. The team
shares what they plan to work on today and
discusses any roadblocks.
Development Team "work" on the tasks they
selected in the sprint planning session.
Iterate for N number of days
Daily
Scrum

SM PO
Every 30 Days
24 Hours
Dev QA
Increment
Sprint
Backlog
Scrum
Team
16
Sprint Review
Objective:
• Present the increment (completed work).
The Development Team presents their
completed work.
The Product Owner evaluates the increment
and provides feedback. They can accept or
suggest changes.

17
Please download and install the
Slido app on all computers you use

Sprint Review

ⓘ Start presenting to display the poll results on this slide.


18
Sprint Retrospective
Objective:
• Reflect on what went well and what could be
improved.
Discuss how the team worked together and
any challenges they faced.
Ask questions like:
• What went well during this sprint?
• What could we improve in the next sprint?

19
Please download and install the
Slido app on all computers you use

Sprint Retrospective

ⓘ Start presenting to display the poll results on this slide.


20
02 Kanban
What is Kanban?
Kanban is a workflow management method
designed to help:
• Visualize work
• Maximize efficiency
• Continuously improve processes
Kanban originated from lean manufacturing,
particularly from Toyota's production system,
but has since been adapted for various
industries, including software development.
22
Core Principles
Visualize the Workflow: The first step in Kanban is to
map out the entire process and visualize it on a
Kanban board. This helps teams understand the flow
of tasks and identify where work is getting done and
where it might be bottling up.
Limit Work-in-Progress (WIP): To avoid overloading
team members, Kanban sets WIP limits, capping how
many tasks can be in progress at any stage of the
workflow. This ensures that the team only starts new
work when there is capacity, which helps reduce
multitasking and improve focus.
23
Core Principles
Manage Flow: The goal in Kanban is to ensure that
work flows smoothly through the different stages
of the process. The team continuously monitors
how work moves from the "To Do" column to
"Done" and looks for bottlenecks or delays that
might affect delivery.
Continuous Improvement: Kanban encourages
teams to regularly evaluate and improve their
processes. By identifying inefficiencies and areas
for improvement, teams can optimize their
workflow over time.

24
Kanban Board
A Kanban board is the main tool for visualizing the
workflow. It consists of columns representing different
stages in the process, and tasks (represented as cards)
move through these stages as they progress. A typical
Kanban board has these elements:
• Columns: Represent stages of work (e.g., "To Do," "In
Progress," "In Review," "Done").
• Cards: Each card represents a task or work item, which
moves through the board from one column to the next.
• WIP Limits: Each stage can have a Work-in-Progress limit,
restricting the number of tasks that can be in progress
simultaneously to avoid bottlenecks.

25
Kanban Board
Backlog Selected Analysis Development Testing Deployment Done

4 4 3 3 3 3 4 4
5
Doing Done Doing Done Doing Done Doing Done

Task Task Task Task Task Task Task Task Task Task
Feature
Task
Task
Feature

Feature Task Task Task Task Task


Task
Feature

Task
Task
Task Task
Task

Feature

Feature

Task
Feature

Expedite Lane
Kanban vs. Scrum:
While Kanban shares many principles with Agile, especially its focus
on continuous improvement, it differs significantly from Scrum:
• Timeframes: Scrum works in fixed-length sprints (usually 2-4 weeks),
whereas Kanban has no prescribed timeframes. Work is continuously
pulled and delivered as it’s completed.
• Roles: Scrum has clearly defined roles (Product Owner, Scrum Master,
Development Team), whereas Kanban does not define specific roles.
• Flexibility: Kanban is more flexible than Scrum. In Kanban, changes can
be made at any time, while in Scrum, changes to the sprint backlog are
discouraged once a sprint begins.
• WIP Limits: Scrum teams typically aim to complete a set amount of
work in a sprint, while Kanban specifically limits work-in-progress at each
stage of the workflow.

27
Kanban Application
When Kanban is used alone, it typically functions
as:
• A Continuous Delivery System: Work is pulled from a
backlog, and one task is completed at a time without the
need for fixed-length sprints or iterations.
• A Visual Workflow Management Tool: The team
visualizes work on a Kanban board and uses WIP limits to
optimize productivity.
• A Flexible Process: It allows changes in priorities at any
time, providing flexibility and adaptability to dynamic
environments where requirements shift frequently.

28
Kanban Application
Kanban: As a technique for continuous flow and work
management:
• Not Iterative: Kanban is not inherently an iterative process like
Scrum; it lacks time-bound cycles (e.g., sprints).
• Incremental in Delivery: While tasks are delivered
incrementally (one by one), there is no formal structure or clear
cycle defining the process.
• A Workflow Management Tool: Kanban is more of a
technique for visualizing work and limiting work-in-progress
(WIP) than a complete development framework.
• Complementary to Other Methods: Kanban can be used
alongside other development methods (e.g., Scrum, Lean) to
organize work, improve efficiency, and reduce bottlenecks in
a flow-based system.

29
When to Use Kanban with Other Techniques
Hybrid Approach: Kanban can complement frameworks like Scrum
to enhance workflow visualization and task management, especially
when handling unplanned work or managing operational tasks.
Use Kanban with Scrum When:
• Managing Unplanned Tasks: Scrum sprints may not account for urgent
or unexpected tasks. Kanban can help visualize and manage these tasks
without disrupting the sprint cycle.
• Optimizing Workflow: If the team struggles with bottlenecks or uneven
workload distribution within Scrum sprints, using a Kanban board can
help identify and limit work-in-progress (WIP), improving flow.
• Handling Maintenance & Support: For teams that deal with ongoing,
unpredictable maintenance tasks alongside sprint-based development,
Kanban can help manage support tasks while Scrum focuses on planned
feature development.

30
Exercise
You are tasked with developing a basic personal blog website where users can write, edit, and
view blog posts. The goal is to manage the development of the key features using a Kanban
board.
Backlog Tasks:
• Set Up the Project Environment: Install the necessary tools and frameworks (e.g., Node.js, React).
• Design the Homepage: Create a wireframe or mockup of the homepage layout.
• Implement Blog Post Creation: Develop the functionality to create a new blog post with a title,
content, and author name.
• Create Blog Post Display: Build a page listing all blog posts, showing the title and a preview of the
content.
• Implement Blog Post Editing: Allow users to edit previously created blog posts.
• Add Blog Post Deletion: Implement functionality to delete a blog post.
• Create a Navigation Bar: Add a navigation bar with links to the home, create post, and about
pages.
• Add Mobile Responsiveness: Ensure the site layout adjusts for mobile screens (media queries).
• Test Website Functionality: Perform manual testing of the blog post creation, editing, and deletion
features to ensure they work as expected.
• Deploy the Website: Set up basic web hosting and deploy the blog website.

31
Backlog Selected Analysis Development Testing Deployment Done

Doing Done Doing Done Doing Done Doing Done

Expedite Lane

32
03 DevOps
DevOps
DevOps is a combination of development (Dev) and
operations (Ops). It's a set of practices, tools, and a cultural
philosophy that automates and integrates the processes
between software development and IT operations. The main
goals of DevOps are to:
• Shorten the development lifecycle.
• Increase deployment frequency.
• Ensure higher quality releases with better collaboration
between development and operations teams.
Delivery Pipeline

Build Test Release

Plan Monitor
Software Feedback Loop Customer
Development
34
DevOps Principles
Automation: Automating repetitive tasks such as testing,
integration, deployment, and monitoring.
Collaboration: Bridging the gap between developers and IT
operations to foster better communication and shared
responsibilities.
Continuous Integration (CI): Developers frequently integrate their
code into a shared repository, which is automatically tested and
validated.
Continuous Delivery (CD): Automating the process of releasing
validated code into production, ensuring that software can be
reliably released at any time.
Monitoring & Feedback: Constant monitoring of applications and
infrastructure to quickly identify and resolve issues, using real-time
feedback for improvements.

35
DevOps Model and Team Structure
• In DevOps, development and operations teams are
not separated; instead, they work closely together
or may even merge into a single team (cross-
functional). This enhances collaboration across the
application lifecycle.
• Cross-functional Teams: Engineers in a DevOps
environment are versatile, working across various
aspects of the application lifecycle and developing
broad skills beyond their traditional roles.

36
CI/CD Overview
CI/CD is an essential practice in DevOps that streamlines the application development lifecycle by
automating:
• Integration Process
• Deployment Process.
CI/CD enables developers to merge code changes more frequently and reliably into a central
repository, followed by automatic builds and tests.
Continuous integration (CI) refers to the practice of automatically and frequently integrating code
changes into a shared source code repository.
Continuous delivery/deployment (CD) is a 2-part process that refers to the integration, testing,
and delivery of code changes.
Continuous delivery vs deployment:
• Continuous delivery stops short of automatic production deployment.
• Continuous deployment automatically releases updates into the production environment.

Continuous Continuous Continuous


Integration Delivery Deployment

Automatically Automatically
Build Test Merge Release to Deploy to
Repository Production

CI CD 37
DevOps Lifecycle
Code: Developers commit changes to the version control system, triggering the
CI/CD process.
Build: The CI tool automatically compiles the code into a runnable build, ensuring
the application can be executed.
Test: Automated tests (unit tests, integration tests, etc.) are run against the build to
detect any defects or errors.
Deploy: Upon successful testing, the CD process automatically deploys the build to
a staging or production environment.
Monitor and Feedback: Post-deployment, the application is monitored for issues.
Feedback is collected and used to initiate subsequent cycles of development,
testing, and deployment.

Developers Automated Deploy the application


commit The CI tool tests are run is monitored for
{} changes to automatically against the
successful
build to a issues, and
the version compiles the build to detect staging or feedback is
code into a any defects or production collected
control Test
Code system
Build runnable build errors Deploy environment Monitor & Feedback

38
Please download and install the
Slido app on all computers you use

What word would describe your


learning experience in Unit 2?

ⓘ Start presenting to display the poll results on this slide.


39
Thank You
End of Unit 2

You might also like