Chapter 3: Agile Development Modeling
Software Engineering
Dr. Yahya Esmail Al-Ashmori
Ph.D in IT Management
Email:
[email protected] 2022-2023
Learning Objectives
• Understand agile modeling and the core practices
that differentiate it from other development
methodologies.
• Learn the importance of values critical to agile
modeling.
• Scrum Methodology
2
Agile Modeling
• Agile methods are a collection of innovative, user-
centered approaches to systems development.
3
Values and Principles of Agile Modeling
• Communication
• Simplicity
• Feedback
• Courage
4
Values Are Crucial to the Agile Approach
(Figure 3.6)
5
Agile Software Development
• Agile software development has become popular to
describe new approaches that focus on close
collaboration between programming teams and
business experts
6
Manifesto for Agile Software Development
• In February 2001, a group of 17 people that called
itself the Agile Alliance developed and agreed on
the Manifesto for Agile Software Development, as
follows:
• “We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan”*
*Agile Manifesto, https://agilemanifesto.org/
7
8
9
10
Agile Software Development
11
The Basic Principles of Agile Modeling
• Satisfy the customer through delivery of working software.
• Embrace change, even if introduced late in development.
• Continue to deliver functioning software incrementally and
frequently.
• Encourage customers and analysts to work together daily.
• Trust motivated individuals to get the job done.
12
The Basic Principles of Agile Modeling
(continued)
• Promote face-to-face conversation.
• Concentrate on getting software to work.
• Encourage continuous, regular, and sustainable
development.
• Adopt agility with attention to mindful design.
• Support self-organizing teams.
13
The Basic Principles of Agile Modeling
(continued)
• Provide rapid feedback.
• Encourage quality.
• Review and adjust behavior occasionally.
• Adopt simplicity.
14
Four Basic Activities of Agile Modeling
• Coding
• Testing
• Listening
• Designing
15
Coding
• Coding is the one activity that it is not possible to
do without
• The most valuable thing that we receive from code
is “learning”
• Code can also be used to communicate ideas that
would otherwise remain fuzzy or unshaped
6-16
Testing
• Automated testing is critical
• Write tests to check coding, functionality, performance, and
conformance
• Use automated tests
• Large libraries of tests exist for most programming languages
• These are updated as necessary during the project
• Testing in the short term gives extreme confidence in what you
are building
• Testing in the long term keeps a system alive and allows for
changes longer than would be possible if no tests were written
or run
Listening
• Listening is done in the extreme
• Developers use active listening to hear their
programming partner
• Because there is less reliance on formal, written
communication, listening becomes a paramount skill
• A developer also uses active listening with the customer
• Developers assume that they know nothing about the
business so they must listen carefully to businesspeople
Designing
• Designing is a way of creating a structure to organize all the
logic in the system
• Designing is evolutionary, and so systems are conceptualized
as evolving, always being designed
• Good design is often simple
• Design should allow flexibility
• Effective design locates logic near the data on which it will be
operating
• Design should be useful to all those who will need it as the
development effort proceeds
Four Resource Control Variables of Agile
Modeling
• Time
• Cost
• Quality
• Scope
20
Four Core Agile Practices
• Short releases
• 40-hour work week
• Onsite customer
• Pair programming
21
Agile Core Practices (Figure 3.7)
6-22
The Agile Development Process
• Listen for user stories.
• Draw a logical workflow model.
• Create new user stories based on the logical model.
• Develop some display prototypes.
• Create a physical data model using feedback from
the prototypes and logical workflow diagrams.
23
Writing User Stories
• Spoken interaction between developers and users
• Seeking first and foremost to identify valuable
business user requirements
• The goal is prevention of misunderstandings or
misinterpretations of user requirements.
24
User Stories Can Be Recorded on Cards: The User Story
Should Be Brief Enough for an Analyst to Determine What
Systems Features Are Needed (Figure 3.8)
25
Scrum Methodology
• Scrum is an agile way to manage a project, usually
software development. Agile software development
with Scrum is often perceived as a methodology;
but rather than viewing Scrum as methodology,
think of it as a framework for managing a process.
26
Scrum Methodology
• Begin the project with a high-level plan that can be
changed on the fly.
• Success of the project is most important.
• Individual success is secondary.
• Project leader has some (not much) influence on the
detail.
• Systems team works within a strict time frame.
27
Scrum
• Product backlog
• Sprint backlog
• Sprint
• Daily scrum
• Demo
28
Agile - Scrum framework
29
30
Lessons Learned from Agile Modeling
• Short releases allow the system to evolve.
• Pair programming enhances the overall quality.
• Onsite customers are mutually beneficial to the
business and the agile development team.
31
Lessons Learned from Agile Modeling
(Continued)
• The 40-hour work week improves worker
effectiveness.
• Balanced resources and activities support project
goals.
• Agile values are crucial to success.
32
There Are Six Vital Lessons that Can Be Drawn from
the Agile Approach to Systems (Figure 3.8)
33
Adopting New Information Systems Involves
Balancing Several Risks (Figure 3.9)
Risks inherent in organizational innovation 34
Risks When Adopting New Information
Systems
• Fit of development team culture
• Best time to innovate
• Training cost for analysts and programmers
• Client’s reaction to new methodology
• Impact of agile methodologies
• Programmers/Analysts individual rights
35
Summary
• Agile modeling
• Five values of the agile approach
• Principles of agile development
• Agile activities
• Agile resources
36
Summary (Continued)
• Core practices of the agile approach
• Stages in the agile development process
• User stories
• Agile lessons
• Scrum methodology
• Dangers to adopting innovative approaches
37