SlideShare a Scribd company logo
Professor Lili Saghafi
proflilisaghafi@gmail.com
1
By: Professor Lili Saghafi
proflilisaghafi@gmail.com
May 8, 2020
University of Houston
UHD
@Lili_PLS
Software Engineering I
Software
Development
Lecture 3
Professor Lili Saghafi
proflilisaghafi@gmail.com
2
Topics
• Software Development Models and their
processes (Review)
• Agile Software Development method
• Agile development Characteristic, Principals ,
lifecycle, stages
• Agile development techniques
• How it works
• Agile project management , Scrum
• Scaling agile methods , issues , Problems ,
maintenance , solutions , advantages
Professor Lili Saghafi
proflilisaghafi@gmail.com
3
Software Development
Methodology
• The waterfall model
– Plan-driven model. Separate and distinct phases of specification
and development.
• Incremental development
– Specification, development and validation are interleaved. May
be plan-driven or agile.
• Integration and configuration
– The system is assembled from existing configurable
components. May be plan-driven or agile.
In practice, most large systems are developed using a
process that incorporates elements from all of these
models.
• Agile Development
Professor Lili Saghafi
proflilisaghafi@gmail.com
4
Software Development
Waterfall Model
5 phases in the waterfall model:
1. Requirements analysis and definition
2. System and software design (Output Design
Specification )
3. Implementation and unit testing ( Writing code ,
output is the software)
4. Integration and system testing Operation and
maintenance
Professor Lili Saghafi
proflilisaghafi@gmail.com
5
Software Development
Waterfall Model
1. System Planning
2. System Requirement
3. System Design
4. System Implementation
5. System Maintenance and Support
Professor Lili Saghafi
proflilisaghafi@gmail.com
6
Waterfall Model
Drawback of the waterfall model is
the difficulty of accommodating
change
Used for large systems
engineering projects where a
system is developed at several
sites.
Professor Lili Saghafi
proflilisaghafi@gmail.com
7
The Requirements Engineering
Process
Professor Lili Saghafi
proflilisaghafi@gmail.com
8
A general model of the design
process
Professor Lili Saghafi
proflilisaghafi@gmail.com
9
Software Development Incremental development
Model• The cost of accommodating changing to customer
requirements is reduced.
• Easier to get customer feedback on the development
• Rapid delivery is possible
But:
• Managers need regular deliverables to measure
progress.
•• Regular changeRegular change tends to corrupt its structure.
Professor Lili Saghafi
proflilisaghafi@gmail.com
10
Software Development
Integration and configuration Model
• Customization of COTS -Commercial-off-
the-shelf systems
• Reused elements may be configured to
adapt their behavior and functionality to a
user’s requirements
• Reuse is now the standard approach for
building many types of business system
Professor Lili Saghafi
proflilisaghafi@gmail.com
11
Example
• In billing system various modules can be
reused :
– Receives call detail and service usage
information, groups this information for
specific accounts or customers,
– Produces invoices, (based on Pricing
System)
– Creates reports for management,
– Records (posts) payments made to customer
accounts.
Professor Lili Saghafi
proflilisaghafi@gmail.com
12
Billing System
• Any billing system is a multi-branch, multi-cycle, multi-
currency, and multi-lingual modular system with various
components designed to manage the complete billing
cycle that includes:
– Applications,
– Meters reading,
– Invoicing,
– Collections (cash, checks, credit cards, bank accredits, and
tampering cases-electricity theft),
– Debts scheduling,
– Setup system,
– Security system,
– Mobile billing system
Professor Lili Saghafi
proflilisaghafi@gmail.com
13
Software Development
Integration and configuration Model
Professor Lili Saghafi
proflilisaghafi@gmail.com
14
Types of Reusable Software
• Stand-alone application systems (sometimes
called COTS, Commercial-off-the-shelf systems)
that are configured for use in a particular
environment.
• Collections of objects that are developed as a
package to be integrated with a component
framework such as .NET or J2EE.
• Web services that are developed according to
service standards and which are available for
remote invocation.
Professor Lili Saghafi
proflilisaghafi@gmail.com
15
Software Development
Agile Software Development
Manifesto
“Better ways of developing software by
doing it and helping others do it , Agile
software development comprises various
approaches to software development
under which requirements and solutions
evolve through the collaborative effort
of self-organizing and cross-functional
teams and their customer/end user”.
Professor Lili Saghafi
proflilisaghafi@gmail.com
16
Professor Lili Saghafi
proflilisaghafi@gmail.com
17
The Need for Agile Development
• Rapid development (RAD) and delivery is
now often the most important
requirement for software systems
• Plan-driven development is essential for
some types of system but does not meet
these business needs.
Professor Lili Saghafi
proflilisaghafi@gmail.com
18
Agile Development Causes
• Dissatisfaction with the overheads
• to reduce overheads in the software
process (e.g. by limiting documentation)
and to be able to respond quickly to
changing requirements without
excessive rework.
Professor Lili Saghafi
proflilisaghafi@gmail.com
19
When to use Agile?
• Software company is developing a small
or medium-sized product for sale
• Custom system development , with clear
commitment from the customer to become
involved and few external rules and
regulations that affect the software.
Professor Lili Saghafi
proflilisaghafi@gmail.com
20
Agile History
• Agile development methods emerged in
the late 1990s whose aim was to radically
reduce the delivery time for working
software systems , that introduced a range
of agile development techniques
Professor Lili Saghafi
proflilisaghafi@gmail.com
21
Agile Development Characteristic
1. Program specification, design and
implementation are inter-leaved
2. The system is developed as a series of
versions or increments with stakeholders
involved in version specification and
evaluation
3. Frequent delivery of new versions for
evaluation
4. Extensive tool support (e.g. automated testing
tools) used to support development.
5. Minimal documentation – focus on working
code
Professor Lili Saghafi
proflilisaghafi@gmail.com
22
Plan-driven VS Agile
Development
Professor Lili Saghafi
proflilisaghafi@gmail.com
23
Professor Lili Saghafi
proflilisaghafi@gmail.com
24
Reality
• In practice, most practical processes
include elements of both plan-driven and
agile approaches.
• There are no right or wrong software
processes.
Professor Lili Saghafi
proflilisaghafi@gmail.com
25
Why Agile?
• Due to its suitability for an ever-changing
business landscape, Agile Software
Development methodology has recently gained
significant attraction inside and outside of IT
departments.
• By adopting the Agile Software Development
Methodology, organizations are experiencing
great success in meeting the fast-paced change
of customer needs, offering an iterative
approach to the design and development of
software.
Professor Lili Saghafi
proflilisaghafi@gmail.com
26
Principles of Agile Methodology
• To satisfy the customer through early and
continuous delivery of valuable software is
the highest priority of Agile Software.
• With a preference to the shorter timescale,
from a couple of weeks to a couple of
months, delivering working software
frequently.
Professor Lili Saghafi
proflilisaghafi@gmail.com
27
Principles of Agile Methodology
• For the customer’s competitive advantage,
Agile processes harness change,
welcoming changing requirements, even
late in development.
• Working together of developers and
business people, daily throughout the
project.
Professor Lili Saghafi
proflilisaghafi@gmail.com
28
Principles of Agile Methodology
• Trust the motivated individuals to get the
job done, giving them the environment and
support they need, by building projects
around motivated individuals.
• Face to face conversation within a
development team by the most effective
and efficient method of conveying
information.
Professor Lili Saghafi
proflilisaghafi@gmail.com
29
Principles of Agile Methodology
• The primary measure of progress in
Working Software.
• To be able to maintain a constant pace
indefinitely by the developers, users and
sponsors sustainable development is
promoted by Agile processes.
Professor Lili Saghafi
proflilisaghafi@gmail.com
30
Principles of Agile Methodology
• Good Design and Technical excellence
enhance agility by continuous attention.
• The self-organizing teams give the best
architectures, requirements, and designs.
• The team adjusts its behavior and tunes
accordingly at regular intervals, reflecting
on how to become more effective.
Professor Lili Saghafi
proflilisaghafi@gmail.com
31
Important Features of Agile
Development Process
• Sprints: It is an iterative development
cycle, where requirements are refined
regularly by breaking down the work into
small and digestible chunks.
• Scrum Meetings: It is a highly
collaborative working style of the team.
Professor Lili Saghafi
proflilisaghafi@gmail.com
32
Professor Lili Saghafi
proflilisaghafi@gmail.com
33
Important Features of Agile
Development Process
• Agile development process results in an
‘inspect and adapt’ approach with internal
and external stakeholders by reviewing
products and services frequently.
• Due to open interaction with investors and other
stakeholders and project management process,
the transparent process may be applied by
online Agile Project Management tools like
Team Foundation Service, Jira, Trello,
Kanbanzie, and others.
Professor Lili Saghafi
proflilisaghafi@gmail.com
34
Key Concepts of Agile Sprint
Processes
1. Daily Standup Meeting Checklist:
uses 4 Processes to planning well, managing
tightly and constantly optimizing sprints since
they are only two weeks.
first process being Daily Stand up, where all the
team members meet every day to make sure
that no team member is stuck on any problem
for more than few hours, keeping a check on
the progress of the sprint and taking care of
any problem.
Professor Lili Saghafi
proflilisaghafi@gmail.com
35
Key Concepts of Agile Sprint
Processes
2. Sprint Turnover: is a process when
every two weeks the last sprint comes to a
close, as newsprint is planned, this
process is documented in order to avoid
any overlooked or unassigned issue.
Professor Lili Saghafi
proflilisaghafi@gmail.com
36
Key Concepts of Agile Sprint
Processes
3. Sprint Retrospective: For improving the
way continuously, the team members run
agile processes, Sprint Retrospective is
vital. In this the team talks about three
points:
– Positive of Sprint Cycle?
– Negative of Sprint Cycle?
– How to Improve the Process.
Professor Lili Saghafi
proflilisaghafi@gmail.com
37
Key Concepts of Agile Sprint
Processes
4. Sprint Estimation: Planning Poker method is used so
that the issues are carefully estimated and assigned so
that Sprints consists of a balanced and achievable
amount of work.
Each team member’s estimations are equally weighed by
the planning poker method.
Based on the amount of effort put to resolve the issue, the
story point is assigned to each issue.
Players put their card face down estimating points, instead
of speaking out their point loud, unless at the end they
reveal them.
To ensure that no issues get missed, and then informing
the team to begin Planning Poker, this estimation is
made.
Professor Lili Saghafi
proflilisaghafi@gmail.com
38
Key Concepts of Agile Sprint
Processes
5. Pull Request Procedure: To avoid any risks to pull
requests, a lot of emphases is given by the development
team to make sure that it is done with care.
And every single pull request by using a procedure. The
process includes the following steps:
– For checking thoroughly.
– Producing a PR automatically in GitHub by pulling the
title of the checklist into GitHub as the pull request
name. This is done by inputting the checklist name
into a URL with a variable. To let others know about
the changes you have pushed to a branch in a
repository on GitHub, these requests are used.
Professor Lili Saghafi
proflilisaghafi@gmail.com
39
Key Concepts of Agile Sprint
Processes
6. Pull Request Review Failed Procedure: The checklist
in this procedure helps the developers to follow if their
pull request has failed review, by strictly rectifying the
reasons for rejection, answering back with information
showing how you have re-checked and solved the
issues, and then again assigning the problem to a
manager for a next review.
It is easier to learn, having a lower level for error compared
to PR.
To ensure that the developers check the comments
on GitHub and Jira, they apply the changes, and then
review the issue which is basically the main goal of the
checklist.
Professor Lili Saghafi
proflilisaghafi@gmail.com
40
Key Concepts of Agile Sprint
Processes
7. Pull Request Merge Process: Merge
Procedure is used for proving that it will
not break anything and only fix the issue
before a pull request can be merged and
approved into the olive branch.
Professor Lili Saghafi
proflilisaghafi@gmail.com
41
Key Concepts of Agile Sprint
Processes
8. Weekly WordPress Maintenance: To
strengthen loopholes in the security of site,
EXP:WordPress maintenance is used.
We have to ensure that the plugins are
updated as soon as possible as updates of
Plugins and new releases of WordPress
often serve to fix security deeds.
Professor Lili Saghafi
proflilisaghafi@gmail.com
42
Key Concepts of Agile Sprint
Processes
9. SSL Certificate Renewal: This process is used once in
three years but it is one of the most useful processes.
SSL Certificate allows secure connections from a web
server to a browser by activating the padlock and the
https protocol, when installed on a web server.
A cryptographic key is digitally bound to an organization’s
details by small data files known as SSL Certificates.
SSL renewal process is difficult but now it’s scheduled to
run automatically and send a notification so it can be
done quickly.
Professor Lili Saghafi
proflilisaghafi@gmail.com
43
Key Concepts of Agile Sprint
Processes
10. Developer Onboarding: New developers are equipped
with onboarding tools and knowledge to be as efficient
as the rest of the team.
Previously by using proper processes it used to take 2-3
days of back and forth to start a journey of a developer
and a lot of sharing of screen is required, but now only
links to these processes are mailed to the developer,
and then they are watched as they fill the checklist up
and then get ready to go on their own.
For getting new hire set up, only one onboarding checklist
is used by JIRA, Trello, and all other tools used.
Professor Lili Saghafi
proflilisaghafi@gmail.com
44
Key Concepts of Agile Sprint
Processes
• 11. How to Set Up Your Development
Environment : In this process, they will learn to
configure the template GitHub App by following
few steps and will learn how to run it over a
server.
• They will also learn Installation and how to
Authenticate as a GitHub App, and how these
authentication methods are different.
• Flexibility is essential when it comes to iterative
product development and the technology that
powers the projects.
• Every step of the way when you set up your
development environment manually should be
intervenable.
•
Professor Lili Saghafi
proflilisaghafi@gmail.com
45
Agile Software Development
Methodologies
• To adapt to change and deliver working software as
quickly as possible is the overall goal of each Agile
method
• there are variety of Agile Software development (or
system development ) methodologies including,
– Kanban,
– Disciplined Agile Delivery (DAD),
– Scrum,
– Adaptive Software Development,
– Scrumban,
– Dynamic Systems Development (DSDM),
– Extreme Programming (XP),
– Lean Software Development,
– Feature Driven Development,
– etc.
Professor Lili Saghafi
proflilisaghafi@gmail.com
46
Agile development Techniques
Agile Software Development Methodologies
• Extreme Programming (XP)
– New versions may be built several times per
day;
– Increments are delivered to customers every
2 weeks;
– All tests must be run for every build and the
build is only accepted if tests run
successfully.
Professor Lili Saghafi
proflilisaghafi@gmail.com
47
The five values of Extreme
Programming
1. Communication , no documentation but
communication
2. Simplicity, not thinking too far ahead into the future,
but focusing on the requirements of today , robust
enough to add the requirements the future
3. Feedback, from program , client and team.
4. Courage , different style of project management, and
be ready to be responsible, to renounce hierarchy and
be responsible and work without knowing
everything in the beginning itself
5. Respect, for others and the self. It also implies respect
for the code being written and for the client’s
expectations and needs.
Professor Lili Saghafi
proflilisaghafi@gmail.com
48
Examples of task cards for
prescribing medication
Professor Lili Saghafi
proflilisaghafi@gmail.com
49
Agile development Techniques
Extreme Programming (XP)
• Test-first development, Testing is central to XP
and XP has developed an approach where the
program is tested after every change has
been made.
– Test-first development.
– Incremental test development from scenarios.
– User involvement in test development and validation.
– Automated test harnesses are used to run all
component tests each time that a new release is built.
Professor Lili Saghafi
proflilisaghafi@gmail.com
50
Test case description for dose
checking
Professor Lili Saghafi
proflilisaghafi@gmail.com
51
Problems with test-first development
Extreme Programming (XP)
• Programmers prefer programming to testing and
sometimes they take short cuts when writing tests.
• For example, they may write incomplete tests that do
not check for all possible exceptions that may occur.
• Some tests can be very difficult to write incrementally.
For example, in a complex user interface, it is often
difficult to write unit tests for the code that implements
the ‘display logic’ and workflow between screens.
• It difficult to judge the completeness of a set of tests.
Although you may have a lot of system tests, your test
set may not provide complete coverage.
Professor Lili Saghafi
proflilisaghafi@gmail.com
52
Agile development Techniques
Extreme Programming (XP)
• Pair programming
– Pair programming involves programmers working in
pairs, developing code together.
– This helps develop common ownership of code and
spreads knowledge across the team.
– It serves as an informal review process as each line
of code is looked at by more than 1 person.
– It encourages refactoring as the whole team can
benefit from improving the system code.
Professor Lili Saghafi
proflilisaghafi@gmail.com
53
Agile Software Development Methodologies
Scrum
Scrum is an agile method that focuses on managing
iterative development rather than specific agile
practices.
There are three phases in Scrum.
1. The initial phase is an outline planning phase where
you establish the general objectives for the
project and design the software architecture.
2. This is followed by a series of sprint cycles, where
each cycle develops an increment of the system.
3. The project closure phase wraps up the project,
completes required documentation such as
system help framessystem help frames and user manualsuser manuals and
assesses the lessons learned from the project.
Professor Lili Saghafi
proflilisaghafi@gmail.com
54
Professor Lili Saghafi
proflilisaghafi@gmail.com
55
Scrum terminology
Professor Lili Saghafi
proflilisaghafi@gmail.com
56
Scrum terminology
Professor Lili Saghafi
proflilisaghafi@gmail.com
57
Professor Lili Saghafi
proflilisaghafi@gmail.com
58
Scrum sprint cycle
Professor Lili Saghafi
proflilisaghafi@gmail.com
59
Scrum Benefits
• The product is broken down into a set of
manageable and understandable chunks.
• Unstable requirements do not hold up progress.
• The whole team have visibility of everything and
consequently team communication is
improved.
• Customers see on-time delivery of increments
and gain feedback on how the product works.
•• TrustTrust between customers and developers is
established and a positive culture is created in
which everyone expects the project to succeed.
Professor Lili Saghafi
proflilisaghafi@gmail.com
60
Example:
• A software development project for a new
product, based on first-to-market advantage
has just been spotted on your company’s radar.
• Traditional methods of extreme programming,
where the client knows “exactly” what they want,
are out.
• Your team is small, and composed of young
professionals who are likely to respond well to a
radical project management model.
Professor Lili Saghafi
proflilisaghafi@gmail.com
61
What are your options in case of
agile methodology ?
• You’re likely to say, Agile Project
Management, of course! But which
methodology would you like to use?
• Scrum: that involves creating short
“sprints” based on the customer backlog
of tasks,focuses on a more flexible
approach to project management
Professor Lili Saghafi
proflilisaghafi@gmail.com
62
What are your options?
• Kanban, focuses on non-linear, iterative
methods of software development.
• Works on optimizing the pipeline of work.
Process evolved by the japanese , at the toyota
manufacturing plant to achieve just-in-time (JIT)
production which cuts costs and enables less
utilization of resources.
• Follows the “pull” principle of work, meaning that
tasks or products need to be “pulled” by
requirements and demand, and not “pushed”
from the top-down
Professor Lili Saghafi
proflilisaghafi@gmail.com
63
Traditional Project Management
In the case of a traditional project
management system if, for instance,
– There are 25 stories in total
– Analysts are able to handle five stories a
week
– Developers are able to handle five stories a
week
– Testers are limited to three stories a week
Professor Lili Saghafi
proflilisaghafi@gmail.com
64
Traditional Project Management
Board
Professor Lili Saghafi
proflilisaghafi@gmail.com
65
Kanban
In this situation, work simply piles up at the testers’
end. At the end of Week 1, the situation will be as
follows:
– Only three stories have moved on to deployment.
– Developers and analysts work on three stories, as
testers are unable to take the developers’ output
and test the same.
– Work gets piled up, leaving developers and
analysts and the project manager, in a fix.
– The Kanban method is an extremely simple
concept.
– It follows a simple logic of using a “pull method” to
removing the bottlenecks first, and limiting the
Works in Progress (WIPs) for better work
processes.
Professor Lili Saghafi
proflilisaghafi@gmail.com
66
Professor Lili Saghafi
proflilisaghafi@gmail.com
67
What are your options?
• Extreme Programming, often abbreviated to XP,
which focuses on amplifying the positive
aspects of traditional programming models
so they work to their maximum potential.
• focused on meeting changing client
requirements.
• The first Extreme Programming project was
started in March 1996, by Kent Beck at Chrysler.
Professor Lili Saghafi
proflilisaghafi@gmail.com
68
Stages of Life Cycle
Agile Project Management
Part Two
Professor Lili Saghafi
proflilisaghafi@gmail.com
69
Stages of the
Agile Lifecycle
1. Concept/Objective: based on the client’s
requirement and interaction clearly clarifies the
client’s expectations
2. Inception/Identifying Requirement: initial
requirements , team? Fund? Modeling the
development using the architectural strategy
and flow charts.
3. Construction/Development/Iteration: team
now starts working on developing the software
based on the first iteration to produce a working
product with minimum functionality at the end of
the first sprint which then undergoes continuous
revisions improvements until finalized.
Professor Lili Saghafi
proflilisaghafi@gmail.com
70
Stages of the
Agile Lifecycle
4. Production & Testing:
– Testing and debugging of the system.
– Finishing the system development and user
documentation.
– Guiding and training users.
– Deploy the system.
5. Retirement: system has become obsolete. The
agile development lifecycle is all about
continuous evolving and emerging the
development cycle.
Professor Lili Saghafi
proflilisaghafi@gmail.com
71
Solutions
• Most projects include elements of plan-
driven andand agile processes
Professor Lili Saghafi
proflilisaghafi@gmail.com
72
Stages of the
Agile Lifecycle
1. Concept/Objective: based on the client’s
requirement and interaction clearly clarifies the
client’s expectations
2. Inception/Identifying Requirement: initial
requirements , team? Fund? Modeling the
development using the architectural strategy
and flow charts.
3. Construction/Development/Iteration: team
now starts working on developing the software
based on the first iteration to produce a working
product with minimum functionality at the end of
the first sprint which then undergoes continuous
revisions improvements until finalized.
Professor Lili Saghafi
proflilisaghafi@gmail.com
73
Stages of the
Agile Lifecycle
4. Production & Testing:
– Testing and debugging of the system.
– Finishing the system development and user
documentation.
– Guiding and training users.
– Deploy the system.
5. Retirement: system has become obsolete. The
agile development lifecycle is all about
continuous evolving and emerging the
development cycle.
Professor Lili Saghafi
proflilisaghafi@gmail.com
74
How Agile Development Works?
1. Firstly a team of testers, developers and
analysts are assembled known as a cross-
functional team. Then a Scrum is being used,
working very nearly with the Product
Owner/client to act as the head of the team.
2. Next plan important methods and projects in
three to four weeks, a Sprint Planning Meeting
takes place in the development cycle, where
needs are broken into tasks and hours to
provide software developers with a clear and
real path of success.
Professor Lili Saghafi
proflilisaghafi@gmail.com
75
How Agile Development Works?
3- When all the necessities of a project are
placed in the project backlog during” Sprint
Planning ” and then transferred to the
” sprint backlog ”.
Due to the feedback of stakeholder and
requirements of evolving business, the
product backlog is constantly growing and
prioritized again and again.
Professor Lili Saghafi
proflilisaghafi@gmail.com
76
How Agile Development Works?
4. To review work-in-progress during an
iteration Daily Scrums takes place for a
max of fifteen minutes.
Three main goals for stand-ups for each
team member is:
(a) What did you achieve yesterday?
(b) What is your goal for today?
(c) What hurdles are in your way?
Professor Lili Saghafi
proflilisaghafi@gmail.com
77
How Agile Development Works?
5. A ‘’task board’’ having columns and swim lanes
are what Daily Scrums typical revolve around.
To breakdown the key stages of the workflow, it
can have more than one column.
According to your team and your project the task
board can be structured– get creative! The
entire point of Agile is to be open and easy –
and not get ‘boxed in’.
Professor Lili Saghafi
proflilisaghafi@gmail.com
78
How Agile Development Works?
6. Sprint Retrospective and Sprint Review
meetings are held at the end of the sprint.
To get it accepted by the Product Owner,
the completed user stories and to ‘show
the world’ what you have achieved is what
the focus to Sprint review is.
Professor Lili Saghafi
proflilisaghafi@gmail.com
79
How Agile Development Works?
Professor Lili Saghafi
proflilisaghafi@gmail.com
80
Professor Lili Saghafi
proflilisaghafi@gmail.com
81
Agile project management
• The principal responsibility of software project
managers is to manage the project so that the
software is delivered on time and within the
planned budget for the project.
• The standard approach to project management
is plan-driven. Managers draw up a plan for the
project showing what should be delivered, when
it should be delivered and who will work on the
development of the project deliverables.
Professor Lili Saghafi
proflilisaghafi@gmail.com
82
Agile project management
• Agile project management requires a
different approach, which is adapted to
incremental development and the
practices used in agile methods.
• The informality of agile development is
incompatible with the legal approach to
contract definition that is commonly used
in large companies.
Professor Lili Saghafi
proflilisaghafi@gmail.com
83
Practical Problems With Agile
Methods
• Appropriate for new software development
rather than software maintenance. Yet
the majority of software costs in large
companies come from maintaining their
existing software systems.
• Designed for small co-located teams yet
much software development now involves
worldwide distributed teams.
Professor Lili Saghafi
proflilisaghafi@gmail.com
84
Agile Maintenance
• Lack of product documentation
• Keeping customers involved in the development
process
• Maintaining the continuity of the development
team
• Agile development relies on the development
team knowing and understanding what has to be
done.
• For long-lifetime systems, this is a real problem
as the original developers will not always work
on the system.
Professor Lili Saghafi
proflilisaghafi@gmail.com
85
System Development Issues
• How large is the system being developed?
– Agile methods are most effective a relatively small co-located
team who can communicate informally.
• What type of system is being developed?
– Systems that require a lot of analysis before implementation
need a fairly detailed design to carry out this analysis.
• What is the expected system lifetime?
– Long-lifetime systems require documentation to communicate
the intentions of the system developers to the support team.
• Is the system subject to external regulation?
– If a system is regulated you will probably be required to produce
detailed documentation as part of the system safety case.
Professor Lili Saghafi
proflilisaghafi@gmail.com
86
System Development Issues
• How good are the designers and programmers
in the development team?
– It is sometimes argued that agile methods require
higher skill levels than plan-based approaches in
which programmers simply translate a detailed design
into code.
• How is the development team organized?
– Design documents may be required if the team is
distributed.
• What support technologies are available?
– IDE support for visualization and program analysis is
essential if design documentation is not available.
Professor Lili Saghafi
proflilisaghafi@gmail.com
87
System Development Issues
• Traditional engineering organizations have a
culture of plan-based development, as this is the
norm in engineering.
• Is it standard organizational practice to develop
a detailed system specification?
• Will customer representatives be available to
provide feedback of system increments?
• Can informal agile development fit into the
organizational culture of detailed
documentation?
Professor Lili Saghafi
proflilisaghafi@gmail.com
88
Advantages of Agile
Development
1. Continuous Improvement: To improve the
future iteration, throughout the whole project,
agile encourages feedback from users and team
members.
2. Change is Embraced: As the planning cycles
are shorter, it is easy to accept changes and
accommodate at any point of time, throughout
the project.
3. End-Goal can be Unknown: For that kind of
projects where end-goal is not defined, Agile is
very beneficial. The goals will come to light as
the project processes.
Professor Lili Saghafi
proflilisaghafi@gmail.com
89
Advantages of Agile
Development
4. Faster, High-Quality Delivery: The team focuses on
high-quality development, collaboration, and testing, by
breaking down the project into manageable units. The
bugs get identified and solve more quickly by conducting
testing during each iteration.
5. Strong Team Interaction: To take responsibility and
own parts of the project, Agile highlights the importance
of team working together with frequent communication,
and face-to-face interaction.
6. Customers are Heard: By working very closely with the
project team, customers can gain a sense of ownership
and have a real impact on the end product by getting
many opportunities to see the work being delivered and
share their input.
Professor Lili Saghafi
proflilisaghafi@gmail.com
90
Conclusion
• Agile is good for midsize systems
• Agile is effective
• Agile system development works better
with Agile Project management
Professor Lili Saghafi
proflilisaghafi@gmail.com
91
References and Image credits
• https://www.educba.com
• https://hackernoon.com
• https://www.initio.eu/blog/2020/1/22/change-management-in-agile-
methodology
• Software Engineering, 10/E, Ian Sommerville, University of St
Andrews, Scotland
• Engineering Software Products: An Introduction to Modern Software
Engineering
– Ian Sommerville, University of St Andrews, Scotland
– ISBN-10: 013521064X • ISBN-13: 9780135210642
– ©2020 • Pearson • Paper, 352 pp
– Published 05/09/2019
• Introduction to Professional Engineering in Canada, Fifth Canadian
Edition, 5/E
Professor Lili Saghafi
proflilisaghafi@gmail.com
92
Professor Lili Saghafi
proflilisaghafi@gmail.com
93
Any Question ?
Professor Lili Saghafi
proflilisaghafi@gmail.com
94
Software Engineering I
Software
Development
Lecture 3
By: Professor Lili Saghafi
proflilisaghafi@gmail.com
May 8, 2020
University of Houston
UHD @Lili_PLS

