Being agile while trying to do many things at once1. Being Agile
While Trying to Do Many Things At Once
Robert Walsh
President
EnvisionWare, Inc.
rwalsh@envisionware.com
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 1
2. Agenda
• Who is EnvisionWare?
• The Problem
• What We’ve Tried
• Next Steps
• Conclusion
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 2
3. Who is EnvisionWare?
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 3
4. Who is EnvisionWare?
• Library technology company
• Focus on products for patron self-service
• Develop most, OEM some
• Founded in 1998
• Have grown from 2 to ~60 employees in
just over 10 years
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 4
5. Who is EnvisionWare?
• Using Agile processes and principles since
around 2002
• XP for engineering practices
• Scrum for project management
• 2 week iterations
• A few near shore developers on contract
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 5
6. The Problem
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 6
7. The Problem
LPT:One LibraryPDA
Launch Command OneStop
Authentication and Accounting Module
Many products
BarcodePlus iLink PC Reservation
RFIDLink StaffLink
eCommerce Services PINPal
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 7
8. The Problem
Most products composed of
multiple modules
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 8
9. The Problem
Windows 95 Mac OS X 10.5
Mac OS X 10.6 Windows XP
Windows Millenium Edition
Many supported platforms
Windows 2000 Windows 7 Windows 98
Windows Server 2003 Windows Server 2008
Windows NT 32 / 64 bit
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 9
10. The Problem
C++ AJAX
Javascript PHP
Many supported languages and
technologies
Java
Perl
jRuby HTML
Ruby Distributed Ruby
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 10
11. The Problem
• Small staff
• 6 Developers
• Maximum of 9 over company history
• 3 QA
• 2 Technical writers
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 11
12. The Problem
• Few automated acceptance tests
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 12
13. The Problem
• Single, largely interdependent code base
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 13
14. The Problem
• How do we allocate our scarce technical
resources to support, maintain, and extend
all of our current products while preserving
our competitive edge by creating innovative
new products?
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 14
15. What We’ve Tried
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 15
16. What We’ve Tried
• Approach #1
• Maximum flexibility for the Customer
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 16
17. What We’ve Tried
• Maximum flexibility for the Customer
• Treated the entire code base and story
backlog as a “product”
• Customer allowed to focus on any
component in each iteration
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 17
18. What We’ve Tried
• Maximum flexibility for the Customer
PCR AAM PCR LPT LPT
LPT OS ECS AAM PCR
ECS RLK RLK OS ECS
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 18
19. What We’ve Tried
• Maximum flexibility for the Customer
• Treatment of defects
• Defects had to be prioritized like any
other story
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 19
20. What We’ve Tried
• Maximum flexibility for the Customer
• Benefit: Customer able to choose highest
priority stories each iteration
• Maintenance, new features, and defects
treated equally
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 20
21. What We’ve Tried
• Maximum flexibility for the Customer
• Problem: Too little time to achieve
significant business value in each
component
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 21
22. What We’ve Tried
• Maximum flexibility for the Customer
• Problem: Too much productivity lost to
context switching
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 22
23. What We’ve Tried
• Maximum flexibility for the Customer
• Problem: Too much overhead associated
with making the components deliverable
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 23
24. What We’ve Tried
• Approach #2
• Track system
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 24
25. What We’ve Tried
• Track system
• Customer agrees to limit scope to tracks
• Number of tracks determined by available
resources
• Development, QA, Documentation resources
assigned to each track
• Track focus switches quarterly
• One track dedicated to maintenance
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 25
26. What We’ve Tried
• Track system
PCR PCR PCR ECS ECS
LPT LPT LPT OS OS
Maint Maint Maint Maint Maint
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 26
27. What We’ve Tried
• Track system
• Treatment of defects
• Defects found in same iteration as
story were fixed in that iteration
• Defects found in later iteration went
into product backlog for Customer to
prioritize for future iteration
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 27
28. What We’ve Tried
• Track system
• Benefit: Technical resources able to focus
on same components for longer periods
of time
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 28
29. What We’ve Tried
• Track system
• Problem: Maintenance concerns
sometimes greater than one track could
handle
• Resources shifted, delivery delayed
• Delays affect future track focus
• Unable to meet business priorities
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 29
30. What We’ve Tried
• Track system
• Problem: QA and Documentation unable
to keep pace with development
• Also delayed delivery
• Defects found in later iterations
interfered with future release schedule
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 30
31. What We’ve Tried
• Track system
PCR PCR PCR ECS ECS
PCR PCR
LPT LPT LPT OS OS
LPT
Maint Maint Maint Maint Maint
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 31
32. Next Steps
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 32
33. Next Steps
• Track system has merits
• Development appreciates extended focus
• Customer able to lump together batches
of features to deliver significant business
value in each release
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 33
34. Next Steps
• Key areas to address
• May need to shorten track interval from
3 months to 6 weeks
• Give Customer more flexibility to
select mini-projects
• Small features in minor products
• Service packs for maintenance
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 34
35. Next Steps
• Key areas to address
• Must find ways to release at the end of
each interval
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 35
36. Next Steps
• Key areas to address
• Business must adhere to “fix the
schedule, adjust the scope”
• Quarterly releases tend to align with
major trade show opportunities
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 36
37. Next Steps
• Key areas to address
• QA and Documentation need to keep
pace with Development
• More automated tests
• Better TDD in Development to
improve quality of work going to QA
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 37
38. Next Steps
• Key areas to address
• Change how defects are treated
• All defects are triaged when found
• If defect must be fixed as part of
current release, it is injected into
current iteration
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 38
39. Conclusion
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 39
40. Conclusion
• It can be difficult to be Agile with many
products, all of which continue to evolve
over time
• Agile often does not address product
maintenance
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 40
41. Conclusion
• Successful solution should balance the
needs of the Customer and the Technical
Resources
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 41
42. Conclusion
• Releasing product with few defects is
crucial
• Release brings closure and allows all to
move forward
• Low defect rates prevent backsliding
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 42
43. Conclusion
• Automated testing is essential
• Fast pace of Agile development makes
manual regression testing impractical
• Must be done at both the Unit and the
Acceptance level
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 43
44. Questions?
¿Pregunatas?
Lima, Perú – 4 al 7 de Octubre 2010
Copyright©2010 Robert Walsh - All Rights Reserved
Tuesday, October 12, 2010 44