Development of Complex Software
with Agile Method
Alan Braz, Cec´ılia M. F. Rubira, Marco Vieira
<alanbraz@br.ibm.com>,
<cmrubira@ic.unicamp.br>, <mvieira@dei.uc.pt>
Agile 2015 - Short Research paper
@alanbraz Agile2015
August 5, 2015
Development of Complex Software with Agile Method
Agenda
1 Introduction and Motivation
2 Proposed solution
3 Controlled Experiment
4 Conclusion
2 / 23
Development of Complex Software with Agile Method
Introduction and Motivation
Agenda
1 Introduction and Motivation
2 Proposed solution
3 Controlled Experiment
4 Conclusion
3 / 23
Development of Complex Software with Agile Method
Introduction and Motivation
Introduction
Dependability is no longer a mere nonfunctional
requirement just inherent to critical systems
Known applied solutions:
Component-Based Development (CBD) [1]
Architecture-Centric Development [2]
4 / 23
Development of Complex Software with Agile Method
Introduction and Motivation
Related work
Related work
2001 - Gisele R M Ferreira [3]
Created the Methodology for the Definition of
Exceptional Behavior (MDCE)
Methodology to build fault-tolerant systems using
techniques of exception handling
Extends the UML with new stereotypes
Case study appling it to Catalysis development process
2005 - Patrick Henrique da Silva Brito [4]
Extended MDCE defining MDCE+ by systematizing the
modeling and implementation of exceptional behavior
Focus on antecipate exceptional behavior at the
Architecture level
Adapted the UML Components process
5 / 23
Development of Complex Software with Agile Method
Proposed solution
Agenda
1 Introduction and Motivation
2 Proposed solution
3 Controlled Experiment
4 Conclusion
6 / 23
Development of Complex Software with Agile Method
Proposed solution
Proposed solution
Adapted agile development process based
on Scrum [5] process that adds some
MDCE+ practices and techniques to
increase the robustness
Scrum+CE
(CE comes from Exceptional Behavior in Portuguese)
Validation hypotheses: (i) less Story Points, and
(ii) better quality of the final software in terms of less defects.
7 / 23
Development of Complex Software with Agile Method
Proposed solution
Scrum+CE
Scrum+CE phases
Exception identification and definition
of the exceptional behavior in the form
of exceptional stories
Components implementation and wrap
creation for the reused components
Separation of concerns
between normal and
exceptional components Analysis of the exceptional
flow and catchers refinement
Connectors implementation
Pregame
- Planning
- System architecture/
high level design
Postgame
- Integration tests
- Final wrap
- Closure
Game
Sprints
D
evelop*
W
rap
Review
A
djust
* includes analysis,
design and coding
Description of
exceptional assertive
MDCE+ practices affecting Scrum phases.
Extended from Schwaber:95 [5] 8 / 23
Development of Complex Software with Agile Method
Proposed solution
Scrum+CE
Relation between phases
Table : Relation between MDCE+ and Scrum phases.
Scrum Phases Scrum Events MDCE+ Phases
Pregame
Planning
1. Requirements specification and analysis
2. Management aspects definition
System architecture /
high level design
3. Architecture design
Game
Sprint Planning
1. Requirements specification and analysis
3. Architecture design
4. System analysis
5. System design
Sprint
6. Components implementation
7. Components integration
Sprint Review
1. Requirements specification and analysis
8. User-acceptance release
Postgame
Integration tests 7. Components integration
Wrapping
8. Production Release deploy
Closure
9 / 23
Development of Complex Software with Agile Method
Proposed solution
Phases affected
Pregame
Planning
Identify the exceptions and define the exceptional
behavior in the form of Exceptional Stories
Describe the exceptional assertive in the form of
Acceptance Tests either at the normal behavior User
Stories [6] or at the introduced Exceptional Stories
Definition of “Done”
“. . . and all exceptions were properly handled. . . ”
System architecture / high level design
New role: Architecture Owner
New mandatory artifact: High Level Architecture
document
Architecture-Centric Development to expose exceptional
components
“The best architectures, requirements, and designs
emerge from self-organizing teams” [7]
10 / 23
Development of Complex Software with Agile Method
Proposed solution
Phases affected
Game
Exceptional Stories will be prioritized and
selected from the Product Backlog just like the
User Stories
Tasks dedicated to the implementation of
exceptional behavior should be created during
the Sprint Planning meeting and added to the
Sprint Backlog
Architecture should be reviewed and updated
when new exceptions are discovered
11 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Agenda
1 Introduction and Motivation
2 Proposed solution
3 Controlled Experiment
4 Conclusion
12 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Methodology
Methodology
Designed a controlled experiment in which a
information-based software system, with
dependability requirements relating to data
consistency, were implemented
Followed a controlled method called Synthetic
Environment Experiments [8] (reduced version)
Format of “Scrum in Practice” training lasting
2 weeks, composed by 3 teams of 4 participants
each.
13 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Methodology
Architecture
DB2
OpenJPARestlet
Browser
Mobile
Entities
Exceptional
Presentation
Exceptional
Persistence
User Interface User Session /
System Services
Business Services Database
JSON
HTTP
14 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Methodology
Agenda
Table : Schedule of Sprint 1.
Day Activity Duration
1
Reception and organization 2 hours
Planning Meeting 2 hours
2
Daily Scrum 3 minutes
Implementation day 1 2 hours
Daily Scrum 3 minutes
Implementation day 2 2 hours
3
Daily Scrum 3 minutes
Implementation day 3 2 hours
Daily Scrum 3 minutes
Implementation day 4 2 hours
4
Daily Scrum 3 minutes
Implementation day 5 2 hours
Daily Scrum 3 minutes
Implementation day 6 2 hours
5
Daily Scrum 3 minutes
Implementation day 7 2 hours
Review Meeting 2 hours
Table : Schedule of Sprint 2.
Day Activity Duration
1
Planning Meeting 2 hours
Daily Scrum 3 minutes
Implementation day 1 2 hours
2
Daily Scrum 3 minutes
Implementation day 2 2 hours
Daily Scrum 3 minutes
Implementation day 3 2 hours
3
Daily Scrum 3 minutes
Implementation day 4 2 hours
Daily Scrum 3 minutes
Implementation day 5 2 hours
4
Daily Scrum 3 minutes
Implementation day 6 2 hours
Daily Scrum 3 minutes
Implementation day 7 2 hours
5
Collective Sprint Review Meeting 3 hours
Collective Sprint Retrospective 1 hour
15 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Results
Stories delivered
Product Backlog G1 G2 G3
0
10
20
30
40
50
60
70
61
49
45 47
13
9 7 8
Story
Points
User
Stories
Figure : Total of Stories and Points delivered.
Table : User Stories
delivered by group
Story Points G1 G2 G3
1 20 • • •
2 5 • • •
3 8 • • •
4 3 • • •
5 3 • • •
6 2 • •
7 1 • • •
8 3
9 5 • • •
10 2 •
11 2
12 5
13 2
Total stories 9 7 8
Total points 49 45 47
16 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Results
Stories delivered
G2 delivered 22% less stories than G1.
G3 delivered 11% less stories than G1.
User Stories Story Points
-25.0%
-20.0%
-15.0%
-10.0%
-5.0%
-22%
-8%
-11%
-4%
G1-G2
G1-G3
Figure : Comparing implemented stories between G1 and G2, and
between G1 and G3.
17 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Results
Requirements quality metrics
Table : Number of tests
executed and defects found
by group.
Metric G1 G2 G3
Tests executed 189 149 161
Failed tests 66 44 21
Fail rate 35% 30% 13% Tests executed Failed tests Fail rate
-80%
-70%
-60%
-50%
-40%
-30%
-20%
-10%
0%
-21%
-33%
-5%
-15%
-68%
-22%
G1-G2
G1-G3
Figure : Comparing defects between G1
and G2, and between G1 and G3.
G2 failed 5% less than G1.
G3 failed 22% less than G1.
18 / 23
Development of Complex Software with Agile Method
Controlled Experiment
Results
Code quality metrics
Metric G1 G2 G3
Lines of Code (LOC) 2232 1984 1950
Number of Classes 27 47 38
Number of Exceptions 1 21 2
Native catch blocks 53 18 33
Created catch blocks 9 12 6
Cyclomatic Complexity (CC) [9] 446 305 288
CC by class 15.9 4.5 7.2
CC by method 5.0 2.4 2.5
G2 and G3 produced 12% less lines of code than G1.
G2 and G3 designed a complexity 33% smaller than G1.
19 / 23
Development of Complex Software with Agile Method
Conclusion
Agenda
1 Introduction and Motivation
2 Proposed solution
3 Controlled Experiment
4 Conclusion
20 / 23
Development of Complex Software with Agile Method
Conclusion
Consolidated results
Applying Scrum+CE resulted in:
Better code quality. Validated!
13.5% less defects on average!
Complexity 33% smaller implies better code design!
Delivered less Story Points but with fewer defects.
Validated!
Only 6% less due to the size of the experiment.
Critic: The experiment does not scale!
It is possible to develop complex software if Agile!
Adding Exceptional Behavior handling does not compromise the
agility.
21 / 23
Development of Complex Software with Agile Method
Conclusion
Challenges
It is really complicated (and expensive) to make quantitative
experiments in Software Engineering.
Despite the size of the experiment, in terms of number of
participants and duration, we couldn’t apply any statistical analysis.
The same experiment could be replicated with more groups or even
bigger groups (scale).
Applied to remodel software engineering practice courses.
Research is not Agile :(
22 / 23
Development of Complex Software with Agile Method
Conclusion
References
C. Szyperski, Component Software: Beyond
Object-Oriented Programming. Boston, MA, USA:
Addison-Wesley Longman Publishing Co., Inc.
I. Sommerville, Software Engineering, 9th ed. Harlow,
England: Addison-Wesley, 2010.
G. R. M. Ferreira, “Tratamento de exce¸c˜oes no
desenvolvimento de sistemas confi´aveis baseados em
componentes,” Master’s thesis, IC, Unicamp, Dec. 2001.
P. H. S. Brito, “Um M´etodo para Modelagem de Exce¸c˜oes
em Desenvolvimento Baseado em Componentes,” Master’s
thesis, IC, Unicamp, Oct. 2005.
K. Schwaber, “SCRUM Development Process,” in
Proceedings of the 10th Annual ACM Conference on
Object Oriented Programming Systems, Languages, and
Applications (OOPSLA), pp. 117–134.
M. Cohn, User Stories Applied: For Agile Software
Development. Addison-Wesley, 2004.
K. Beck et al. (2001) Manifesto for Agile Software
Development. Accessed: 17 Apr 2015. [Online]. Available:
http://agilemanifesto.org
M. V. Zelkowitz and D. Wallace, “Experimental Validation
In Software Engineering,” Information and Software
Technology, vol. 39, pp. 735–743, 1997.
T. J. McCabe, “A Complexity Measure,” IEEE Trans.
Software Eng., vol. 2, no. 4, pp. 308–320, 1976.
23 / 23

More Related Content

PPT
Agiel sw development
PPTX
Software Project Management - NESDEV
PDF
Modeling and Performance Analysis of Scrumban with Test-Driven Development us...
PPT
Essential Elements Of Distributed Agile
PPTX
Agile Project Management with Scrum
PPTX
Agile Project Management with Scrum
PPTX
Ch3-Software Engineering 9
PDF
RQM in scrum agile testing - Raj kumar
Agiel sw development
Software Project Management - NESDEV
Modeling and Performance Analysis of Scrumban with Test-Driven Development us...
Essential Elements Of Distributed Agile
Agile Project Management with Scrum
Agile Project Management with Scrum
Ch3-Software Engineering 9
RQM in scrum agile testing - Raj kumar

What's hot (20)

PPTX
Research paper presentation on agile scrum
PDF
A NOVEL METHOD FOR REDUCING TESTING TIME IN SCRUM AGILE PROCESS
PDF
Stepwise planning
PPT
Agile testing
DOCX
CIS 554 Entire Course NEW
PPT
Software project management 3
PDF
quality-assurance_best_practice_guide_4 0
PDF
Istqb Agile-tester Extension
PDF
HKG15-904: Scrum and Kanban 101
PPT
OO Development 2 - Software Development Methodologies
PPT
Software Project management
PDF
Is software engineering research addressing software engineering problems?
PDF
Making Effective, Useful Software Development Tools
PPT
Rational Quality Manager
PDF
ATD-2018_kroth_agile_thinking
PPTX
PlacemakAR Application - Software Engineering Discussion
PPTX
Test Management in Agile - Agile testing Days 2018
PDF
Agile Maintenance
DOC
6 pma salehuddin - pqp & 3 core process procedures
PDF
Five benefits of agile practices in software intensive systems development
Research paper presentation on agile scrum
A NOVEL METHOD FOR REDUCING TESTING TIME IN SCRUM AGILE PROCESS
Stepwise planning
Agile testing
CIS 554 Entire Course NEW
Software project management 3
quality-assurance_best_practice_guide_4 0
Istqb Agile-tester Extension
HKG15-904: Scrum and Kanban 101
OO Development 2 - Software Development Methodologies
Software Project management
Is software engineering research addressing software engineering problems?
Making Effective, Useful Software Development Tools
Rational Quality Manager
ATD-2018_kroth_agile_thinking
PlacemakAR Application - Software Engineering Discussion
Test Management in Agile - Agile testing Days 2018
Agile Maintenance
6 pma salehuddin - pqp & 3 core process procedures
Five benefits of agile practices in software intensive systems development
Ad

Viewers also liked (20)

PDF
Net governance digital natives newsletter
PDF
งานนำเสนอ1
PPTX
Dom_Towarowy_Toruń_PDT
PDF
2014 Venture Investments Report
PPTX
Mirsis Mastool Yönetim Beyanı Süreç Yönetimi
PPTX
Danielle\'s Visual Resume
PDF
Guide Marketing For Facebook
PDF
Aasl learning standards
PPTX
Callstandards
PPTX
Dat testing - An introduction to Java and Android Testing
PPTX
Danielle\'s Visual Resume
PPTX
Presentatie Astorium
PPTX
The Android Gunslinger
PPTX
Diapositivas vacaciones 11 (1)
PDF
Boutique hotels in goa
PPTX
Expert Voices
PDF
Air superiority for Android Apps
PDF
Photoessay
PDF
Yourprezi
PPSX
De Mier Bis
Net governance digital natives newsletter
งานนำเสนอ1
Dom_Towarowy_Toruń_PDT
2014 Venture Investments Report
Mirsis Mastool Yönetim Beyanı Süreç Yönetimi
Danielle\'s Visual Resume
Guide Marketing For Facebook
Aasl learning standards
Callstandards
Dat testing - An introduction to Java and Android Testing
Danielle\'s Visual Resume
Presentatie Astorium
The Android Gunslinger
Diapositivas vacaciones 11 (1)
Boutique hotels in goa
Expert Voices
Air superiority for Android Apps
Photoessay
Yourprezi
De Mier Bis
Ad

Similar to Agile2015 short paper presentation: Development of Complex Software with Agile Method (20)

PPT
System Development Life Cycle Overview.ppt
PPT
Unit -1.ppt
PPT
agile.ppt
PPT
agile.ppt
PPT
agile.ppt
PPTX
Scrun Safe Ppt.pptx
PPT
PPT
agile.ppt
PPTX
Seminar COTB25.pptx
PPT
Software Process Models
PPT
agile software development Model for all
PDF
Best Practices in Object Oriented Analysis and Design
PDF
Jira for DevOps - Loves Cloud
PPTX
Continuous Delivery
PPT
Process importance with full detail about
PPTX
LESSON 4 SOFTWARE DEVELOPMENT LIFES CYCLE
PPTX
SOFTWARE DEVEOPMENT LIFES CYCLE LESSON 4
PPTX
Upstate CSCI 540 Agile Development
PPTX
software project management
PPT
Agile process
System Development Life Cycle Overview.ppt
Unit -1.ppt
agile.ppt
agile.ppt
agile.ppt
Scrun Safe Ppt.pptx
agile.ppt
Seminar COTB25.pptx
Software Process Models
agile software development Model for all
Best Practices in Object Oriented Analysis and Design
Jira for DevOps - Loves Cloud
Continuous Delivery
Process importance with full detail about
LESSON 4 SOFTWARE DEVELOPMENT LIFES CYCLE
SOFTWARE DEVEOPMENT LIFES CYCLE LESSON 4
Upstate CSCI 540 Agile Development
software project management
Agile process

More from Alan Braz (6)

PPTX
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
PDF
Você tem uma Personalidade Ágil?
PPT
Análise de sentimento durante a Copa usando Big Data
PDF
É possível medir se um gigante é ágil?
PDF
WBMA2013 - Método Ágil para desenvolvimento de software confiável
PPTX
Lean introduction
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
Você tem uma Personalidade Ágil?
Análise de sentimento durante a Copa usando Big Data
É possível medir se um gigante é ágil?
WBMA2013 - Método Ágil para desenvolvimento de software confiável
Lean introduction

Recently uploaded (20)

PPTX
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Amdahl’s law is explained in the above power point presentations
PDF
ChapteR012372321DFGDSFGDFGDFSGDFGDFGDFGSDFGDFGFD
PDF
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
PDF
737-MAX_SRG.pdf student reference guides
PPTX
introduction to high performance computing
PPTX
Software Engineering and software moduleing
PPTX
CyberSecurity Mobile and Wireless Devices
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PDF
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
Soil Improvement Techniques Note - Rabbi
PDF
Design Guidelines and solutions for Plastics parts
PPTX
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PPTX
Feature types and data preprocessing steps
PPTX
Current and future trends in Computer Vision.pptx
ASME PCC-02 TRAINING -DESKTOP-NLE5HNP.pptx
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Amdahl’s law is explained in the above power point presentations
ChapteR012372321DFGDSFGDFGDFSGDFGDFGDFGSDFGDFGFD
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
737-MAX_SRG.pdf student reference guides
introduction to high performance computing
Software Engineering and software moduleing
CyberSecurity Mobile and Wireless Devices
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
Exploratory_Data_Analysis_Fundamentals.pdf
Soil Improvement Techniques Note - Rabbi
Design Guidelines and solutions for Plastics parts
CURRICULAM DESIGN engineering FOR CSE 2025.pptx
distributed database system" (DDBS) is often used to refer to both the distri...
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
Feature types and data preprocessing steps
Current and future trends in Computer Vision.pptx

Agile2015 short paper presentation: Development of Complex Software with Agile Method

  • 1. Development of Complex Software with Agile Method Alan Braz, Cec´ılia M. F. Rubira, Marco Vieira <alanbraz@br.ibm.com>, <cmrubira@ic.unicamp.br>, <mvieira@dei.uc.pt> Agile 2015 - Short Research paper @alanbraz Agile2015 August 5, 2015
  • 2. Development of Complex Software with Agile Method Agenda 1 Introduction and Motivation 2 Proposed solution 3 Controlled Experiment 4 Conclusion 2 / 23
  • 3. Development of Complex Software with Agile Method Introduction and Motivation Agenda 1 Introduction and Motivation 2 Proposed solution 3 Controlled Experiment 4 Conclusion 3 / 23
  • 4. Development of Complex Software with Agile Method Introduction and Motivation Introduction Dependability is no longer a mere nonfunctional requirement just inherent to critical systems Known applied solutions: Component-Based Development (CBD) [1] Architecture-Centric Development [2] 4 / 23
  • 5. Development of Complex Software with Agile Method Introduction and Motivation Related work Related work 2001 - Gisele R M Ferreira [3] Created the Methodology for the Definition of Exceptional Behavior (MDCE) Methodology to build fault-tolerant systems using techniques of exception handling Extends the UML with new stereotypes Case study appling it to Catalysis development process 2005 - Patrick Henrique da Silva Brito [4] Extended MDCE defining MDCE+ by systematizing the modeling and implementation of exceptional behavior Focus on antecipate exceptional behavior at the Architecture level Adapted the UML Components process 5 / 23
  • 6. Development of Complex Software with Agile Method Proposed solution Agenda 1 Introduction and Motivation 2 Proposed solution 3 Controlled Experiment 4 Conclusion 6 / 23
  • 7. Development of Complex Software with Agile Method Proposed solution Proposed solution Adapted agile development process based on Scrum [5] process that adds some MDCE+ practices and techniques to increase the robustness Scrum+CE (CE comes from Exceptional Behavior in Portuguese) Validation hypotheses: (i) less Story Points, and (ii) better quality of the final software in terms of less defects. 7 / 23
  • 8. Development of Complex Software with Agile Method Proposed solution Scrum+CE Scrum+CE phases Exception identification and definition of the exceptional behavior in the form of exceptional stories Components implementation and wrap creation for the reused components Separation of concerns between normal and exceptional components Analysis of the exceptional flow and catchers refinement Connectors implementation Pregame - Planning - System architecture/ high level design Postgame - Integration tests - Final wrap - Closure Game Sprints D evelop* W rap Review A djust * includes analysis, design and coding Description of exceptional assertive MDCE+ practices affecting Scrum phases. Extended from Schwaber:95 [5] 8 / 23
  • 9. Development of Complex Software with Agile Method Proposed solution Scrum+CE Relation between phases Table : Relation between MDCE+ and Scrum phases. Scrum Phases Scrum Events MDCE+ Phases Pregame Planning 1. Requirements specification and analysis 2. Management aspects definition System architecture / high level design 3. Architecture design Game Sprint Planning 1. Requirements specification and analysis 3. Architecture design 4. System analysis 5. System design Sprint 6. Components implementation 7. Components integration Sprint Review 1. Requirements specification and analysis 8. User-acceptance release Postgame Integration tests 7. Components integration Wrapping 8. Production Release deploy Closure 9 / 23
  • 10. Development of Complex Software with Agile Method Proposed solution Phases affected Pregame Planning Identify the exceptions and define the exceptional behavior in the form of Exceptional Stories Describe the exceptional assertive in the form of Acceptance Tests either at the normal behavior User Stories [6] or at the introduced Exceptional Stories Definition of “Done” “. . . and all exceptions were properly handled. . . ” System architecture / high level design New role: Architecture Owner New mandatory artifact: High Level Architecture document Architecture-Centric Development to expose exceptional components “The best architectures, requirements, and designs emerge from self-organizing teams” [7] 10 / 23
  • 11. Development of Complex Software with Agile Method Proposed solution Phases affected Game Exceptional Stories will be prioritized and selected from the Product Backlog just like the User Stories Tasks dedicated to the implementation of exceptional behavior should be created during the Sprint Planning meeting and added to the Sprint Backlog Architecture should be reviewed and updated when new exceptions are discovered 11 / 23
  • 12. Development of Complex Software with Agile Method Controlled Experiment Agenda 1 Introduction and Motivation 2 Proposed solution 3 Controlled Experiment 4 Conclusion 12 / 23
  • 13. Development of Complex Software with Agile Method Controlled Experiment Methodology Methodology Designed a controlled experiment in which a information-based software system, with dependability requirements relating to data consistency, were implemented Followed a controlled method called Synthetic Environment Experiments [8] (reduced version) Format of “Scrum in Practice” training lasting 2 weeks, composed by 3 teams of 4 participants each. 13 / 23
  • 14. Development of Complex Software with Agile Method Controlled Experiment Methodology Architecture DB2 OpenJPARestlet Browser Mobile Entities Exceptional Presentation Exceptional Persistence User Interface User Session / System Services Business Services Database JSON HTTP 14 / 23
  • 15. Development of Complex Software with Agile Method Controlled Experiment Methodology Agenda Table : Schedule of Sprint 1. Day Activity Duration 1 Reception and organization 2 hours Planning Meeting 2 hours 2 Daily Scrum 3 minutes Implementation day 1 2 hours Daily Scrum 3 minutes Implementation day 2 2 hours 3 Daily Scrum 3 minutes Implementation day 3 2 hours Daily Scrum 3 minutes Implementation day 4 2 hours 4 Daily Scrum 3 minutes Implementation day 5 2 hours Daily Scrum 3 minutes Implementation day 6 2 hours 5 Daily Scrum 3 minutes Implementation day 7 2 hours Review Meeting 2 hours Table : Schedule of Sprint 2. Day Activity Duration 1 Planning Meeting 2 hours Daily Scrum 3 minutes Implementation day 1 2 hours 2 Daily Scrum 3 minutes Implementation day 2 2 hours Daily Scrum 3 minutes Implementation day 3 2 hours 3 Daily Scrum 3 minutes Implementation day 4 2 hours Daily Scrum 3 minutes Implementation day 5 2 hours 4 Daily Scrum 3 minutes Implementation day 6 2 hours Daily Scrum 3 minutes Implementation day 7 2 hours 5 Collective Sprint Review Meeting 3 hours Collective Sprint Retrospective 1 hour 15 / 23
  • 16. Development of Complex Software with Agile Method Controlled Experiment Results Stories delivered Product Backlog G1 G2 G3 0 10 20 30 40 50 60 70 61 49 45 47 13 9 7 8 Story Points User Stories Figure : Total of Stories and Points delivered. Table : User Stories delivered by group Story Points G1 G2 G3 1 20 • • • 2 5 • • • 3 8 • • • 4 3 • • • 5 3 • • • 6 2 • • 7 1 • • • 8 3 9 5 • • • 10 2 • 11 2 12 5 13 2 Total stories 9 7 8 Total points 49 45 47 16 / 23
  • 17. Development of Complex Software with Agile Method Controlled Experiment Results Stories delivered G2 delivered 22% less stories than G1. G3 delivered 11% less stories than G1. User Stories Story Points -25.0% -20.0% -15.0% -10.0% -5.0% -22% -8% -11% -4% G1-G2 G1-G3 Figure : Comparing implemented stories between G1 and G2, and between G1 and G3. 17 / 23
  • 18. Development of Complex Software with Agile Method Controlled Experiment Results Requirements quality metrics Table : Number of tests executed and defects found by group. Metric G1 G2 G3 Tests executed 189 149 161 Failed tests 66 44 21 Fail rate 35% 30% 13% Tests executed Failed tests Fail rate -80% -70% -60% -50% -40% -30% -20% -10% 0% -21% -33% -5% -15% -68% -22% G1-G2 G1-G3 Figure : Comparing defects between G1 and G2, and between G1 and G3. G2 failed 5% less than G1. G3 failed 22% less than G1. 18 / 23
  • 19. Development of Complex Software with Agile Method Controlled Experiment Results Code quality metrics Metric G1 G2 G3 Lines of Code (LOC) 2232 1984 1950 Number of Classes 27 47 38 Number of Exceptions 1 21 2 Native catch blocks 53 18 33 Created catch blocks 9 12 6 Cyclomatic Complexity (CC) [9] 446 305 288 CC by class 15.9 4.5 7.2 CC by method 5.0 2.4 2.5 G2 and G3 produced 12% less lines of code than G1. G2 and G3 designed a complexity 33% smaller than G1. 19 / 23
  • 20. Development of Complex Software with Agile Method Conclusion Agenda 1 Introduction and Motivation 2 Proposed solution 3 Controlled Experiment 4 Conclusion 20 / 23
  • 21. Development of Complex Software with Agile Method Conclusion Consolidated results Applying Scrum+CE resulted in: Better code quality. Validated! 13.5% less defects on average! Complexity 33% smaller implies better code design! Delivered less Story Points but with fewer defects. Validated! Only 6% less due to the size of the experiment. Critic: The experiment does not scale! It is possible to develop complex software if Agile! Adding Exceptional Behavior handling does not compromise the agility. 21 / 23
  • 22. Development of Complex Software with Agile Method Conclusion Challenges It is really complicated (and expensive) to make quantitative experiments in Software Engineering. Despite the size of the experiment, in terms of number of participants and duration, we couldn’t apply any statistical analysis. The same experiment could be replicated with more groups or even bigger groups (scale). Applied to remodel software engineering practice courses. Research is not Agile :( 22 / 23
  • 23. Development of Complex Software with Agile Method Conclusion References C. Szyperski, Component Software: Beyond Object-Oriented Programming. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc. I. Sommerville, Software Engineering, 9th ed. Harlow, England: Addison-Wesley, 2010. G. R. M. Ferreira, “Tratamento de exce¸c˜oes no desenvolvimento de sistemas confi´aveis baseados em componentes,” Master’s thesis, IC, Unicamp, Dec. 2001. P. H. S. Brito, “Um M´etodo para Modelagem de Exce¸c˜oes em Desenvolvimento Baseado em Componentes,” Master’s thesis, IC, Unicamp, Oct. 2005. K. Schwaber, “SCRUM Development Process,” in Proceedings of the 10th Annual ACM Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 117–134. M. Cohn, User Stories Applied: For Agile Software Development. Addison-Wesley, 2004. K. Beck et al. (2001) Manifesto for Agile Software Development. Accessed: 17 Apr 2015. [Online]. Available: http://agilemanifesto.org M. V. Zelkowitz and D. Wallace, “Experimental Validation In Software Engineering,” Information and Software Technology, vol. 39, pp. 735–743, 1997. T. J. McCabe, “A Complexity Measure,” IEEE Trans. Software Eng., vol. 2, no. 4, pp. 308–320, 1976. 23 / 23