software engineering · 2017-05-12 · retrospective (from latin retrospectare, "look...
TRANSCRIPT
SOFTWARE ENGINEERINGCOURSE CODE:CS-326
LECTURE # 6
Engr. Faiza Ayub Syed
AGILE SOFTWARE DEVELOPMENT
The Manifesto for Agile Software Development, also known
as the Agile Manifesto, was first proclaimed in 2001, after
"agile methodology" was originally introduced in the late
1980s and early 1990s
Agile software development is a set of principles
for software development in which requirements and
solutions evolve through collaboration between self-
organizing cross-functional teams.
It promotes adaptive planning, evolutionary development,
early delivery, and continuous improvement.
Engr. Faiza Ayub Syed
AGILE SOFTWARE DEVELOPMENT
Agile methodology is an alternative to traditional project
management, typically used in software development.
It helps teams respond to unpredictability through
incremental, iterative work cadences, known as sprints.
Agile methodologies are an alternative to waterfall, or
traditional sequential development.
Engr. Faiza Ayub Syed
AGILE SOFTWARE DEVELOPMENT
Engr. Faiza Ayub Syed
EXAMPLE 1
FLYOVER CONSTRUCTION
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
TRADITIONAL APPROACH
Step 1: A temporary road is constructed next to the
main crossroad.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
TRADITIONAL APPROACH
Step 2: Flyover construction work is started from both
directions.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
TRADITIONAL APPROACH
Step 3: After 18 months or so, the work is completed
and the temporary road is removed.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
AGILE APPROACH
Step 1: A one-way temporary road is constructed
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
AGILE APPROACH
Step 2: A one-way flyover construction is started.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
AGILE APPROACH
Step 3: The one-way flyover construction is completed
and opens for two-way traffic. The overall traffic is still
slow, but much better than without any flyovers. Here
the end customer (commuter) is using what we call a
product of incremental delivery.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
AGILE APPROACH
Step 4: The same temporary road is used along with
the original road.
Step 5: The second-direction flyover construction
starts.
Engr. Faiza Ayub Syed
EXAMPLE- CONSTRUCTION OF FLYOVER
AGILE APPROACH
Step 6: The second-direction flyover construction
finishes.
Engr. Faiza Ayub Syed
RESULTS
This incremental delivery helped customers use the project (the flyover) in nine months instead of waiting twice that long (plus some inevitable delays).
Benefits:
The completion of the one-way flyover was much faster (completed in approximately nine months).
With a divider on the flyover, the same flyover was marked for two-way traffic, which managed to reduce the load on this crossroad.
The traffic situation improved at the junction, though it's still slow at peak hours.
With two-way traffic on the flyover, there was no need to construct another temporary road.
The second-way flyover was constructed without any extreme pressure, as one flyover was already operational, which reduced the pressure.
The end user got to use the flyover in half the time (9 months instead of 18)
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
Google is working on project to come up with a
competing product for MS Word, that provides all the
features provided by MS Word and any other features
requested by the marketing team. The final product
needs to be ready in 10 months of time.
Let us see how this project is executed in traditional
and Agile methodologies.
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
In traditional Waterfall model:
At a high level, the project teams would spend 15% of their time on gatheringrequirements and analysis (1.5 months)
20% of their time on design (2 months)
40% on coding (4 months) and unit testing
20% on System and Integration testing (2 months)
At the end of this cycle, the project may also have 2 weeks of User Acceptancetesting by marketing teams.
In this approach, the customer does not get to see the end product until theend of the project, when it becomes too late to make significant changes.
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
The image below shows how these activities align with the project
schedule in traditional software development.
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
In the Agile methodology, each project is broken up into several „Iterations‟.
All Iterations should be of the same time duration (between 2 to 8 weeks).
At the end of each iteration, a working product should be delivered.
In simple terms, in the Agile approach the project will be broken up into 10 releases(assuming each iteration is set to last 4 weeks).
Rather than spending 1.5 months on requirements gathering, in Agile software development,the team will decide the basic core features that are required in the product and decide whichof these features can be developed in the first iteration.
Any remaining features that cannot be delivered in the first iteration will be taken up in thenext iteration or subsequent iterations, based on priority.
At the end of the first iterations, the team will deliver a working software with the featuresthat were finalized for that iteration.
There will be 10 iterations and at the end of each iteration the customer is delivered a workingsoftware that is incrementally enhanced and updated with the features that were shortlistedfor that iteration.
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
The image below shows how these activities align with the project schedule in Agile
software development.
Engr. Faiza Ayub Syed
EXAMPLE 2
SOFTWARE APPLICATION
Engr. Faiza Ayub Syed
AGILE METHODOLOGY
Engr. Faiza Ayub Syed
PHASES OF AGILE METHODOLOGY
1. Requirements
The first step in the Agile Software Development Process is to
identify some high-level requirements as well as the scope of the
release.
This 30,000 foot view allows developers to quickly begin coding
While the requirements developed within a Waterfall Software
Development Process are considered „law‟, requirements within
an agile process are more or less ‟suggestions‟, and are open to
more conversation by the team during other phases.
Because requirements are not set in stone, the agile method is
more adaptable to changes in requirements as the project grows.
Engr. Faiza Ayub Syed
PHASES OF AGILE METHODOLOGY
2. Architecture and Design
The goal of the architecture and design phase is to try to
identify an architecture that can work good
The architecture is often defined using free-form
diagrams which often explore the entities and their
relationships.
The design is derived in a modeling session, in which
issues are explored, until the team is satisfied that they
understand what needs to be delivered.
Engr. Faiza Ayub Syed
PHASES OF AGILE METHODOLOGY
3. Development
The development phase uses an evolutionary method
that is an iterative and incremental approach to
software development.
The system is delivered incrementally over time, in
small modules that have immediate business value,
rather than building and then delivering a system in
a single “big bang” release.
Engr. Faiza Ayub Syed
PHASES OF AGILE METHODOLOGY
4. Test & Feedback
One of the key principles of the Agile Methodology is
to conduct the testing of the software as it is being
developed.
The software development is test driven.
The unit testing is achieved from the developer‟s
perspective and the acceptance testing is conducted
from the customer‟s perspective
Engr. Faiza Ayub Syed
TOP 10 AGILE PRACTICES
DAILY STAND UP MEETINGS
A stand-up meeting (or simply "stand-up") is a dailyteam meeting held to provide a project status updateto the team members.
This allows participants to know about potentialchallenges as well as to resolve difficult and/or time-consuming issues.
It has particular value in Agile software developmentprocesses, such as Scrum, but can be utilized in anydevelopment methodology.
The meetings are usually time boxed to 5–15 minutesand are held standing up to remind people to keep themeeting short and to the point.
Engr. Faiza Ayub Syed
CONTINUOUS INTEGRATION
Continuous Integration (CI) involves producing a cleanbuild of the system several times per day.
The team designs, builds, and tests what they know aboutthe desired functionality.
This creates a working product based on a subset of thecomplete product's requirements.
Then the team moves on to the next-highest priority set ofrequirements and repeats the process.
Of course, this is a very simplified view, and there aremany variants of this process, but that's the core: Buildyour product incrementally, and try to improvethings as you go.
Engr. Faiza Ayub Syed
RETROSPECTIVES
Retrospective (from Latin retrospectare, "look back")generally means to take a look back at events that alreadyhave taken place.
This is a resource for sharing retrospective plans, tips &tricks, tools and ideas to help us get the most out of ourretrospectives.
Retrospectives play a crucial role in software teams. Theyare put aside to reflect on how the team is performing andwhat can be done to improve.
"a meeting held by a project team at the end of a project(often after a certain number of iterations) to discuss whatwas successful about the project, what could be improved,and how to incorporate the successes and improvements infuture iterations or projects."
Engr. Faiza Ayub Syed
ITERATION PLANNING
The Iteration planning is a meeting for team members to plan
and agree on the items they are confident they can complete
during the iteration and identify the detailed tasks and tests for
delivery and acceptance.
Iteration lengths typically range between 1 and 6 weeks.
Iteration planning meetings generally last from 2-4 hours
Engr. Faiza Ayub Syed
ITERATION DEMO
At the end of an iteration, the entire team comes together toreflect on the iteration. Attendees include:
the Scrum Master, who facilitates the meeting,
the Product Owner,
the developers,
the testers,
any other contributors, and
any interested stakeholders.
The goal of the meeting is to create visibility around whatoccurred in the course of the iteration
What could be planned for the next iteration.
Presents the done items by demo'ing them.
Done items are all items that have been accepted by theProduct Owner.
Engr. Faiza Ayub Syed
ITERATION DEMO
The attendees evaluate:
how many items were not completed
what risks arose
what items were more complex than originally planned
what tests were run, passed, or failed
how many defects were logged
Engr. Faiza Ayub Syed
AGILE PRACTICES
Remaining practices next lecture