riding the agile wave

35
© 2014 National University of Singapore. All Rights Reserved. SWARNALATHA ASHOK ([email protected]) Chief (Advanced Software Design and Development Practice) Institute of Systems Science National University of Singapore 10 January 2014 1 RIDING THE AGILE WAVE

Category:

Technology


1 download

DESCRIPTION

Presented by Ms Swarnalatha Ashok at SCS TRENDS Seminar: Demystifying Myths of Agile Development on 10 Jan 2014

TRANSCRIPT

Page 1: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

SWARNALATHA ASHOK([email protected])

Chief (Advanced Software Design and Development Practice)

Institute of Systems Science

National University of Singapore

10 January 2014

1

RIDING THE AGILE WAVE

Page 2: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

OBJECTIVES

The Agile Philosophy

The Agile Manifesto

Agile Methods

Ensuring quality

Software Engineering practices

2

Highlight the philosophy of Agile Software Development

Importance of Agile Software Engineering practices

TOPICS

Page 3: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

WHAT IS AGILITY?

3

Page 4: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

THE AGILE PHILOSOPHY

Response to unclear and changing requirements

Frequent customer interaction and collaboration

Frequent delivery of quality products

Iterative application of supporting processes

Customer Satisfaction is the focus!

4

Page 5: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

THE AGILE MANIFESTO

Process and toolsIndividuals and

interactionsover

Following a planResponding to

changeover

Source: www.agilemanifesto.org

Comprehensive

documentationWorking software over

Contract negotiationCustomer

collaborationover

5

Page 6: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved. 6

Happy Customer

Quality software

Agil

e M

ind

set

Page 7: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

TRADITIONAL VS AGILE - PEOPLE

Directed

Progress report

Autonomous

Event-based intimation vs

Managers

Workers

Cubicles/rooms

Facilitators

Collaborators

Collocated Work roomsvs

Appraisal

Seniority

Training

Reflection

Competence

Mentoring

vs

Trust is the central theme!

7

Page 8: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

TRADITIONAL VS AGILE - PROCESSES

Linear process

Change management – a

separate process

Iterative process

Process designed for

Change Management

vs

Rule-based

Rigid Plans

Scheduled

Goal-based

Iteration guide

Time Boxed

vs

Quality Assurance

Linear testing

Peer Reviews

Test-driven Development

vs

Quality is the central theme!

8

Page 9: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

TRADITIONAL VS AGILE – ARTIFACTS

Baseline Design

Critical Path

Evolving Design

Prioritized listvs

Customer requirements

Deliverables

Customer Needs

Business Valuevs

Value to the Customer is the

central theme!

9

Page 10: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE MISCONCEPTIONS

No planning

Planning is done for iterations and are flexible with the

Goal in mind

No tracking progress

Event based reporting and frequent reviews

No documentation

Document only that has value

10

Page 11: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE MISCONCEPTIONS

No business analyst

Business Analyst is the voice of the customer

Involved throughout the project

Easier for the customer

Customer involvement is more frequent

Customer collaboration is vital to the success

11

Page 12: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE MISCONCEPTIONS

No testers

Developers and testers work together

Test driven development

Requirements are never baselined

True!

Process embraces change

12

Page 13: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved. 13

Happy Customer

Quality software

Agil

e M

ind

set

Page 14: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE SOFTWARE DEVELOPMENT FRAMEWORKS

Scrum

Feature Driven Development (FDD)

Dynamic Systems Development Methodology (DSDM)

Others

14

Page 15: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

SCRUM – MANAGEMENT DRIVEN

15

Source: Scrum Primer

Requirements Management

Release Management

Monitoring

Page 16: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

FEATURE DRIVEN DEVELOPMENT – DERIVED FROM

TRADITIONAL METHODS

16

Source: http://www.skillresource.com

Management and Development focused

Object oriented, unit testing, design sessions, code reviews

Design first, upfront plan

Page 17: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

DYNAMIC SYSTEM DEVELOPMENT METHOD –

PROJECT MANAGEMENT AND DELIVERY

17

Source: http://www.dsdm.org

Management and Delivery

Functional Model Iteration

Design and Build iteration

Page 18: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE SOFTWARE DEVELOPMENT FRAMEWORKSCOMMON CHARACTERISTICS

18

Working software

Quality driven

Needed DocumentationTimeboxing

Team activity

Short iterations

Regular feedback loops

People centric

Customer focus

Embrace Change

Does this mean quality is designed in?

Page 19: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved. 19

Happy Customer

Quality software

Agil

e M

ind

set

Page 20: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

ESSENTIAL AGILE ENGINEERING PRACTICES

Essential Agile Software Engineering (SE) practices

Agile Architecture & Use of Design patterns

Refactoring techniques

