36
SOFTWARE ENGINEERING COURSE CODE:CS-326 LECTURE # 6 Engr. Faiza Ayub Syed

SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

SOFTWARE ENGINEERINGCOURSE CODE:CS-326

LECTURE # 6

Engr. Faiza Ayub Syed

Page 2: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 3: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 4: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

AGILE SOFTWARE DEVELOPMENT

Engr. Faiza Ayub Syed

Page 5: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE 1

FLYOVER CONSTRUCTION

Engr. Faiza Ayub Syed

Page 6: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE- CONSTRUCTION OF FLYOVER

TRADITIONAL APPROACH

Step 1: A temporary road is constructed next to the

main crossroad.

Engr. Faiza Ayub Syed

Page 7: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE- CONSTRUCTION OF FLYOVER

TRADITIONAL APPROACH

Step 2: Flyover construction work is started from both

directions.

Engr. Faiza Ayub Syed

Page 8: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 9: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE- CONSTRUCTION OF FLYOVER

AGILE APPROACH

Step 1: A one-way temporary road is constructed

Engr. Faiza Ayub Syed

Page 10: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE- CONSTRUCTION OF FLYOVER

AGILE APPROACH

Step 2: A one-way flyover construction is started.

Engr. Faiza Ayub Syed

Page 11: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 12: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 13: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE- CONSTRUCTION OF FLYOVER

AGILE APPROACH

Step 6: The second-direction flyover construction

finishes.

Engr. Faiza Ayub Syed

Page 14: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 15: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE 2

SOFTWARE APPLICATION

Engr. Faiza Ayub Syed

Page 16: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 17: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 18: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE 2

SOFTWARE APPLICATION

The image below shows how these activities align with the project

schedule in traditional software development.

Engr. Faiza Ayub Syed

Page 19: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 20: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE 2

SOFTWARE APPLICATION

The image below shows how these activities align with the project schedule in Agile

software development.

Engr. Faiza Ayub Syed

Page 21: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

EXAMPLE 2

SOFTWARE APPLICATION

Engr. Faiza Ayub Syed

Page 22: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

AGILE METHODOLOGY

Engr. Faiza Ayub Syed

Page 23: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 24: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 25: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 26: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 27: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

TOP 10 AGILE PRACTICES

Page 28: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 29: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a
Page 30: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 31: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 32: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 33: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 34: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

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

Page 35: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a
Page 36: SOFTWARE ENGINEERING · 2017-05-12 · Retrospective (from Latin retrospectare, "look back") generally means to take a look back at events that already have taken place. This is a

AGILE PRACTICES

Remaining practices next lecture