Pscad agile adoption


Published on

How the PSCAD Development Group became Agile

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Pscad agile adoption

  1. 1. Story From the Trenches: How the PSCADDevelopment Group Became Agile.OCTOBER 18, 2011J. Craig Muller, P. Eng.Simulation Development Manager, Manitoba HVDC Research CentreMark Kulchycki, P. Eng.Software Architecture Manager, Manitoba HVDC Research Centre
  2. 2. The PSCAD Group
  3. 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. 4. 2. Rebuild the team and open up betterchannels 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. 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. 6. 4. Change project planning to supportchanges in development cycles• Break projects into smaller and smaller tasks• Keep plans adaptive• Introduce more milestones
  7. 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. 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. 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. 10. 8. Get involved with local organizations andevents• Join the Winnipeg Agile User Group• Attend SDEC• Seek out addition groups and events
  11. 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. 12. 10. Introduce Kanban boards to track projectdevelopment 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. 13. 11. Keep experimenting with newmethodologies• 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
  14. 14. Questions?