Mais conteúdo relacionado
Semelhante a Riding the Agile Wave (20)
Riding the Agile Wave
- 1. RIDING THE AGILE WAVE
SWARNALATHA ASHOK
(swarna@nus.edu.sg)
Chief (Advanced Software Design and Development Practice)
Institute of Systems Science
National University of Singapore
10 January 2014
1
© 2014 National University of Singapore. All Rights Reserved.
- 2. OBJECTIVES
Highlight the philosophy of Agile Software
Development
Importance of Agile Software Engineering
practices
TOPICS
The Agile Philosophy
The Agile Manifesto
Agile Methods
Ensuring quality
Software Engineering practices
© 2014 National University of Singapore. All Rights Reserved.
2
- 4. 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!
© 2014 National University of Singapore. All Rights Reserved.
4
- 5. THE AGILE MANIFESTO
Individuals and
interactions
over
Process and tools
Working software
over
Comprehensive
documentation
Customer
collaboration
over
Contract negotiation
Responding to
change
over
Following a plan
Source: www.agilemanifesto.org
© 2014 National University of Singapore. All Rights Reserved.
5
- 7. TRADITIONAL VS AGILE - PEOPLE
Managers
Workers
Cubicles/rooms
vs
Facilitators
Collaborators
Collocated Work rooms
Directed
Progress report
vs
Autonomous
Event-based intimation
Appraisal
Seniority
Training
vs
Reflection
Competence
Mentoring
Trust is the central theme!
© 2014 National University of Singapore. All Rights Reserved.
7
- 8. TRADITIONAL VS AGILE - PROCESSES
Rule-based
Rigid Plans
Scheduled
vs
Linear process
Change management – a
separate process
Quality Assurance
Linear testing
Goal-based
Iteration guide
Time Boxed
vs
Iterative process
Process designed for
Change Management
vs
Peer Reviews
Test-driven Development
Quality is the central theme!
© 2014 National University of Singapore. All Rights Reserved.
8
- 9. TRADITIONAL VS AGILE – ARTIFACTS
Customer requirements
Deliverables
vs
Customer Needs
Business Value
Baseline Design
Critical Path
vs
Evolving Design
Prioritized list
Value to the Customer is the
central theme!
© 2014 National University of Singapore. All Rights Reserved.
9
- 10. AGILE MISCONCEPTIONS
No planning
No tracking progress
Planning is done for iterations and are flexible with the
Goal in mind
Event based reporting and frequent reviews
No documentation
Document only that has value
© 2014 National University of Singapore. All Rights Reserved.
10
- 11. 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
© 2014 National University of Singapore. All Rights Reserved.
11
- 12. AGILE MISCONCEPTIONS
No testers
Developers and testers work together
Test driven development
Requirements are never baselined
True!
Process embraces change
© 2014 National University of Singapore. All Rights Reserved.
12
- 14. AGILE SOFTWARE DEVELOPMENT FRAMEWORKS
Scrum
Feature Driven Development (FDD)
Dynamic Systems Development Methodology (DSDM)
Others
© 2014 National University of Singapore. All Rights Reserved.
14
- 15. SCRUM – MANAGEMENT DRIVEN
Requirements Management
Release Management
Monitoring
© 2014 National University of Singapore. All Rights Reserved.
Source: Scrum Primer
15
- 16. FEATURE DRIVEN DEVELOPMENT – DERIVED FROM
TRADITIONAL METHODS
Management and Development focused
Object oriented, unit testing, design sessions, code reviews
Design first, upfront plan
Source: http://www.skillresource.com
© 2014 National University of Singapore. All Rights Reserved.
16
- 17. DYNAMIC SYSTEM DEVELOPMENT METHOD –
PROJECT MANAGEMENT AND DELIVERY
Management and Delivery
Functional Model Iteration
Design and Build iteration
Source: http://www.dsdm.org
© 2014 National University of Singapore. All Rights Reserved.
17
- 18. AGILE SOFTWARE DEVELOPMENT FRAMEWORKS
COMMON CHARACTERISTICS
Working software
Quality driven
Short iterations
Regular feedback loops
People centric
Customer focus
Embrace Change
Timeboxing
Team activity
Needed Documentation
Does this mean quality is designed in?
© 2014 National University of Singapore. All Rights Reserved.
18
- 20. 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
Stakeholders‟
support
Well disciplined team
agile SE knowledge
Organisation culture
with quality sense
© 2014 National University of Singapore. All Rights Reserved.
20
- 21. AGILE ARCHITECTURE & DESIGN PATTERNS
An Architecture that supports change, end-user
interaction, discovery, and ease of comprehension (of
functionality)
- Jeff Sutherland
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.
21
- 22. AGILE ARCHITECTURE & DESIGN PATTERNS
Develop Initial
Software
Architecture
Communicate
with
Stake Holders
If required, dedicate a
short iteration to
prototype the
architecture
Models
Keep it
Simple
Work
with
Developers
Feedback
Loop
Refine the
Architecture
Incremental Evolution of Software Architecture
Source: Scott W Amber
© 2014 National University of Singapore. All Rights Reserved.
22
- 23. 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
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.
23
- 24. Ensure all
tests pass
Find code
that smells
Determine
refactoring
Ensure all
tests still pass
Refactor the code
and/or design
Test Driven Development (TDD)
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
© 2014 National University of Singapore. All Rights Reserved.
24
- 25. 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
© 2014 National University of Singapore. All Rights Reserved.
25
- 26. TEST DRIVEN DEVELOPMENT
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.
26
- 27. 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
© 2014 National University of Singapore. All Rights Reserved.
27
- 28. 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
© 2014 National University of Singapore. All Rights Reserved.
28
- 29. CONTINUOUS INTEGRATION
Goal of Continuous Integration and Delivery is to
produce working software
Your software is broken until someone proves it
works, usually at the integration state.
Integrate
Integrate
Integrate
Integrate
Integrate
Integrate
Integrate
Integrate
Integration proves it works, why not do it every time
some change is made?
© 2014 National University of Singapore. All Rights Reserved.
29
- 33. 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.
OUR MISSION
Developing Infocomm Leaders, driving Innovation.
We Inspire and prepare infocomm leaders to innovate over the
course of their professional careers.
OUR VISION
Providing Thought-Leadership in Innovation.
33
© 2014 National University of Singapore. All Rights Reserved.
- 35. Our Programmes and Services
►
Management & Professional Programmes
IT Service Management
Business Analysis
New Media
Intelligent Systems
Process & Quality Management
IT Project Management
Service Innovation
►
Advanced Software Design & Development
IT Risk Management
Strategic IT 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
35
© 2014 National University of Singapore. All Rights Reserved.