Presentation on theme: "Who’s Teaching Best Practices? A review of Canadian CS/SE curriculums and how to improve integration of agile/best practices Your Host: Chris R. Chapman."— Presentation transcript:
Who’s Teaching Best Practices? A review of Canadian CS/SE curriculums and how to improve integration of agile/best practices Your Host: Chris R. Chapman
Agenda Introduction Review of Problem Domain Summary of Findings – Ontario – Canada Conclusions and Strategies Break-Out Session: What would you do?
Take-Aways High-level insight into Canadian CS/SE curriculums What schools are leading, following and failing Why we need to support change in the curriculums What your colleagues are thinking
Introduction Chris Chapman – Involved with IT solutions for nearly 20 years – Consultant, Microsoft Consulting Services, Canada – Scrum Master Certification (2006) – MCAD (2006) –.NET/SharePoint Junkie – Agile/lean/iterative evangelist and practitioner – 8+ years (Scrum, XP – mostly dev) Standard Disclaimer: The opinions expressed in the following presentation are my own and do not reflect those of my employer, their partners or affiliates. Parental discretion is advised. Standard Disclaimer: The opinions expressed in the following presentation are my own and do not reflect those of my employer, their partners or affiliates. Parental discretion is advised.
Where this all began...
The Problem Domain Industry characterized with low ROI BDUF/waterfall domination Largest retirement/attrition wave coming evar... Declining enrolment Unprepared graduates Miserable jobs leading to further attrition CS/SE pursefighting
Exhibit B – Declining Enrolment Source Data:
Exhibit C – Serendipity Source Bil Simser: October 21, 2007
Exhibit D – Miserable Job Awaits 1.Anonymity 2.Irrelevance 3.Immeasurement
Methodology* Play role of prospective “pro-agile” student Shop for courses by reviewing online calendars for offerings* Measure against set of criteria, score results OntarioCanada Agile/lean/iterative SD Refactoring Design Patterns TDD Perf Testing Agile Requirements BDUF / Waterfall Agile/lean/iterative SD Refactoring OOD / UML Design Patterns TDD / CI / Acceptance Testing Perf Testing Agile Requirements Requirements Engineering BDUF/Waterfall
The Ontario Review Researched 16 online calendars for the 2007/08 academic year Source Data:
Ontario Review Results
Ontario BP Course Distributions
Ontario Highlights McMaster – SFWR ENG 3S03, COMP SCI 4AR3 Queen’s – CISC 322, 327, 422 Ryerson – CPS 311, CPS 845 Intro to XP! U of Toronto – CSC 207H1, 301H1 Intro to Agile Development! York – CSE 3311, 4313 Software Engineering Testing
The Canadian Review Researched 25 online calendars for 2007/08 academic year Source Data:
Canadian Review Results
Canadian BP Course Distributions
Canadian Highlights U of Alberta – CMPUT 301, CMPUT 201 U of Calgary – Software Engineering 501 U of Manitoba – COMP 3350 McGill – COMP 303, 304B, 335
Review Conclusions BDUF/Waterfall, Big-Bang Integration/Test still dominates CS/SE curricula Required degree courses vary wildly OOD + Design Patterns most offered BP Some exemplary leaders in the field Much more work to be done to advance agile/lean/iterative + BP
Moving Forward EM Rogers, Diffusion of Innovation – Innovators, Early Adopters, Early Majority, Late Majority, Laggards David Hutton, The Change Agent’s Handbook – “You do not have to spend a lot of time and effort on those who strongly resist change. You only have to help protect those who want to change.”
Strategies Similar to approaching agile in organizations – Change Evangelists – Small Sessions – Find and Support Champions – Stone Soup Curriculum by Committee NO Theme and Project Based Programs
Ideal Curriculum? Year 1 – Intro to Agile Software Development using Scrum – Lean Software Development Concepts – Intro to OOD – Intro to Test Driven Development – Basic Project: Build and deliver a simple game app across 4 iterations Year 2 – Intro to Software Development using XP – Intro to Continuous Integration – Design Patterns in Software Development – Basic Project: Build and deliver a simple instant messaging app using XP Year 3 – Scaling Agile to Multiple Teams – Performance Testing Applications for Production Environments – Refactoring: Improving the Design of Existing Code – Intermediate Project: The Consulting Experience – Repairing and Improving an Existing Application Year 4 – Advanced Agile/Lean/Iterative Project Management – Advanced Project: Build and deliver a WCM for Online Course Calendars – May involve multiple teams (Scrum of Scrums)
References Reviewing Ontario CS/SE Best Practices – Reviewing Canadian CS/SE Best Practices – Coding Horror Blog – Long, Dismal History of Software Failures – Jeff Atwood – IEEE Spectrum – Why Software Fails – Robert N. Charette –