Test Driven Development

Continuous Integration and Delivery

Pair Programming

20

Organisation culture

with quality sense

Stakeholders‟

supportWell disciplined team

agile SE knowledge

Page 21: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE ARCHITECTURE & DESIGN PATTERNS

An Architecture that supports change, end-user

interaction, discovery, and ease of comprehension (of

functionality)

- Jeff Sutherland

21

Leverage on

Architectural and design patterns

Complete reference models and frameworks

Iterations dedicated to architecture is useful

Document only that is needed (use diagrams, metaphors etc.)

Page 22: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

AGILE ARCHITECTURE & DESIGN PATTERNS

22

Develop Initial

Software

Architecture

Communicate

with

Stake Holders

Work

with

Developers

Refine the

Architecture

Incremental Evolution of Software Architecture

Keep it

Simple

Models

Feedback

Loop

Source: Scott W Amber

If required, dedicate a

short iteration to

prototype the

architecture

Page 23: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

REFACTORING TECHNIQUES

"Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure."

- Martin Fowler

23

Improve the design and code

Clean up the mess in the code

Find bugs and Reduce debugging time

Prevent “design decay”

Page 24: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

REFACTORING TECHNIQUES

Should be done in conjunction with:

Test Driven Development

Continuous Integration

Pair-Programming

Dedicate a small duration every day/beginning of an iteration

24

Ensure all

tests pass

Find code

that smells

Determine

refactoring

Refactor the code

and/or design

Ensure all

tests still pass

Tes

t D

riven

Dev

elop

men

t (T

DD

)

Page 25: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

TEST DRIVEN DEVELOPMENT

Goal of Test Driven Development (TDD) is to produce

„clean code that works‟

TDD = Refactoring + Test First Development (TFD)

i.e write the tests first before developing

Can be done at Unit Test level and also Acceptance

Test level

25

Page 26: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

TEST DRIVEN DEVELOPMENT

26

In conjunction with

•Continuous Integration

•Pair Programming

Tools and Unit testing frameworks

Test cases are written first and

according to what is actually expected

Estimation should includes efforts for

TDD

Page 27: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

PAIR PROGRAMMING

The goals of pair programming

Ensures higher quality of code

To facilitate knowledge transfer

Eliminate the „truck factor‟

Higher discipline in software engineering practices

27

Page 28: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

PAIR PROGRAMMING

Mistakes get caught upfront

shorter time-to-repair

End defect content is statistically lower

(~15-50% gains)

Work in pairs for critical modules

Challenges:

Personalities of the developers

Off-the track discussions

Support from stakeholders

28

Page 29: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

CONTINUOUS INTEGRATION

Goal of Continuous Integration and Delivery is to

produce working software

Integration proves it works, why not do it every time

some change is made?

29

Your software is broken until someone proves it

works, usually at the integration state.

IntegrateIntegrate IntegrateIntegrate Integrate Integrate Integrate Integrate

Page 30: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

CONTINUOUS INTEGRATION

30

Version Control

Automated Build

Team Agreement & Commitment

Frequent check-ins to Version Control system

Including source code, test scripts etc.

Automate TDD

Automate Build

Page 31: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

CONCLUSION

31

Agile MethodsIndividuals and

interactions

Agile SE practices Responding to

change

Agile SE practices Working software

Agile MethodsCustomer

collaboration

Agile Mindset

Page 32: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

CONCLUSION

32

Happy Customer

Quality software

Agil

e M

ind

set

Page 33: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.33

OUR MISSION

OUR VISION

Providing Thought-Leadership in Innovation.

Developing Infocomm Leaders, driving Innovation.

We Inspire and prepare infocomm leaders to innovate over the

course of their professional careers.

The Institute of Systems Science (ISS) of the National University of Singapore

(NUS) provides IT graduate education and professional development courses to develop

infocomm leaders and drive business and organisation innovation. The institute is

endorsed by leading international and local accreditation and certification bodies to

deliver programmes that lead to recognised certifications and qualifications.

Page 34: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

NICF Agile Courses

(http://www.iss.nus.edu.sg/ProfessionalCourses/Agile.aspx34

Page 35: Riding the Agile Wave

© 2014 National University of Singapore. All Rights Reserved.

► Management & Professional Programmes

Advanced Software Design & Development

Business Analysis

Intelligent Systems

IT Project Management

IT Risk Management

► Senior Executive Programmes

e-Government Leadership Programme (eGL)

► Graduate Programmes

Graduate Diploma in Systems Analysis

Masters of Technology

(Software Engineering or Knowledge Engineering or Enterprise Business Analytics)

► Research Services

► Consulting Services

IT Service Management

New Media

Process & Quality Management

Service Innovation

Strategic IT Management

Our Programmes and Services

35