Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Pscad agile adoption
1. Story From the Trenches: How the PSCAD
Development Group Became Agile.
OCTOBER 18, 2011
J. Craig Muller, P. Eng.
Simulation Development Manager, Manitoba HVDC Research Centre
Mark Kulchycki, P. Eng.
Software Architecture Manager, Manitoba HVDC Research Centre
3. 1. Identify the problems
• Realizing there was a problem
• Current path was leading us to failure
• Open up for change
• Understand it is going to be a process; it wasn’t a
switch
4. 2. Rebuild the team and open up better
channels for communication
• Team forges their own identity
• Established weekly meetings
• Problems and developments are addressed as a
team, not as an individual
• Established sense of ownership within the team
5. 3. Change development methodologies
• “One and done” never happens
• It’s impossible to know every requirement ahead of
time
• Adopted iterative development cycles
• Priorities and market demands change
6. 4. Change project planning to support
changes in development cycles
• Break projects into smaller and smaller tasks
• Keep plans adaptive
• Introduce more milestones
7. 5. Change the process of estimating
• Introduce planning poker
• Estimate level of complexity rather than time/money
• All stakeholders are involved
• Hidden details (possible problems) are exposed
• Development plans and estimates are agreed upon as a
consensus
• Reduces risks and spreads liability amongst everyone
involved
8. 6. Introduce automated testing
• Builds/Releases can be auto tested at regular
intervals (weekly, semi-weekly, nightly, etc.)
• Issues/Problems can be caught and addressed
sooner
• Quality assurance increases
• Productivity increases
9. 7. Change deployment methodologies
• Introduce iterative deployment cycle
• Reduce the gap between releases
• Establish regular cycle customers can depend on
• Always have something deployable
• Introduced a Beta program
• Users become directly involved in development
• Provides valuable feedback
• Provides feature usage and application metrics
10. 8. Get involved with local organizations and
events
• Join the Winnipeg Agile User Group
• Attend SDEC
• Seek out addition groups and events
11. 9. Introduce paired-programming
• Product maintenance (bugs, etc.) is addressed as a
team
• Juniors receive direct mentoring by seniors
• Knowledge base (expertise) is distributed amongst
the team, away from individuals
• Peer reviews occur automatically
• Quality of solutions and code increases
12. 10. Introduce Kanban boards to track project
development and maintenance
• Provides a dynamic view on the current state of a
project
• Issues (bottlenecks) are identified early
• Motivates the team involved
• Velocity can be established
13. 11. Keep experimenting with new
methodologies
• Continue to try new things
• Make a point of experimenting with new techniques
every 6 months or so
• Not everything will work
• Remember it’s a process, it’s organic, it needs to
grow