More Related Content

PDF
Data Scientist By: Professor Lili Saghafi
PDF
Data science unit 1 By: Professor Lili Saghafi
PDF
Data Science unit 2 By: Professor Lili Saghafi
PDF
Guide to end end machine learning projects
PDF
The path to be a data scientist
PDF
Data Science, Machine Learning and Neural Networks
PPTX
Machine learning, Machine learning training bootcamp
PPTX
Machine learning
Data Scientist By: Professor Lili Saghafi
Data science unit 1 By: Professor Lili Saghafi
Data Science unit 2 By: Professor Lili Saghafi
Guide to end end machine learning projects
The path to be a data scientist
Data Science, Machine Learning and Neural Networks
Machine learning, Machine learning training bootcamp
Machine learning

What's hot (20)

PPTX
Machine Learning in the age of Big Data
PPTX
Data science ppt
PDF
Barga ACM DEBS 2013 Keynote
PDF
CRISP-DM - Agile Approach To Data Mining Projects
PPTX
Mauritius Big Data and Machine Learning JEDI workshop
PDF
Introduction to Data Science
PDF
From Raw Data to Deployed Product. Fast & Agile with CRISP-DM
PPTX
End-to-End Machine Learning Project
PPTX
Introduction to Machine Learning
PDF
Barga Data Science lecture 2
PPTX
Machine Learning for Auditors
PDF
Intelligently Automating Machine Learning, Artificial Intelligence, and Data ...
PPTX
machine learning in the age of big data: new approaches and business applicat...
PDF
Data Driven Engineering 2014
PDF
AI in the Real World: Challenges, and Risks and how to handle them?
PPTX
Image Analytics: Caption Generation/Image Descriptions
PDF
Machine learning and big data
PPTX
On Attention Mechanisms for AGI Architectures: A Design Proposal
PPTX
Introduction to Big Data/Machine Learning
PDF
Barga DIDC'14 Invited Talk
Machine Learning in the age of Big Data
Data science ppt
Barga ACM DEBS 2013 Keynote
CRISP-DM - Agile Approach To Data Mining Projects
Mauritius Big Data and Machine Learning JEDI workshop
Introduction to Data Science
From Raw Data to Deployed Product. Fast & Agile with CRISP-DM
End-to-End Machine Learning Project
Introduction to Machine Learning
Barga Data Science lecture 2
Machine Learning for Auditors
Intelligently Automating Machine Learning, Artificial Intelligence, and Data ...
machine learning in the age of big data: new approaches and business applicat...
Data Driven Engineering 2014
AI in the Real World: Challenges, and Risks and how to handle them?
Image Analytics: Caption Generation/Image Descriptions
Machine learning and big data
On Attention Mechanisms for AGI Architectures: A Design Proposal
Introduction to Big Data/Machine Learning
Barga DIDC'14 Invited Talk
Ad

