[go: up one dir, main page]

0% found this document useful (0 votes)
0 views37 pages

Software Engineering Chapter3 Agile

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 37

Chapter 3: Agile Development Modeling

Software Engineering

Dr. Yahya Esmail Al-Ashmori


Ph.D in IT Management
Email: Gdyahya@gmail.com
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

You might also like