0% found this document useful (0 votes)
5 views

Software Engineering_Lab3

The document discusses Agile Software Development, outlining its principles, benefits, and challenges compared to traditional methods. It emphasizes customer involvement, iterative design, and flexibility in accommodating changes during the development process. Additionally, it highlights various Agile methodologies such as Scrum and Extreme Programming, while also addressing potential issues with Agile practices.

Uploaded by

cikif83366
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)
5 views

Software Engineering_Lab3

The document discusses Agile Software Development, outlining its principles, benefits, and challenges compared to traditional methods. It emphasizes customer involvement, iterative design, and flexibility in accommodating changes during the development process. Additionally, it highlights various Agile methodologies such as Scrum and Extreme Programming, while also addressing potential issues with Agile practices.

Uploaded by

cikif83366
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/ 19

KARABUK UNIVERSITY

Computer Engineering Department

CPE 310 Software Engineering


Lab#3
Agile Software Development

Hasan Kivrak

Some of slides are modified versions of slides by Henrik Kniberg (What is Agile?)
Agenda
● Agile software development
○ agile fundamentals/principles,

○ the core behind many agile methods.

○ how agile methods are different than traditional methods

○ the benefits and challenges in using Agile

○ where to use agile methods.


Rapid Software Development
● Rapid development and delivery is now often the most important
requirement for software systems
○ Specification, design and implementation are interleaved/alternately

■ the outputs from the development process are decided through a process of
negotiation during the software development process

○ System is developed as a series of versions with stakeholders involved in version


evaluation

○ User interfaces are often developed using an IDE and graphical toolset.
Agile Manifesto

www.agilemanifesto.org
We are uncovering better ways of developing
software by doing it and helping others do it.
Feb 11-13, 2001
Snowbird ski resort, Utah

Kent Beck Andrew Hunt


Mike Beedle Ron Jeffries
Arie van Bennekum Jon Kern
Alistair Cockburn Brian Marick
Ward Cunningham Robert C. Martin
Martin Fowler Steve Mellor
James Grenning Ken Schwaber
Jim Highsmith Jeff Sutherland
Dave Thomas
Agile Manifesto
4 values and 12 principles

Individuals and Interactions Processes and Tools

Working Software Comprehensive documentation

Customer Collaboration Contract negotiation

Responding to change Following a plan

PREFER TO

Watch Agile Manifesto Video: https://www.youtube.com/watch?v=rf8Gi2RLKWQ


Principles behind the Agile Manifesto
● Our highest priority is to satisfy the customer ● The most efficient and effective method of
through early and continuous delivery of valuable conveying information to and within a development
software. team is face-to-face conversation.

● Welcome changing requirements, even late in ● Working software is the primary measure of
progress.
development. Agile processes harness change for
the customer's competitive advantage. ● Agile processes promote sustainable development.
The sponsors, developers, and users should be able
● Deliver working software frequently, from a couple to maintain a constant pace indefinitely.
of weeks to a couple of months, with a preference ● Continuous attention to technical excellence and
to the shorter timescale. good design enhances agility.
● Simplicity--the art of maximizing the amount of
● Business people and developers must work work not done--is essential.
together daily throughout the project.
● The best architectures, requirements, and designs
● Build projects around motivated individuals. Give emerge from self-organizing teams.
them the environment and support they need, and ● At regular intervals, the team reflects on how to
trust them to get the job done. become more effective, then tunes and adjusts its
behavior accordingly.

Watch 12 Agile Principles Video: https://www.youtube.com/watch?v=5jCc2KByx60


Principles of Agile Methods
Principle Description

Customers should be closely involved throughout the development process. Their role is
Customer involvement
provide and prioritize new system requirements and to evaluate the iterations of the system.

The software is developed in increments with the customer specifying the requirements to
Incremental delivery
be included in each increment.

The skills of the development team should be recognized and exploited. Team members
People not process
should be left to develop their own ways of working without prescriptive processes.

Expect the system requirements to change and so design the system to accommodate these
Embrace/Welcome change
changes.

Focus on simplicity in both the software being developed and in the development
Maintain simplicity
process. Wherever possible, actively work to eliminate complexity from the system.
Four Key Points
1. Iterative design process
2. Continuous stakeholder engagement
3. Aims for quality and reliable software
4. Short development cycles
a. (up to a month) allows to regular delivery
of software

This shows that an Agile approach is appropriate in contexts


● outcomes are not known (or can’t be known) in advance
● the delivery of the outcomes cannot be fully controlled.
Agility and the Cost of Change
Traditional Model vs. Agile
● Waterfall Model
○ The customer knows what he wants

○ The developers know how to build it

○ Nothing will change along the way

○ Cannon ball
Traditional Model vs. Agile
● Agile
○ The customer discovers what he wants
○ The developers discover how to build it
○ Things change along the way
○ Homing/Orienting missile
Agile vs Plan-Driven Methods

Agile Plan-driven

Expert Developers Junior Developers

Frequent Changes Rare Changes

Few Developers Large Groups Of Developers

Chaotic Work Environment Tidy Work Environment

Low Critical Systems High Critical Systems


Traditional Model vs. Agile An agile process reduces the cost of change because
software is released in increments and change can
be better controlled within an increment.
Traditional Model vs. Agile
Problems with agile methods
● It can be difficult to keep the interest of customers who are involved
in the process.
● Team members may be unsuited to the intense involvement that
characterizes agile methods.
● Prioritizing changes can be difficult where there are multiple
stakeholders.
● Maintaining simplicity requires extra work.
● Contracts may be a problem as with other approaches to iterative
development.
Agile Methods Applicability
● Product development where a software company is developing a
small or medium-sized product for sale.
● Custom system development within an organization, where there is
a clear commitment from the customer to become involved in the
development process and where there are not a lot of external rules
and regulations that affect the software.
● Because of their focus on small, tightly-integrated teams, there are
problems in scaling agile methods to large systems.
Agile (Pros and Cons)
Pros Cons
● Faster software development life ● requires a high degree of customer involvement,
cycle which not all customers are comfortable with or
prefer to give.
● Customer-focused, resulting in
increased customer satisfaction ● assumes every team member is completely
dedicated to the project, without which weakens
● Flexible in accepting changes
the principle of self-management.
● Empowers teams to manage
● A time-boxed iteration may not be enough to
projects
accommodate all deliverables, which will require
● Promotes efficient changes in priority and additional sprints that can
communications bring up cost.

● Ideal for projects with non-fixed ● recommends co-location for efficient


funding communication, which is not always possible.
Major Agile Methodologies
a family of iterative, incremental methods
● Scrum (1995)
● DSDM – Dynamic Systems Development
Method (1995)
● XP – Extreme Programming (1996)
● ASD – Adaptive Software Development DSDM
Scrum XP FDD
(1997)
● Crystal Family: Orange, Orange Web, Clear
(1998, 2001, 2004) Crystal
● FDD – Feature-Driven Development (1999) Kanban
● AUP – Agile Unified Process (2005)
● Kanban (2010)
● DAD – Disciplined Agile Delivery (2012)
Next Week
● Most frequently used (common) agile methodologies
○ Scrum

○ Extreme Programming (XP)

○ Kanban

You might also like