Software Craftmanship - The Agile Way

21
© 2014 National University of Singapore. All Rights Reserved. ATA/TUS-Agile/Agile Engineering Practices V1.0 SWARNALATHA ASHOK ([email protected]) Institute of Systems Science National University of Singapore 1 SOFTWARE CRAFTMANSHIP – THE AGILE WAY Total number of slides = 21 © 2014 NUS. The contents of this document may not be reproduced in any form or by any means, without the written permission of ISS, other than for the purpose for which it has been supplied.

description

Presented by Ms Swarnalatha Ashok, Chief, Advanced Software Design & Development of NUS-ISS at ISS Seminar - Agile Software Development: Swift and the Shift on 18 July 2014.

Transcript of Software Craftmanship - The Agile Way

Page 1: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

SWARNALATHA ASHOK([email protected]) Institute of Systems ScienceNational University of Singapore

1

SOFTWARE CRAFTMANSHIP –THE AGILE WAY

Total number of slides = 21

© 2014 NUS. The contents of this document may not be reproduced in any form or by any means, without the written permission of ISS, other than for the purpose for which it has been supplied.

Page 2: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

Agile Software Engineering practices Agile Software Architecture & Design Patterns Pair Programming Test Driven Development & Refactoring Techniques Continuous Integration & Delivery

2

TOPICS

Page 3: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

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!

3

Page 4: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

AGILE MIND SET VS SCHNEIDER’S CULTURE MODEL

4

Collaboration Control

Cultivation Competence

Personal                                                                          Impersonal 

Reality

Possibility

Are we neglecting

this?

Page 5: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

MANIFESTO FOR SOFTWARE CRAFTSMANSHIP

Raising the bar

As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft.

5

Page 6: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

MANIFESTO FOR SOFTWARE CRAFTSMANSHIPRAISING THE BAR

Sour

ce:h

ttp:

//man

ifest

o.so

ftw

arec

raft

sman

ship

.org

6

well-crafted software

well-crafted software

working softwareworking software but alsoNot only

steadily adding value

steadily adding value

responding to change

responding to change but alsoNot only

a community of

professionals

a community of

professionals

individuals and

interactions

individuals and

interactionsbut alsoNot only

productive partnershipsproductive

partnershipscustomer

collaborationcustomer

collaboration but alsoNot only

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.

Page 7: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

ESSENTIAL AGILE ENGINEERING PRACTICES

Essential Agile Software Engineering (SE) practices Agile Software Architecture & Design Patterns Pair Programming Test Driven Development & Refactoring

Techniques Continuous Integration & Delivery

7

Organisation culture with quality sense

Stakeholders’ support

Well disciplined team with sound Agile SE knowledge

Page 8: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

AGILE SOFTWARE ARCHITECTURE

An Architecture that supports change, end-user interaction, discovery, and ease of comprehension (of functionality)

- Jeff Sutherland

8

Leverage on Architectural and design patternsComplete reference models and frameworks Iterations dedicated to architecture are usefulDocument only what is needed

(diagrams, metaphors etc.)

Page 9: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

AGILE ARCHITECTURE

9

Develop InitialSoftware

Architecture

Communicate with

Stake Holders

Work with

Developers

Refine theArchitecture

Incremental Evolution of Software Architecture

Keep it Simple

ModelsFeedback

Loop

Source: Scott W Amber

If required, dedicate ashort iteration to prototype the architecture

Principle: Welcome changing requirements, even late indevelopment. Agile processes harness change for

the customer's competitive advantage.

Page 10: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

REFACTORING TECHNIQUES

10

Improve the design and code

Clean up the mess in the code

Find defects and reduce debugging time

Prevent “design decay” caused by extension and maintenance

Dedicate a small duration every day/beginning of an iteration

Principle: Continuous attention to technical excellenceand good design enhances agility.

Page 11: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

TEST DRIVEN DEVELOPMENT

11

Principle: Continuous attention to technical excellenceand good design enhances agility.

Page 12: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

PAIR PROGRAMMING

12

Ensures higher quality of codeFacilitates knowledge transferEliminate the ‘truck factor’

Page 13: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

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-track discussions Support from managers

13

Page 14: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONTINUOUS INTEGRATION

Integration proves it works, why not do it every time some change is made?

14

Your software is broken until someone proves it works, usually at the integration stage.

IntegrateIntegrate IntegrateIntegrate Integrate Integrate Integrate Integrate

Goal: To produce working software

Page 15: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONTINUOUS INTEGRATION

15

Version Control

Automated Build

Team Agreement & Commitment

Frequent check-ins to Version Control systemIncluding source code, test scripts etc.Automate TDD (include regression test cases)Automate Build

Page 16: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONTINUOUS DELIVERY

Plan DeployReleaseTestDevelop Build

Auto Build and Version Control

Continuous Integration

Continuous Delivery

Principle: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Page 17: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONTINUOUS DELIVERY

Software is always production-readyReleases tied to business needs, not operational constraintsUncovers deployment issues early Improved software qualityRequires automated tools

Page 18: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONCLUSION

18

Agile MethodsAgile MethodsIndividuals and interactions

Individuals and interactions

Agile SE practices Agile SE practices Responding to change

Responding to change

Agile SE practices Agile SE practices Working softwareWorking software

Agile MethodsAgile MethodsCustomer collaboration

Customer collaboration

Agile Mindset

Page 19: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

CONCLUSION

19

Agile Mindset

Agile Methods

Agile SEPractices

Happy Customer Quality software

Page 20: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

20

NUS-ISS AGILE TRAININGROADMAP

Project Management

Software Engineering

Foundation Intermediate Advanced

PMI Agile Certified Practitioner (PMI-ACP)® Preparatory Course (3 days)

NICF – Essential Practices for Agile Teams(Certified Scrum Developer)(3 days)

NICF – Business Analysis for Agile Practitioners(2 days)

NICF – Object Oriented Design Patterns (4 days)

NICF – Agile Continuous Delivery (3 days)

NICF – Certified ScrumMaster (3 days)

NICF – Architecting Software Solutions (5 days)

NICF – Software Testing (3 days)

NICF – Object Oriented Analysis & Design (5 days)

Page 21: Software Craftmanship - The Agile Way

© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0

THANK YOU

21