pscad agile adoption

Post on 29-Nov-2014

622 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

How the PSCAD Development Group became Agile

TRANSCRIPT

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

The PSCAD Group

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

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

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

4. Change project planning to support

changes in development cycles

• Break projects into smaller and smaller tasks

• Keep plans adaptive

• Introduce more milestones

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

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

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

8. Get involved with local organizations and

events

• Join the Winnipeg Agile User Group

• Attend SDEC

• Seek out addition groups and events

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

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

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

Questions?

top related