0% found this document useful (0 votes)
96 views45 pages

SFG117V Satur 15th Feb v2

The document discusses Agile and DevOps methodologies in modern software development, highlighting their flexibility, collaboration, and rapid iteration compared to traditional methods. It outlines the Agile software development life cycle, key principles, and various Agile models such as Scrum and Extreme Programming. Additionally, it emphasizes the benefits of DevOps, including improved collaboration, accelerated development cycles, and enhanced software quality.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
96 views45 pages

SFG117V Satur 15th Feb v2

The document discusses Agile and DevOps methodologies in modern software development, highlighting their flexibility, collaboration, and rapid iteration compared to traditional methods. It outlines the Agile software development life cycle, key principles, and various Agile models such as Scrum and Extreme Programming. Additionally, it emphasizes the benefits of DevOps, including improved collaboration, accelerated development cycles, and enhanced software quality.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

.

Agile and DevOps in Modern Software Processes

Saturday, 15 February 2025 F.M. Tshitake

1
Reference text book:
Software Engineering: A Practitioner's Approach, 9th Edition

By Roger Pressman and Bruce Maxim

2020

ISBN10: 1260922510 | ISBN13: 9781260922516

06/24/2025 2
Objectives
LO (B1) – Understand Agile and DevOps in Modern Software Processes

Assessment Criteria (B1.1) – Explain DevOps and its impact on software


development and deployment

an Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 3


Topics covered
l Agile software development/ engineering
l Difference Between Traditional and Agile Software
Development
l An Agile Process
l Agility Principles
l Agile software development Life Cycle
l Four common agile methods
i.e Scrum, DSSD (Dynamic Systems Development Method),
Agile Modeling (AM), and Agile Unified Process (AUP).
l Development and Operations (DevOps)

an Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 4


Agile software engineering
What is it?
• Agile software engineering" refers to a development methodology that
prioritizes flexibility, collaboration, and rapid iteration, allowing teams to
adapt to changing requirements throughout the project, while "traditional
software engineering" typically follows a more structured, linear approach
with detailed upfront planning and distinct phases like requirement
gathering, design, implementation, testing, and deployment, making it
less adaptable to changes.
• Agile software engineering combines a philosophy and a set of
development guidelines. The philosophy encourages customer
satisfaction and early incremental delivery of software; small, highly
motivated project teams; informal methods; minimal software
engineering work products; and overall development simplicity. The
development guide lines stress delivery over analysis and design
(although these activities are not discouraged), and active and
continuous communication between developers and customers.

5
Difference Between Traditional and Agile Software Development

Traditional Software Development Agile Software Development


It is used to develop simple It is used to develop complicated
software. software.
In this methodology, testing is done In this methodology, testing and
once the development phase is development processes are
completed. performed concurrently.
It follows a linear
It follows an iterative organizational
organizational expectation structur
structure.
e.
It provides less security. It provides high security.
Client involvement is high as
Client involvement is less as
compared to traditional software
compared to Agile development.
development.
It provides less functionality in the It provides all the functionality
software. needed by the users.
It supports a fixed development It supports a changeable
model. development6 model.
Difference Between Traditional and Agile Software Development

Traditional Software Development Agile Software Development


It is used by freshers. It is used by professionals.
Development cost is less using this Development cost is high using
methodology. this methodology.
It majorly consists of five phases. It consists of only three phases.
It is less used by software It is normally used by software
development firms. development firms.
The expectation is favored in the Adaptability is favored in the agile
traditional model. methodology.

Agile software development


methodologies are casual. In other
words, customers who work with
companies that utilize Agile
Traditional software development software development approaches
approaches are formal in terms of are more likely to interact with
communication with customers. them than customers who work
with companies that use
06/24/2025
traditional 7
software development methodolog
Difference Between Traditional and Agile Software Development

Traditional Software Development Agile Software Development


Examples
Examples
•Office productivity suites
•Sky
•Data management software
•Phillips
•Media players
•JP Morgan Chase
•Security programs