Similar to Software Engineering_Agile Software Development By: Professor Lili Saghafi (20)

PPT
Introduction to Software Engineering
PPTX
Introduction to Software Engineering
PDF
agile basics2 software engineering development
PPTX
Agile Methodology PPT
PPT
Unit 1.ppt
PPTX
Agile_Software_Development_Model_aa1.pptx
PPTX
ehcahce using spring boot application.pptx
PDF
Agile methodologiesvswaterfall
PDF
Istqb Agile-tester Extension
PDF
#Fundamental understanding of agile - By SN Panigrahi
PDF
Chapter 3 - Agile Software Development.pdf
PDF
What is Agile Software Development?
PDF
PPTX
fuzzy search using spring boot and ibmi db2.pptx
PPTX
Software EngineeringModule 2 (Complete).pptx
PPTX
Agile Software Development Life Cycle
DOC
Chapter 1,2,3,4 notes
PPTX
Introduction to Software Engg SDLC, SDLC Models
PPTX
Agile software process
PDF
Breaking Tradition: Agile Frameworks For The Modern Era of Collaborative Proj...
Introduction to Software Engineering
Introduction to Software Engineering
agile basics2 software engineering development
Agile Methodology PPT
Unit 1.ppt
Agile_Software_Development_Model_aa1.pptx
ehcahce using spring boot application.pptx
Agile methodologiesvswaterfall
Istqb Agile-tester Extension
#Fundamental understanding of agile - By SN Panigrahi
Chapter 3 - Agile Software Development.pdf
What is Agile Software Development?
fuzzy search using spring boot and ibmi db2.pptx
Software EngineeringModule 2 (Complete).pptx
Agile Software Development Life Cycle
Chapter 1,2,3,4 notes
Introduction to Software Engg SDLC, SDLC Models
Agile software process
Breaking Tradition: Agile Frameworks For The Modern Era of Collaborative Proj...
Ad

