Introduction to Agile Concepts
Introduction to Agile Concepts
INDR3076/ INDR3055
Dr. Pınar Efe
[email protected]
Lecture 2 – Introduction to Agile concepts
How are we doing projects in a traditional way?
• We strive to see the big picture in advance, estimate from the very beginning,
and plan each stage from the very beginning
• We measure the success of the project according to the success of the
predictions and plans made
• We want the customer to know and define what they want from the very
beginning
• We can show the product to the customer/end user in the final stages of the
project
• We do not want changes after analysis
• We see employees as resources like machines and include them in the planning
http://www.agilemanifesto.org/
http://www.agilemanifesto.org/iso/tr/
Agile Methods
FDD
XP DSDM
Crystal
Scrum
Kanban
Some Statistics
• Scrum is the most used agile method, 63% of agile teams follow the Scrum
methodology
• Over 70% report using Agile in their SDLC, while 42% said their organizations use
a hybrid model that includes Agile, DevOps, or other choices
• The larger the organization, the more likely it is to use a hybrid model — 49% of
large companies and 45% of medium-sized companies are doing so
• Bigger teams are also more likely to still use Waterfall (31% of large and 38% of
medium-sized)
Source: 17th Annual State of Agile Development Survey, Version One, 2023.
Agile Methods Highlights
• Early and continuous delivery of software
• Iterative and incremental development
• Variable scope
• Adaptive planning
• Continuous collaboration with customer
• Continuous update according to changes, embracing the change even in late
phases
• Value people and their interaction
• Continuous improvement
Development is iterative and incremental
Analysis, design, coding, and testing are
continuous activities
Scope can vary
Adaptive Planning in Agile
Traditional Agile
Predictive Adaptive
Planning Planning
Predictive Planning
Traditional approach carry out planning for the whole project at the
start of the project
«Plan your work, work your plan»
Server 2
value
DB 1
1 2 3 4
Dikey değer üretimi
Client 1 2 3
value
Server
DB
1 2 3 4 5
People vs Process
Motivated Employees
Face to face communication
Low hierarchy
Self organization
Satisfied Customers
Inspect and Adapt
12nd principle of Agile Principle
“At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.”
Comparison of Traditional and Agile Development processes
Traditional Agile
Development Process Development Process
«Fail-late» is typical Risk-driven approach enforces a
Project Failure Problems become visible «Fail-early» if major problems
after Integration occur
Due to short iterations that deliver
executable software, the project
Release date is hard to
Ability to progress becomes very
predict and influence
meet release transparent.
towards the end of a
dates Even a troubled project is able to
troubled project
meet the release date (by
reducing functionality)
Traditional Agile
Development Process Development Process
Changes are treated as a
Goal is to reduce changes after business as usual. Agile practices
Requirements
requirements «sign-off» to a such as progressive requierments
changes
minimum lock-down reduce impact of
changes.
Product owner can correct
requirements based on feedback
Quality of from customers by delivering
Often irrelevant or over-
requirements intermediate product versions.
engineered requirements
definition
Focus on business value reduces
over-engineering.
ROI is considered in initial Process requires prioritization
ROI business case, prioritization and and supports permanent
optimization optimization of ROI are not optimization of ROI. Features are
enforced prioritized by business value.
Traditional Agile
Development Process Development Process
Management of Dependencies are Dependencies are managed
project managed on task level in on goal level in product
dependencies Gantt charts backlogs
Priorities can be shifted
Effect on Domino effect may delay
easier to protect most
corresponding several projects, shift of
important projects from
projects priorities is difficult
delays
Opportunity to ship the
Opportunity for implemented parts after any
early testing and No shippable product iteration with limited
project-specific before test phase additional effort. Each
shipments iteration creates an
intermediate product release.
Traditional Agile
Development Process Development Process
Seperate projects or project One project and one team
Project
teams: Definition, defines and realizes the
organization
Development, Test Teams..etc product.
Product Owner define the
Project manager assigns
Team goals. The team manages
tasks, project members
management itself. Scrum master coaches
execute them.
team.
Methods and tools are
Methods and No or little standardization of
standardized across projects,
tools methods and tools.
e.g., TDD and JUnit.
Agile Myths
• Agile is a silver bullet.
• Agile is anti-documentation.
• Agile is anti-planning.
• Agile is undisciplined.
• Agile is anti-architecture.
• Agile doesn't scale.
Agile is not a silver bullet
• There is no silver bullet ☺
• It is just a method: you can fail just as spectacularly on an agile
project as you can using any other traditional methods
• «Fail fast, fail cheap» (due to transparency and visibility it brings)
Agile is not anti-documentation
• Many documents need to be written on agile methods as well
• Do not write documents for documentation's sake.
• Documents support working software
Agile is not anti-planning
• A lot of planning in agile projects
• Already many planning activites: Iteration planning, Daily planning,
Release planning…etc
• Planning is ongoing activity. «Not anti-static planning» would be
correct
• The plans are expected to change and tools like burndown charts are
used track and make these changes visible
Agile is disciplined
Agile methods require a lot of hard work, courage, and discipline
Technical excellence is key
• You have to test.
• You have to get feedback.
• You have to regularly ship software.
• You have to change and update the plan.
• You have to deliver bad news early
Agile is not anti-architecture
• Keep things simple, and only add the complexity when
you need it.
• Leave upfront complex architectures, instead encourage
emergent architectures developing by needs
Agile could scale
• Like any other software process models, agile could scale
• Scaling is hard work – no easy magical way to coordinate,
communicate and keep large groups of people but
• There are some frameworks, Nexus, SAFE, we will cover thorough the
end of semester
How the agile methodology really
works?
• https://www.youtube.com/watch?v=1iccpf2eN1Q&ab_c
hannel=InfoWorld
59
Thanks!
60