Models based on Agile Software


Models based on Traditional Development-
Software Development- • Scrum
• Spiral Model • Extreme Programming (XP)
• Waterfall Model • Crystal
• V Model • Dynamic Systems Development
• Incremental Model Method (DSDM)
• Feature Driven Development (FD
D)
•Adaptive Software Development (
ASD)

8
Agile Software Engineering (Cont.)
Who does it?

- Software engineers and other project stakeholders (managers,


customers, end users) work together on an agile team, a team that is self-
organizing and in control of its own destiny. An agile team fosters
communication and collaboration among all who serve on it.

Why is it important?

- The modern business environment that spawns computer-based systems


and software products is fast-paced and ever-changing. Agile software
engineering represents a reasonable alternative to conventional software
engineering for certain classes of software and certain types of software
projects. It has been demonstrated to deliver successful systems
quickly.

9
What are the steps?

- Agile development might best be termed “software engineering lite.” The


basic framework activities— communication, planning, modeling,
construction, and deployment—remain. But they morph into a minimal task
set that pushes the project team toward construction and delivery (some
would argue that this is done at the expense of problem analysis and
solution design).

What is the work product?

- Both the customer and the software engineer have the same view—the
only really important work product is an operational “software increment”
that is delivered to the customer on the appropriate commitment date.

- How do I ensure that I’ve done it right? If the agile team agrees that the
process works, and the team produces deliverable software increments
that satisfy the customer, you’ve done it right.

10
What is an agile process?

• An agile process, therefore, must be adaptable. But continual adaptation


without forward progress accomplishes little.

• Therefore, an agile software process must adapt incrementally. To


accomplish incremental adaptation, an agile team requires customer
feedback (so that the appropriate adaptations can be made).

• Software increments (executable prototypes or portions of an


operational system) must be delivered in short time periods so that
adaptation keeps pace with change (unpredictability).

• This iterative approach enables the customer to evaluate the


software increment regularly, provide necessary feedback to the
software team, and influence the process adaptations that are made to
accommodate the feedback.

11
Agility Principles
The Agile Alliance defines 12 agility principles for those who want to
achieve agility:

1. Our highest priority is to satisfy the customer through early and


continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile
processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple
of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout
the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and
within a development team is face-to-face conversation.
7. Working software (prototypes) is the primary measure of progress.

12
Agility Principles
(Cont.)

8. Agile processes promote sustainable (maintainable) development.


The sponsors, developers, and users should be able to maintain a constant
pace indefi nitely.
9. Continuous attention to technical excellence and good design
enhances agility.
10. Simplicity—the art of maximizing the amount of work not done is
essential.
11. The best architectures, requirements, and designs emerge from self-
organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.

Not every agile process model applies these 12 principles with equal weight, and
some models choose to ignore (or at least downplay) the importance of one or more
of the principles. However, the principles define an agile spirit that is maintained in
each of the process models presented in this chapter.

13
Agile software development Life Cycle

(H. Ashtari, 2022)

14
Agile software development Life Cycle
Listed below are the steps of this cycle:
1. Conceptualization
- In the first step of the Agile life cycle, the product owner defines the
project scope. In the case of multiple projects, the critical ones are
prioritized. Depending on the organization’s structure, personnel may
be assigned to more than one project at once.
2. Inception
- Once the project is conceptualized, the next step is building the
software development team. In this stage, the product owner checks
the availability of team members and assigns the best available ones to
the project. The product owner is responsible for giving these team
members the required resources.

15
Agile software development Life Cycle (Cont.)
3. Construction
- The construction phase, known as the iteration phase, is where most
work happens. This is usually the longest phase, with the dev team and
the designers collaborating closely to bring together the requirements
and feedback and interpret the design into code.
- The construction goal is to create the application’s basic
functionality before the first iteration ends.
- Additional secondary features and minor modifications can occur in
future iterations. The main goal is to swiftly create a working
application and implement improvements for client satisfaction.