More from Professor Lili Saghafi (20)

PDF
Artificial Intelligence and the importance of Data, By : Prof. Lili Saghafi
PPTX
Software Engineering
PDF
Introduction to Quantum Computing Lecture 1: Fundamentals
PDF
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
PDF
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
PDF
Introduction to blockchain lesson 2 By: Professor Lili Saghafi
PDF
Introduction to Blockchain Technology By Professor Lili Saghafi
PDF
Cyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
PDF
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
PPT
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
PDF
Machine learning by using python Lesson One Part 2 By Professor Lili Saghafi
PDF
Machine learning by using python By: Professor Lili Saghafi
PDF
What is digital humanities ,By: Professor Lili Saghafi
PDF
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
PDF
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
PDF
New Assessments in Higher Education with Computers by: Prof Lili Saghafi
PDF
Quick Sort By Prof Lili Saghafi
PDF
Arrow of time by Professor Lili Saghafi
PDF
Pointers by: Professor Lili Saghafi
Artificial Intelligence and the importance of Data, By : Prof. Lili Saghafi
Software Engineering
Introduction to Quantum Computing Lecture 1: Fundamentals
Quantum Computing Quantum Internet 2020_unit 1 By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Introduction to blockchain lesson 2 By: Professor Lili Saghafi
Introduction to Blockchain Technology By Professor Lili Saghafi
Cyber Security and Post Quantum Cryptography By: Professor Lili Saghafi
Machine learning by using python lesson 3 Confusion Matrix By : Professor Lil...
Machine learning by using python lesson 2 Neural Networks By Professor Lili S...
Machine learning by using python Lesson One Part 2 By Professor Lili Saghafi
Machine learning by using python By: Professor Lili Saghafi
What is digital humanities ,By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Computer Security Cyber Security DOS_DDOS Attacks By: Professor Lili Saghafi
New Assessments in Higher Education with Computers by: Prof Lili Saghafi
Quick Sort By Prof Lili Saghafi
Arrow of time by Professor Lili Saghafi
Pointers by: Professor Lili Saghafi

