1. A Case of Artful Exploration An agile experience of
extending free open source software Diego Fontdevila Juan
Gabardini
2. Index
Project Case 3. Artful Making 4. Challenges 5. Conclusion
6. Project Case
IT Manager Alejandro Borra 7. Tool Selection 8. Team Casting 9.
Existing vs. New or modified functionality
Business case video 10. Artful Making
Qualities of Artful Making
Release 11. Ensemble 12. Collaboration 13. Play
Iteration Cost Structure
Cost of Exploration 14. Cost of Reconfiguration
New way of learning
15. Project Vision Issues
Inception 16. Platform vs. Product (Site) Development 17.
Prototyping
Workshops 18. Killer features
19. Whole team
Whole team mindset was hard to reach 20. Content development
-> Marketing team 21. Platform development -> Development
team (vendor and customer IT)
22. Iteration estimation and rythmn
It converged as expected (around sprint 4). 23. Project has
fixed price 24. Customer has great disposition to balance cost,
effort and functionality 25. From the customer's point of view
complexity is still unknown. 26. Customer planning participation
improved with the impending soft launch (beta release).
27. Cost of iteration
Exploration (Rehearsals & experiments)
Experiments and prototypes
Reconfiguration
Patches vs. Platform versions 28. Extensible platform 29. On
site support for site developing
Workshop video 30. Free Open Source & Complexity
Is this a package implementation?
Modifications to the code base
Role of the platform 31. Is it a Legacy System? 32. Application
level platform
33. Design and Unit Test
Contract Design vs Exploratory Design 34. Not useful to make
test-first while exploring 35. Hard to get off the road 36. Where
should we add our test? 37. Understanding test architecture 38.
Hard to find the inflexion point (Michael Feathers)
39. SCM & Continuous Integration
Platform with superb extension support
Hooks, independent deployment of modules, etc.
But... implementing a CI process was hard 40. Identifying
dependencies 41. What test should we run? (original, ours?) 42. All
the same, the few tests that were implemented actually broke many
times, thus helping maintain consistency.
43. Functional Testing
How to validate coverage of requirements served by existing
functionality?
How to
Product regression is hard
And automating it harder
Modifications to existing functionality require evidence of
business value.