16
Agile software development Life Cycle

Agile software development Life Cycle (Cont.)

4. Release
- When the team enters this stage, the product should be nearly
ready to release. However, before this can happen, the QA team
must test the application and make sure it is fully functional
according to the decided project goals.
- Testing also takes place to ensure that no bugs and defects exist in
the code; if any are found, they must be reported swiftly and fixed by
the dev team. Clean code is a cornerstone of this stage.
- This phase also includes user training, the creation of the system,
and user documentation to support it.

17
Agile software development Life Cycle

Agile software development Life Cycle (Cont.)

5. Production and maintenance


- Once the application is released successfully and made available to end
users, the team moves into maintenance mode. This phase sees the dev team
providing continuous support to ensure smooth system operations and quash
any newly found bugs.
6. Retirement
The application may be slated for retirement for number of reasons such as
replacement with a new version.
- If an application enters this phase, the first step is to notify users of the
impending retirement of the software. Next, one must ensure a
smooth migration to the new system.
- Finally, the dev team must complete all the pending end-of-life activities and
cease the support provided to the existing application.

18
• In order to illustrate an agile process in a bit more
details, Extreme Programming (XP) is used, and is the
most widely used approach to agile software
development.
• Extreme Programming uses an object-oriented approach
as its preferred development paradigm and
encompasses a set of rules and practices that occur
within the context of four framework activities: planning,
design, coding, and testing.

19
Extreme Programming process
Reference: Software Engineering: A Practitioner's Approach, 9th
Edition, Chapter 5

20
Other Agile Process Models
As we noted in the last section, the most widely used of all agile process
models is Extreme Programming (XP).

• But many other agile process models have been


proposed and are in use across the industry.
• In this section, an overview of four common agile
methods are presented: Scrum, DSSD (Dynamic
Systems Development Method) , Agile Modeling
(AM), and Agile Unified Process (AUP).

21
Other Agile Process Models (Cont.)

1. Scrum (the name is derived from an activity that occurs during


a rugby match)
• Is an agile software development method that was conceived
by Jeff Sutherland and his development team in the early
1990s. In recent years, further development on the Scrum
methods has been performed by Schwaber and Beedle
[Sch01b]. Scrum principles are consistent with the agile
manifesto and are used to guide development activities within
a process that incorporates the following framework
activities: requirements, analysis, design, evolution, and
delivery

22
Other Agile Process Models (Cont.)

Scrum emphasizes the use of a set of software process patterns


that have proven effective for projects with tight timelines,
changing requirements, and business criticality.
• Backlog - a prioritized list of project requirements or features
that provide business value for the customer.
• Sprints - consist of work units that are required to achieve a
requirement defined in the backlog that must be fit into a
predefined time-box (typically 30 days).
• Scrum meetings - are short (typically 15-minute) meetings
held daily by the Scrum team.

23
Other Agile Process Models (Cont.)

• A team leader, called a Scrum master, leads the meeting and


assesses the responses from each person. The Scrum meeting
helps the team to uncover potential problems as early as
possible.
• Demos - deliver the software increment to the customer so
that functionality that has been implemented can be
demonstrated and evaluated by the customer. It is important
to note that the demo may not contain all planned
functionality, but rather those functions that can be delivered
within the time-box that was established.

24
Other Agile Process Models (Cont.)

2. Dynamic Systems Development Method


The Dynamic Systems Development Method ( DSDM ) is an agile
software development approach that “provides a framework for
building and maintaining systems which meet tight time
constraints.
WebRef Useful resources for DSDM can be found at
www.dsdm.org

25
Other Agile Process Models (Cont.)

3. Agile Modeling (AM)

- This is a practice-based methodology for effective modeling


and documentation of software-based systems. Simply put,
Agile Modeling (AM) is a collection of values, principles, and
practices for modeling software that can be applied on a
software development project in an effective and light-weight
manner.
- Agile models are more effective than traditional models
because they are just barely good, they don’t have to be
perfect.

