Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
20111119 Is Software Evolution really effective? @IAD2011 Rome-IT [ENG]
1. Anti-IF Campaign:
Is Software Evolution
really effective?
Italian Agile Day
Roma 19.11.2011
Francesco Cirillo • Director, Anti-IF School
francesco@antiifschool.com • @antiifschool
2. Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
3. About me
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
4. The Anti-IF Campaign
Kent Beck Craig Larman
http://www.antiifcampaign.com/join-the-campaign.html
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
5. Code Monsters
McCabe Index = 300
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
6. Code Monsters
McCabe Index = 300
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
7. Code Monsters
McCabe Index = 300
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
8. Is Software Evolution Really Effective?
What does software evolution really mean?
How much should effective software evolution cost?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
9. Is Software Evolution Really Effective?
What does software evolution really mean?
How much should effective software evolution cost?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
11. Is this what really happens?
Not at all!
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
12. Software Lifecycles
Requirement 1 Requirement 1
Architecture NFR
Requirement 2 Coding Testing Requirement 2
Analysis
Design FR
Requirement n Requirement n
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
13. Software Lifecycles
Requirement 1 Requirement 1
Architecture NFR
Requirement 2 Coding IT#1 Testing IT#1 Requirement 2
Analysis
Design FR
Requirement n
Coding IT#2 Testing IT#2 Requirement n
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
14. Software Lifecycles
Requirement 1 Requirement 1
Architecture NFR
Requirement 2 [Testing, Coding, Refactoring] IT#1 Requirement 2
Analysis
Design FR
Requirement n
[Testing, Coding, Refactoring] IT#2 Requirement n
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
15. Extension versus Change
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
16. Software Lifecycles
Requirement 1 Requirement 1
Architecture NFR
Requirement 2 [Testing, Coding, Refactoring] IT#1 Requirement 2
Analysis
Design FR
Requirement n
[Testing, Coding, Refactoring] IT#2 Requirement n
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
17. Software Lifecycles
Requirement 1 Analysis 1 Architecture NFR 1
Coding 1 Testing 1 Requirement 1
Design FR 1
Requirement 2 Analysis 2 Architecture NFR 2
Coding 2 Testing 2 Requirement 2
Design FR 2
Requirement n Analysis n Architecture NFR n
Coding n Testing n Requirement n
Design FR n
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
18. Software Lifecycles
Requirement 1 Analysis 1 [Test + Codi ca + Refactoring] 1
[Test + Codi ca + Refactoring] 1
[Test + Codi ca + Refactoring] 1
Testing 1? Requirement 1
Requirement2 Analysis 2 [Test + Codi ca + Refactoring] 2
[Test + Codi ca + Refactoring] 2
[Test + Codi ca + Refactoring] 2
Testing 2? Requirement 2
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
19. Software Lifecycles
Requirement 1 Requirement 1
Architecture NFR
Requirement 2 [Testing, Coding, Refactoring] IT#1 Requirement 2
Analysis
Design FR
Requirement n
Requirement 1 Analysis 1 [Test + Codi ca + Refactoring] 1
[Test + Codi ca + Refactoring] 1
[Test + Codi ca + Refactoring] 1
Testing 1? Requirement 1
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
20. Software Engineering
da
“Evolutionary
Biology”
Douglas J. Futuyama
1998, pag 653
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
21. Evolution
“In biology the term evolution
means the gradual and continuous
accumulation of modifications
over a sufficiently long period of
time in which significant changes
manifest in living organisms”.
Source Wikipedia
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
22. Evolutionary process
“It is not the strongest
of the species that survives,
nor the most intelligent
that survives.
It is the one that is the most
adaptable to change.”
Charles Darwin
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
23. What is your strategy?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
24. 100% Flexible...
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
25. IF-based evolution strategy
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
26. Emergent
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
27. What kind of TDD do you do?
Copyright 200-2006
Scott. W. Ambler
Add a test
[Pass]
Run the tests
Make a little change [Pass,
Development
[Fail] continues]
Run the tests
[Pass, Development stops]
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
28. What is the most effective TDD?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
29. Evolution & Emergent
• These words tell us nothing about what should be
done and what should not be done.
• They don’t give you a test as to when to do something
or how to do it.
• They don’t say anything about how that continuous
accumulation of modi cations should happen.
• They just say that your software can be called
evolutionary because it derives from a continuous
accumulation of modi cations.
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
30. Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
31. Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
32. Is Software Evolution Really Effective?
What does software evolution really mean?
mean
How much should effective software evolution cost?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
33. Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
34. Earnings
ROI =
Costs
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
35. A good startup should
not only generate income
but also have a team
capable of wisely
reducing its costs.
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
36. How much does it cost?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
37. How much does...
effective Software Evolution cost?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
38. What about adding similar features
Mature Team’s Marginal Cost
Costs
Mature Team’s
Evolutionary
Marginal Cost
For Similar
Features
Time
Francesco Cirillo • Director, Anti-IF School XPDays Germany
francesco@antiifschool.com • @antiifschool Karlsruhe, 17.11.2011
39. Is this what really happens?
Not at all!
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
40. Adding new features to our system
Evolutionary Marginal Costs
Costs
Effective
Evolutionary
Marginal Costs
Time
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
41. Pomodoro Apps
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
42. Requirements Pomodoro 1.0
Show a
Pomodoro
background
Set the timer by
pressing a button
Ring after
Total cost:
10.000 €
25 minutes
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
43. Lesson #1
Software Evolution costs too much
Francesco: “Would you buy your own software?”
App’s Developer: “NO!”
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
44. Is Software Evolution
cost effective?
NO!
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
45. Too costly
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
46. Lesson #2
Mature teams cost more
20.000 €
Recently formed team
Mature team
10.000 €
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
47. Are you really improving your process
or feeding your Code Monster?
Effectiveness of Investment in Process Improvement
Quality
Effort spent
on Process
Improvement
Perceived
internal
quality
of software
Time
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011
48. Would you buy your own software?
Software can be built in an evolutionary way.
Evolutionary development costs too much.
We are not conscious enough of the strategies.
Francesco Cirillo • Director, Anti-IF School XPDays Germany
francesco@antiifschool.com • @antiifschool Karlsruhe, 17.11.2011
49. Do you want to be involved?
Would you buy your own software?
What does the term evolution mean to your team?
Would a team less “mature” than yours have lower costs?
Consider you have to introduce a second feature that is similar
to something you’ve already done. Does it cost less than the
rst time you did it? Why?
http://www.antiifcampaign.com/2011/11/would-you-buy-your-own-software.html
Francesco Cirillo • Director, Anti-IF School XPDays Germany
francesco@antiifschool.com • @antiifschool Karlsruhe, 17.11.2011
50. Do you want to be involved?
http://www.antiifcampaign.com/2011/11/would-you-buy-your-own-software.html
Francesco Cirillo • Director, Anti-IF School XPDays Germany
francesco@antiifschool.com • @antiifschool Karlsruhe, 17.11.2011
51. Thanks for listening.
Questions?
Francesco Cirillo • Director, Anti-IF School Italian Agile Day
francesco@antiifschool.com • @antiifschool Roma, 19.11.2011