Recently uploaded (20)

PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PDF
Sports Quiz easy sports quiz sports quiz
PDF
Basic Mud Logging Guide for educational purpose
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Institutional Correction lecture only . . .
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Complications of Minimal Access Surgery at WLH
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
TR - Agricultural Crops Production NC III.pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Classroom Observation Tools for Teachers
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
Sports Quiz easy sports quiz sports quiz
Basic Mud Logging Guide for educational purpose
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
O7-L3 Supply Chain Operations - ICLT Program
Supply Chain Operations Speaking Notes -ICLT Program
Institutional Correction lecture only . . .
VCE English Exam - Section C Student Revision Booklet
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Complications of Minimal Access Surgery at WLH
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
human mycosis Human fungal infections are called human mycosis..pptx
TR - Agricultural Crops Production NC III.pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
STATICS OF THE RIGID BODIES Hibbelers.pdf
Microbial disease of the cardiovascular and lymphatic systems
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Classroom Observation Tools for Teachers
O5-L3 Freight Transport Ops (International) V1.pdf

Software Engineering_Agile Software Development By: Professor Lili Saghafi

  • 1. Professor Lili Saghafi proflilisaghafi@gmail.com 1 By: Professor Lili Saghafi proflilisaghafi@gmail.com May 8, 2020 University of Houston UHD @Lili_PLS Software Engineering I Software Development Lecture 3
  • 2. Professor Lili Saghafi proflilisaghafi@gmail.com 2 Topics • Software Development Models and their processes (Review) • Agile Software Development method • Agile development Characteristic, Principals , lifecycle, stages • Agile development techniques • How it works • Agile project management , Scrum • Scaling agile methods , issues , Problems , maintenance , solutions , advantages
  • 3. Professor Lili Saghafi proflilisaghafi@gmail.com 3 Software Development Methodology • The waterfall model – Plan-driven model. Separate and distinct phases of specification and development. • Incremental development – Specification, development and validation are interleaved. May be plan-driven or agile. • Integration and configuration – The system is assembled from existing configurable components. May be plan-driven or agile. In practice, most large systems are developed using a process that incorporates elements from all of these models. • Agile Development
  • 4. Professor Lili Saghafi proflilisaghafi@gmail.com 4 Software Development Waterfall Model 5 phases in the waterfall model: 1. Requirements analysis and definition 2. System and software design (Output Design Specification ) 3. Implementation and unit testing ( Writing code , output is the software) 4. Integration and system testing Operation and maintenance
  • 5. Professor Lili Saghafi proflilisaghafi@gmail.com 5 Software Development Waterfall Model 1. System Planning 2. System Requirement 3. System Design 4. System Implementation 5. System Maintenance and Support
  • 6. Professor Lili Saghafi proflilisaghafi@gmail.com 6 Waterfall Model Drawback of the waterfall model is the difficulty of accommodating change Used for large systems engineering projects where a system is developed at several sites.
  • 8. Professor Lili Saghafi proflilisaghafi@gmail.com 8 A general model of the design process
  • 9. Professor Lili Saghafi proflilisaghafi@gmail.com 9 Software Development Incremental development Model• The cost of accommodating changing to customer requirements is reduced. • Easier to get customer feedback on the development • Rapid delivery is possible But: • Managers need regular deliverables to measure progress. •• Regular changeRegular change tends to corrupt its structure.
  • 10. Professor Lili Saghafi proflilisaghafi@gmail.com 10 Software Development Integration and configuration Model • Customization of COTS -Commercial-off- the-shelf systems • Reused elements may be configured to adapt their behavior and functionality to a user’s requirements • Reuse is now the standard approach for building many types of business system
  • 11. Professor Lili Saghafi proflilisaghafi@gmail.com 11 Example • In billing system various modules can be reused : – Receives call detail and service usage information, groups this information for specific accounts or customers, – Produces invoices, (based on Pricing System) – Creates reports for management, – Records (posts) payments made to customer accounts.
  • 12. Professor Lili Saghafi proflilisaghafi@gmail.com 12 Billing System • Any billing system is a multi-branch, multi-cycle, multi- currency, and multi-lingual modular system with various components designed to manage the complete billing cycle that includes: – Applications, – Meters reading, – Invoicing, – Collections (cash, checks, credit cards, bank accredits, and tampering cases-electricity theft), – Debts scheduling, – Setup system, – Security system, – Mobile billing system
  • 13. Professor Lili Saghafi proflilisaghafi@gmail.com 13 Software Development Integration and configuration Model
  • 14. Professor Lili Saghafi proflilisaghafi@gmail.com 14 Types of Reusable Software • Stand-alone application systems (sometimes called COTS, Commercial-off-the-shelf systems) that are configured for use in a particular environment. • Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE. • Web services that are developed according to service standards and which are available for remote invocation.
  • 15. Professor Lili Saghafi proflilisaghafi@gmail.com 15 Software Development Agile Software Development Manifesto “Better ways of developing software by doing it and helping others do it , Agile software development comprises various approaches to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer/end user”.
  • 17. Professor Lili Saghafi proflilisaghafi@gmail.com 17 The Need for Agile Development • Rapid development (RAD) and delivery is now often the most important requirement for software systems • Plan-driven development is essential for some types of system but does not meet these business needs.
  • 18. Professor Lili Saghafi proflilisaghafi@gmail.com 18 Agile Development Causes • Dissatisfaction with the overheads • to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
  • 19. Professor Lili Saghafi proflilisaghafi@gmail.com 19 When to use Agile? • Software company is developing a small or medium-sized product for sale • Custom system development , with clear commitment from the customer to become involved and few external rules and regulations that affect the software.
  • 20. Professor Lili Saghafi proflilisaghafi@gmail.com 20 Agile History • Agile development methods emerged in the late 1990s whose aim was to radically reduce the delivery time for working software systems , that introduced a range of agile development techniques
  • 21. Professor Lili Saghafi proflilisaghafi@gmail.com 21 Agile Development Characteristic 1. Program specification, design and implementation are inter-leaved 2. The system is developed as a series of versions or increments with stakeholders involved in version specification and evaluation 3. Frequent delivery of new versions for evaluation 4. Extensive tool support (e.g. automated testing tools) used to support development. 5. Minimal documentation – focus on working code
  • 24. Professor Lili Saghafi proflilisaghafi@gmail.com 24 Reality • In practice, most practical processes include elements of both plan-driven and agile approaches. • There are no right or wrong software processes.
  • 25. Professor Lili Saghafi proflilisaghafi@gmail.com 25 Why Agile? • Due to its suitability for an ever-changing business landscape, Agile Software Development methodology has recently gained significant attraction inside and outside of IT departments. • By adopting the Agile Software Development Methodology, organizations are experiencing great success in meeting the fast-paced change of customer needs, offering an iterative approach to the design and development of software.
  • 26. Professor Lili Saghafi proflilisaghafi@gmail.com 26 Principles of Agile Methodology • To satisfy the customer through early and continuous delivery of valuable software is the highest priority of Agile Software. • With a preference to the shorter timescale, from a couple of weeks to a couple of months, delivering working software frequently.
  • 27. Professor Lili Saghafi proflilisaghafi@gmail.com 27 Principles of Agile Methodology • For the customer’s competitive advantage, Agile processes harness change, welcoming changing requirements, even late in development. • Working together of developers and business people, daily throughout the project.
  • 28. Professor Lili Saghafi proflilisaghafi@gmail.com 28 Principles of Agile Methodology • Trust the motivated individuals to get the job done, giving them the environment and support they need, by building projects around motivated individuals. • Face to face conversation within a development team by the most effective and efficient method of conveying information.
  • 29. Professor Lili Saghafi proflilisaghafi@gmail.com 29 Principles of Agile Methodology • The primary measure of progress in Working Software. • To be able to maintain a constant pace indefinitely by the developers, users and sponsors sustainable development is promoted by Agile processes.
  • 30. Professor Lili Saghafi proflilisaghafi@gmail.com 30 Principles of Agile Methodology • Good Design and Technical excellence enhance agility by continuous attention. • The self-organizing teams give the best architectures, requirements, and designs. • The team adjusts its behavior and tunes accordingly at regular intervals, reflecting on how to become more effective.
  • 31. Professor Lili Saghafi proflilisaghafi@gmail.com 31 Important Features of Agile Development Process • Sprints: It is an iterative development cycle, where requirements are refined regularly by breaking down the work into small and digestible chunks. • Scrum Meetings: It is a highly collaborative working style of the team.
  • 33. Professor Lili Saghafi proflilisaghafi@gmail.com 33 Important Features of Agile Development Process • Agile development process results in an ‘inspect and adapt’ approach with internal and external stakeholders by reviewing products and services frequently. • Due to open interaction with investors and other stakeholders and project management process, the transparent process may be applied by online Agile Project Management tools like Team Foundation Service, Jira, Trello, Kanbanzie, and others.
  • 34. Professor Lili Saghafi proflilisaghafi@gmail.com 34 Key Concepts of Agile Sprint Processes 1. Daily Standup Meeting Checklist: uses 4 Processes to planning well, managing tightly and constantly optimizing sprints since they are only two weeks. first process being Daily Stand up, where all the team members meet every day to make sure that no team member is stuck on any problem for more than few hours, keeping a check on the progress of the sprint and taking care of any problem.
  • 35. Professor Lili Saghafi proflilisaghafi@gmail.com 35 Key Concepts of Agile Sprint Processes 2. Sprint Turnover: is a process when every two weeks the last sprint comes to a close, as newsprint is planned, this process is documented in order to avoid any overlooked or unassigned issue.
  • 36. Professor Lili Saghafi proflilisaghafi@gmail.com 36 Key Concepts of Agile Sprint Processes 3. Sprint Retrospective: For improving the way continuously, the team members run agile processes, Sprint Retrospective is vital. In this the team talks about three points: – Positive of Sprint Cycle? – Negative of Sprint Cycle? – How to Improve the Process.
  • 37. Professor Lili Saghafi proflilisaghafi@gmail.com 37 Key Concepts of Agile Sprint Processes 4. Sprint Estimation: Planning Poker method is used so that the issues are carefully estimated and assigned so that Sprints consists of a balanced and achievable amount of work. Each team member’s estimations are equally weighed by the planning poker method. Based on the amount of effort put to resolve the issue, the story point is assigned to each issue. Players put their card face down estimating points, instead of speaking out their point loud, unless at the end they reveal them. To ensure that no issues get missed, and then informing the team to begin Planning Poker, this estimation is made.
  • 38. Professor Lili Saghafi proflilisaghafi@gmail.com 38 Key Concepts of Agile Sprint Processes 5. Pull Request Procedure: To avoid any risks to pull requests, a lot of emphases is given by the development team to make sure that it is done with care. And every single pull request by using a procedure. The process includes the following steps: – For checking thoroughly. – Producing a PR automatically in GitHub by pulling the title of the checklist into GitHub as the pull request name. This is done by inputting the checklist name into a URL with a variable. To let others know about the changes you have pushed to a branch in a repository on GitHub, these requests are used.
  • 39. Professor Lili Saghafi proflilisaghafi@gmail.com 39 Key Concepts of Agile Sprint Processes 6. Pull Request Review Failed Procedure: The checklist in this procedure helps the developers to follow if their pull request has failed review, by strictly rectifying the reasons for rejection, answering back with information showing how you have re-checked and solved the issues, and then again assigning the problem to a manager for a next review. It is easier to learn, having a lower level for error compared to PR. To ensure that the developers check the comments on GitHub and Jira, they apply the changes, and then review the issue which is basically the main goal of the checklist.
  • 40. Professor Lili Saghafi proflilisaghafi@gmail.com 40 Key Concepts of Agile Sprint Processes 7. Pull Request Merge Process: Merge Procedure is used for proving that it will not break anything and only fix the issue before a pull request can be merged and approved into the olive branch.
  • 41. Professor Lili Saghafi proflilisaghafi@gmail.com 41 Key Concepts of Agile Sprint Processes 8. Weekly WordPress Maintenance: To strengthen loopholes in the security of site, EXP:WordPress maintenance is used. We have to ensure that the plugins are updated as soon as possible as updates of Plugins and new releases of WordPress often serve to fix security deeds.
  • 42. Professor Lili Saghafi proflilisaghafi@gmail.com 42 Key Concepts of Agile Sprint Processes 9. SSL Certificate Renewal: This process is used once in three years but it is one of the most useful processes. SSL Certificate allows secure connections from a web server to a browser by activating the padlock and the https protocol, when installed on a web server. A cryptographic key is digitally bound to an organization’s details by small data files known as SSL Certificates. SSL renewal process is difficult but now it’s scheduled to run automatically and send a notification so it can be done quickly.
  • 43. Professor Lili Saghafi proflilisaghafi@gmail.com 43 Key Concepts of Agile Sprint Processes 10. Developer Onboarding: New developers are equipped with onboarding tools and knowledge to be as efficient as the rest of the team. Previously by using proper processes it used to take 2-3 days of back and forth to start a journey of a developer and a lot of sharing of screen is required, but now only links to these processes are mailed to the developer, and then they are watched as they fill the checklist up and then get ready to go on their own. For getting new hire set up, only one onboarding checklist is used by JIRA, Trello, and all other tools used.
  • 44. Professor Lili Saghafi proflilisaghafi@gmail.com 44 Key Concepts of Agile Sprint Processes • 11. How to Set Up Your Development Environment : In this process, they will learn to configure the template GitHub App by following few steps and will learn how to run it over a server. • They will also learn Installation and how to Authenticate as a GitHub App, and how these authentication methods are different. • Flexibility is essential when it comes to iterative product development and the technology that powers the projects. • Every step of the way when you set up your development environment manually should be intervenable. •
  • 45. Professor Lili Saghafi proflilisaghafi@gmail.com 45 Agile Software Development Methodologies • To adapt to change and deliver working software as quickly as possible is the overall goal of each Agile method • there are variety of Agile Software development (or system development ) methodologies including, – Kanban, – Disciplined Agile Delivery (DAD), – Scrum, – Adaptive Software Development, – Scrumban, – Dynamic Systems Development (DSDM), – Extreme Programming (XP), – Lean Software Development, – Feature Driven Development, – etc.
  • 46. Professor Lili Saghafi proflilisaghafi@gmail.com 46 Agile development Techniques Agile Software Development Methodologies • Extreme Programming (XP) – New versions may be built several times per day; – Increments are delivered to customers every 2 weeks; – All tests must be run for every build and the build is only accepted if tests run successfully.
  • 47. Professor Lili Saghafi proflilisaghafi@gmail.com 47 The five values of Extreme Programming 1. Communication , no documentation but communication 2. Simplicity, not thinking too far ahead into the future, but focusing on the requirements of today , robust enough to add the requirements the future 3. Feedback, from program , client and team. 4. Courage , different style of project management, and be ready to be responsible, to renounce hierarchy and be responsible and work without knowing everything in the beginning itself 5. Respect, for others and the self. It also implies respect for the code being written and for the client’s expectations and needs.
  • 48. Professor Lili Saghafi proflilisaghafi@gmail.com 48 Examples of task cards for prescribing medication
  • 49. Professor Lili Saghafi proflilisaghafi@gmail.com 49 Agile development Techniques Extreme Programming (XP) • Test-first development, Testing is central to XP and XP has developed an approach where the program is tested after every change has been made. – Test-first development. – Incremental test development from scenarios. – User involvement in test development and validation. – Automated test harnesses are used to run all component tests each time that a new release is built.
  • 50. Professor Lili Saghafi proflilisaghafi@gmail.com 50 Test case description for dose checking
  • 51. Professor Lili Saghafi proflilisaghafi@gmail.com 51 Problems with test-first development Extreme Programming (XP) • Programmers prefer programming to testing and sometimes they take short cuts when writing tests. • For example, they may write incomplete tests that do not check for all possible exceptions that may occur. • Some tests can be very difficult to write incrementally. For example, in a complex user interface, it is often difficult to write unit tests for the code that implements the ‘display logic’ and workflow between screens. • It difficult to judge the completeness of a set of tests. Although you may have a lot of system tests, your test set may not provide complete coverage.
  • 52. Professor Lili Saghafi proflilisaghafi@gmail.com 52 Agile development Techniques Extreme Programming (XP) • Pair programming – Pair programming involves programmers working in pairs, developing code together. – This helps develop common ownership of code and spreads knowledge across the team. – It serves as an informal review process as each line of code is looked at by more than 1 person. – It encourages refactoring as the whole team can benefit from improving the system code.
  • 53. Professor Lili Saghafi proflilisaghafi@gmail.com 53 Agile Software Development Methodologies Scrum Scrum is an agile method that focuses on managing iterative development rather than specific agile practices. There are three phases in Scrum. 1. The initial phase is an outline planning phase where you establish the general objectives for the project and design the software architecture. 2. This is followed by a series of sprint cycles, where each cycle develops an increment of the system. 3. The project closure phase wraps up the project, completes required documentation such as system help framessystem help frames and user manualsuser manuals and assesses the lessons learned from the project.
  • 59. Professor Lili Saghafi proflilisaghafi@gmail.com 59 Scrum Benefits • The product is broken down into a set of manageable and understandable chunks. • Unstable requirements do not hold up progress. • The whole team have visibility of everything and consequently team communication is improved. • Customers see on-time delivery of increments and gain feedback on how the product works. •• TrustTrust between customers and developers is established and a positive culture is created in which everyone expects the project to succeed.
  • 60. Professor Lili Saghafi proflilisaghafi@gmail.com 60 Example: • A software development project for a new product, based on first-to-market advantage has just been spotted on your company’s radar. • Traditional methods of extreme programming, where the client knows “exactly” what they want, are out. • Your team is small, and composed of young professionals who are likely to respond well to a radical project management model.
  • 61. Professor Lili Saghafi proflilisaghafi@gmail.com 61 What are your options in case of agile methodology ? • You’re likely to say, Agile Project Management, of course! But which methodology would you like to use? • Scrum: that involves creating short “sprints” based on the customer backlog of tasks,focuses on a more flexible approach to project management
  • 62. Professor Lili Saghafi proflilisaghafi@gmail.com 62 What are your options? • Kanban, focuses on non-linear, iterative methods of software development. • Works on optimizing the pipeline of work. Process evolved by the japanese , at the toyota manufacturing plant to achieve just-in-time (JIT) production which cuts costs and enables less utilization of resources. • Follows the “pull” principle of work, meaning that tasks or products need to be “pulled” by requirements and demand, and not “pushed” from the top-down
  • 63. Professor Lili Saghafi proflilisaghafi@gmail.com 63 Traditional Project Management In the case of a traditional project management system if, for instance, – There are 25 stories in total – Analysts are able to handle five stories a week – Developers are able to handle five stories a week – Testers are limited to three stories a week
  • 65. Professor Lili Saghafi proflilisaghafi@gmail.com 65 Kanban In this situation, work simply piles up at the testers’ end. At the end of Week 1, the situation will be as follows: – Only three stories have moved on to deployment. – Developers and analysts work on three stories, as testers are unable to take the developers’ output and test the same. – Work gets piled up, leaving developers and analysts and the project manager, in a fix. – The Kanban method is an extremely simple concept. – It follows a simple logic of using a “pull method” to removing the bottlenecks first, and limiting the Works in Progress (WIPs) for better work processes.
  • 67. Professor Lili Saghafi proflilisaghafi@gmail.com 67 What are your options? • Extreme Programming, often abbreviated to XP, which focuses on amplifying the positive aspects of traditional programming models so they work to their maximum potential. • focused on meeting changing client requirements. • The first Extreme Programming project was started in March 1996, by Kent Beck at Chrysler.
  • 68. Professor Lili Saghafi proflilisaghafi@gmail.com 68 Stages of Life Cycle Agile Project Management Part Two
  • 69. Professor Lili Saghafi proflilisaghafi@gmail.com 69 Stages of the Agile Lifecycle 1. Concept/Objective: based on the client’s requirement and interaction clearly clarifies the client’s expectations 2. Inception/Identifying Requirement: initial requirements , team? Fund? Modeling the development using the architectural strategy and flow charts. 3. Construction/Development/Iteration: team now starts working on developing the software based on the first iteration to produce a working product with minimum functionality at the end of the first sprint which then undergoes continuous revisions improvements until finalized.
  • 70. Professor Lili Saghafi proflilisaghafi@gmail.com 70 Stages of the Agile Lifecycle 4. Production & Testing: – Testing and debugging of the system. – Finishing the system development and user documentation. – Guiding and training users. – Deploy the system. 5. Retirement: system has become obsolete. The agile development lifecycle is all about continuous evolving and emerging the development cycle.
  • 71. Professor Lili Saghafi proflilisaghafi@gmail.com 71 Solutions • Most projects include elements of plan- driven andand agile processes
  • 72. Professor Lili Saghafi proflilisaghafi@gmail.com 72 Stages of the Agile Lifecycle 1. Concept/Objective: based on the client’s requirement and interaction clearly clarifies the client’s expectations 2. Inception/Identifying Requirement: initial requirements , team? Fund? Modeling the development using the architectural strategy and flow charts. 3. Construction/Development/Iteration: team now starts working on developing the software based on the first iteration to produce a working product with minimum functionality at the end of the first sprint which then undergoes continuous revisions improvements until finalized.
  • 73. Professor Lili Saghafi proflilisaghafi@gmail.com 73 Stages of the Agile Lifecycle 4. Production & Testing: – Testing and debugging of the system. – Finishing the system development and user documentation. – Guiding and training users. – Deploy the system. 5. Retirement: system has become obsolete. The agile development lifecycle is all about continuous evolving and emerging the development cycle.
  • 74. Professor Lili Saghafi proflilisaghafi@gmail.com 74 How Agile Development Works? 1. Firstly a team of testers, developers and analysts are assembled known as a cross- functional team. Then a Scrum is being used, working very nearly with the Product Owner/client to act as the head of the team. 2. Next plan important methods and projects in three to four weeks, a Sprint Planning Meeting takes place in the development cycle, where needs are broken into tasks and hours to provide software developers with a clear and real path of success.
  • 75. Professor Lili Saghafi proflilisaghafi@gmail.com 75 How Agile Development Works? 3- When all the necessities of a project are placed in the project backlog during” Sprint Planning ” and then transferred to the ” sprint backlog ”. Due to the feedback of stakeholder and requirements of evolving business, the product backlog is constantly growing and prioritized again and again.
  • 76. Professor Lili Saghafi proflilisaghafi@gmail.com 76 How Agile Development Works? 4. To review work-in-progress during an iteration Daily Scrums takes place for a max of fifteen minutes. Three main goals for stand-ups for each team member is: (a) What did you achieve yesterday? (b) What is your goal for today? (c) What hurdles are in your way?
  • 77. Professor Lili Saghafi proflilisaghafi@gmail.com 77 How Agile Development Works? 5. A ‘’task board’’ having columns and swim lanes are what Daily Scrums typical revolve around. To breakdown the key stages of the workflow, it can have more than one column. According to your team and your project the task board can be structured– get creative! The entire point of Agile is to be open and easy – and not get ‘boxed in’.
  • 78. Professor Lili Saghafi proflilisaghafi@gmail.com 78 How Agile Development Works? 6. Sprint Retrospective and Sprint Review meetings are held at the end of the sprint. To get it accepted by the Product Owner, the completed user stories and to ‘show the world’ what you have achieved is what the focus to Sprint review is.
  • 81. Professor Lili Saghafi proflilisaghafi@gmail.com 81 Agile project management • The principal responsibility of software project managers is to manage the project so that the software is delivered on time and within the planned budget for the project. • The standard approach to project management is plan-driven. Managers draw up a plan for the project showing what should be delivered, when it should be delivered and who will work on the development of the project deliverables.
  • 82. Professor Lili Saghafi proflilisaghafi@gmail.com 82 Agile project management • Agile project management requires a different approach, which is adapted to incremental development and the practices used in agile methods. • The informality of agile development is incompatible with the legal approach to contract definition that is commonly used in large companies.
  • 83. Professor Lili Saghafi proflilisaghafi@gmail.com 83 Practical Problems With Agile Methods • Appropriate for new software development rather than software maintenance. Yet the majority of software costs in large companies come from maintaining their existing software systems. • Designed for small co-located teams yet much software development now involves worldwide distributed teams.
  • 84. Professor Lili Saghafi proflilisaghafi@gmail.com 84 Agile Maintenance • Lack of product documentation • Keeping customers involved in the development process • Maintaining the continuity of the development team • Agile development relies on the development team knowing and understanding what has to be done. • For long-lifetime systems, this is a real problem as the original developers will not always work on the system.
  • 85. Professor Lili Saghafi proflilisaghafi@gmail.com 85 System Development Issues • How large is the system being developed? – Agile methods are most effective a relatively small co-located team who can communicate informally. • What type of system is being developed? – Systems that require a lot of analysis before implementation need a fairly detailed design to carry out this analysis. • What is the expected system lifetime? – Long-lifetime systems require documentation to communicate the intentions of the system developers to the support team. • Is the system subject to external regulation? – If a system is regulated you will probably be required to produce detailed documentation as part of the system safety case.
  • 86. Professor Lili Saghafi proflilisaghafi@gmail.com 86 System Development Issues • How good are the designers and programmers in the development team? – It is sometimes argued that agile methods require higher skill levels than plan-based approaches in which programmers simply translate a detailed design into code. • How is the development team organized? – Design documents may be required if the team is distributed. • What support technologies are available? – IDE support for visualization and program analysis is essential if design documentation is not available.
  • 87. Professor Lili Saghafi proflilisaghafi@gmail.com 87 System Development Issues • Traditional engineering organizations have a culture of plan-based development, as this is the norm in engineering. • Is it standard organizational practice to develop a detailed system specification? • Will customer representatives be available to provide feedback of system increments? • Can informal agile development fit into the organizational culture of detailed documentation?
  • 88. Professor Lili Saghafi proflilisaghafi@gmail.com 88 Advantages of Agile Development 1. Continuous Improvement: To improve the future iteration, throughout the whole project, agile encourages feedback from users and team members. 2. Change is Embraced: As the planning cycles are shorter, it is easy to accept changes and accommodate at any point of time, throughout the project. 3. End-Goal can be Unknown: For that kind of projects where end-goal is not defined, Agile is very beneficial. The goals will come to light as the project processes.
  • 89. Professor Lili Saghafi proflilisaghafi@gmail.com 89 Advantages of Agile Development 4. Faster, High-Quality Delivery: The team focuses on high-quality development, collaboration, and testing, by breaking down the project into manageable units. The bugs get identified and solve more quickly by conducting testing during each iteration. 5. Strong Team Interaction: To take responsibility and own parts of the project, Agile highlights the importance of team working together with frequent communication, and face-to-face interaction. 6. Customers are Heard: By working very closely with the project team, customers can gain a sense of ownership and have a real impact on the end product by getting many opportunities to see the work being delivered and share their input.
  • 90. Professor Lili Saghafi proflilisaghafi@gmail.com 90 Conclusion • Agile is good for midsize systems • Agile is effective • Agile system development works better with Agile Project management
  • 91. Professor Lili Saghafi proflilisaghafi@gmail.com 91 References and Image credits • https://www.educba.com • https://hackernoon.com • https://www.initio.eu/blog/2020/1/22/change-management-in-agile- methodology • Software Engineering, 10/E, Ian Sommerville, University of St Andrews, Scotland • Engineering Software Products: An Introduction to Modern Software Engineering – Ian Sommerville, University of St Andrews, Scotland – ISBN-10: 013521064X • ISBN-13: 9780135210642 – ©2020 • Pearson • Paper, 352 pp – Published 05/09/2019 • Introduction to Professional Engineering in Canada, Fifth Canadian Edition, 5/E
  • 94. Professor Lili Saghafi proflilisaghafi@gmail.com 94 Software Engineering I Software Development Lecture 3 By: Professor Lili Saghafi proflilisaghafi@gmail.com May 8, 2020 University of Houston UHD @Lili_PLS