Riding the Agile Wave
-
Upload
institute-of-systems-science-national-university-of-singapore -
Category
Technology
-
view
428 -
download
1
description
Transcript of 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
© 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
© 2014 National University of Singapore. All Rights Reserved.
WHAT IS AGILITY?
3
© 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
© 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
© 2014 National University of Singapore. All Rights Reserved. 6
Happy Customer
Quality software
Agil
e M
ind
set
© 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
© 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
© 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
© 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
© 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
© 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
© 2014 National University of Singapore. All Rights Reserved. 13
Happy Customer
Quality software
Agil
e M
ind
set
© 2014 National University of Singapore. All Rights Reserved.
AGILE SOFTWARE DEVELOPMENT FRAMEWORKS
Scrum
Feature Driven Development (FDD)
Dynamic Systems Development Methodology (DSDM)
Others
14
© 2014 National University of Singapore. All Rights Reserved.
SCRUM – MANAGEMENT DRIVEN
15
Source: Scrum Primer
Requirements Management
Release Management
Monitoring
© 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
© 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
© 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?
© 2014 National University of Singapore. All Rights Reserved. 19
Happy Customer
Quality software
Agil
e M
ind
set
© 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
© 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.)
© 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
© 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”
© 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
)
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 2014 National University of Singapore. All Rights Reserved.
CONCLUSION
32
Happy Customer
Quality software
Agil
e M
ind
set
© 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.
© 2014 National University of Singapore. All Rights Reserved.
NICF Agile Courses
(http://www.iss.nus.edu.sg/ProfessionalCourses/Agile.aspx34
© 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