26
Other Agile Process Models (Cont.)

4. Agile Unified Process


- The Agile Unified Process (AUP) adopts a “serial in the large”
and “iterative in the small” philosophy for building computer-
based systems.
- By adopting the classic UP phased activities—inception,
elaboration, construction, and transition—AUP provides a
serial overlay (i.e., a linear sequence of software engineering
activities) that enables a team to visualize the overall process
flow for a software project.

27
Development and Operations (DevOps)
What is it?
• DevOps combines development (Dev) and operations (Ops) to
increase the efficiency, speed, and security of software
development and delivery compared to traditional processes.
• DevOps is the combination of practices and tools designed to
increase an organization’s ability to deliver applications and
services faster than traditional software development
processes. This speed enables organizations to better serve
their customers and compete more effectively in the market.

28
Development and Operations
(DevOps)
- DevOps is the combination of practices and tools designed to increase an
organization’s ability to deliver applications and services faster than traditional
software development processes. This speed enables organizations to better serve
their customers and compete more effectively in the market.

WebReference:
https://successive.tech/
blog/devops-in-
modern-software-
development/

29
Development and Operations (DevOps)
Key Benefits of DevOps
• Let’s dive into the details:
1. Improved Collaboration and Communication
• DevOps fosters smooth collaboration and communication, which
changes the dynamics of the organization.
2. Accelerated Development Cycle and faster time to market
• The ability to accelerate the development cycle is the core of
DevOps. It drastically reduces the time needed for development,
testing, and deployment by automating procedures and promoting
continuous integration and deployment. In addition to increasing
productivity, this speed guarantees faster product launches,
satisfying consumer needs and establishing a competitive
advantage.

30
Development and Operations (DevOps)
Key Benefits of DevOps
3. Enhanced Quality and Reliability of Software
• Continuous integration and deployment (CI/CD) is a critical component of
DevOps, prioritizing software excellence over speed. It maintains a strict
quality control procedure with automated testing, continuous monitoring,
and iterative improvements. This leads to more dependable software,
which lowers errors and improves user experience, strengthening client
loyalty and trust.
4. Automations
• Teams can devote more time and resources to strategic and innovative
projects with the help of automations. This aspect of DevOps makes it
possible to automate code deployment, configuration management, and
infrastructure provisioning, among other tasks, with greater efficiency,
fewer errors, and consistent, trustworthy results.

31
Development and Operations (DevOps)

What are the challenges of DevOps?

• The challenges of implementing DevOps include


integrating diverse development and testing
technologies, reinforcing development pipelines so they
don’t break under increased loads, and instituting robust
security testing.
• Development environments comprise a multitude of
frameworks, languages, and architectures, each with
their own unique ways of operating. It can be a challenge
to bring all these moving parts into alignment with one
another.

32
Development and Operations (DevOps)
What tools are used in DevOps?
• DevOps practices rely on effective tools to help teams
rapidly and reliably deploy and innovate for their
customers. These tools should automate manual tasks,
help teams manage complex environments at scale, and
keep engineers in control of the high-velocity pace.

33
Development and Operations (DevOps)
The Future of DevOps
• DevOps is expected to play a significant role in future
software development and operations. As technology
develops, DevOps will merge with new trends like AI and
machine learning, bringing predictive analytics and
automation. DevOps processes will include security
easily, encouraging a proactive approach to risk
mitigation.

34
Development and Operations (DevOps)

Emerging Trends in DevOps


• DevOps has become integral to the software industry.
DevOps has streamlined the SDLC and enhanced the
overall productivity of the organization.

35
What are DevOps Principles?
• DevOps principles are guiding elements for the
implementation of diverse practices.
• They are the principles that allow organizations
to create a strong culture of collaboration,
innovation and continuous improvement with
digital products.
• Experts who follow these principles will deliver
faster and develop better software.

