Software Craftmanship - The Agile Way
-
Upload
institute-of-systems-science-national-university-of-singapore -
Category
Business
-
view
375 -
download
3
description
Transcript of 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.
© 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
© 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
© 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?
© 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
© 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.
© 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
© 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.)
© 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.
© 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.
© 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.
© 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’
© 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
© 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
© 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
© 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.
© 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
© 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
© 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
© 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)
© 2014 National University of Singapore. All Rights Reserved.ATA/TUS-Agile/Agile Engineering Practices V1.0
THANK YOU
21