36
Top 7 DevOps Principles
• Let’s now explore the seven core principles of DevOps
that will help you streamline the software development
life cycle.
1. Collaboration
• In traditional software development, the need for coordination
between development and operations teams leads to
miscommunication and delays. DevOps uses collaboration as a
core principle that reduces this issue in this approach. Everyone
benefits when communication is open and developers and
operations work together toward common goals. This principle
focuses on shared knowledge, mutual respect, and joint
efforts, ensuring that software is delivered efficiently and effectively.
• Key Takeaway: Promote cross-functional teams to reduce the red
tape of handoffs and increase team efficiency.

37
DevOps Principles (Cont.)
2. Data-Based Decision Making
• In the earlier methods, the decisions in software
development were based on assumptions, which led to
ineffectiveness. In contrast, DevOps prioritizes data-
driven decision-making. Teams use metrics, logs, and
real-time monitoring to make informed software and
infrastructure management decisions.
• Key Takeaway: Make data-based decisions and
continuously learn from processes and outcomes.

38
DevOps Principles (Cont.)
3. Customer-Centric Approach
• In older development models, customer feedback was
assembled late, which led to products that didn’t fulfil the
user requirements. DevOps reverses this by focusing on
a customer-centric approach, ensuring that every stage
of product planning adds business value. The primary
responsibility of DevOps teams is to deliver what
customers truly need and desire, aligning development
with user experience and expectations.
• Key Takeaway: Focus on the customer while making
decisions and building software to ensure you deliver
real value.

39
DevOps Principles (Cont.)
4. Continuous Improvement
• Traditional software development often depended on
long updates, delaying progress and innovation. On the
other hand, DevOps adopts continuous improvement,
where teams always aim for ways to enhance
processes, tools, and practices. This principle leads to
iterative development, feedback loops, and a learning
culture, allowing teams to deliver higher-quality software
more frequently.
• Key Takeaway: Continuously learn and refine your skills
to stay ahead and improve your delivery methods.

06/24/2025 40
DevOps Principles (Cont.)
5. Shared Responsibility
• Previously, responsibility for software development was
usually divided within distinct teams, leading to finger-
pointing when things went wrong. DevOps promotes a
culture of shared responsibility, where everyone
involved in the DevOps lifecycle is responsible for
success. This principle creates a sense of ownership
across the team, ensuring everyone is aligned and
working toward the same goals.
• Key Takeaway: Build a culture where every team
member shares responsibility for success and quality.

06/24/2025 41
DevOps Principles (Cont.)
6. Automation
• The speed at which software is delivered and patches are applied is
the main advantage of the DevOps methodology.
- The goal of the DevOps team is to automate each and every stage
of the workflow, including code reviews and deployment.
- This not only makes the pipeline go more quickly, but it also makes
the team members happier at work. As a result, they are free to
concentrate on higher-level duties like planning future improvements
and exploring new technologies rather than laborious and monotonous
tasks.
• Key Takeaway: Use automation wherever you can to be more
efficient, make fewer mistakes and develop faster.

42
DevOps Principles (Cont.)
7. Failure as a Learning Opportunity
- In traditional models, failure was seen as something to
avoid, leading to a fear of taking risks. However, DevOps
treats failure as a learning opportunity.
- It encourages teams to take calculated risks, knowing
they’ll gain valuable insights even if they fail. This mindset
helps teams experiment and innovate, making failure a key
component of growth and future decision-making.
• Key Takeaway: Embrace failures as opportunities to
learn and grow, continuously improving your processes.

43
Examples of DevOps Tools
These tools automate manual tasks, help teams manage
complex environments at scale, and keep engineers in
control of the high velocity that is enabled by DevOps.

And More…
44
References:
1. Software Engineering: A Practitioner's Approach, 9th Edition
By Roger Pressman and Bruce Maxim
2. https://www.spiceworks.com/tech/devops/articles/what-is-agile-
software-development/
3. https://www.geeksforgeeks.org/difference-between-traditional-
and-agile-software-development/
4. https://successive.tech/blog/devops-in-modern-software-
development/

The End
06/24/2025 45

You might also like