Applying Agile Project Management to a Customized Moodle Implementation



Similar documents
Introduction to Agile Software Development Process. Software Development Life Cycles

Agile Scrum Workshop

AGILE & SCRUM. Revised 9/29/2015

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Introduction to Agile and Scrum

LEAN AGILE POCKET GUIDE

Introduction to Agile Scrum

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Development Overview

Issues in Internet Design and Development

Agile Information Management Development

Agile and Secure: Can We Be Both?

Agile Project Management and Agile Practices Training; with a Scrum Project that you will do.

How To Plan An Agile Project

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

Agile & Scrum: What are these methodologies and how will they impact QA/testing roles? Marina Gil Santamaria Summer 2007

Comparing Agile Software Processes Based on the Software Development Project Requirements

The Agile Manifesto is based on 12 principles:

How to manage agile development? Rose Pruyne Jack Reed

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Agile Project Management By Mark C. Layton

Managing a Project Using an Agile Approach and the PMBOK Guide

IMQS TECHNOLOGY AGILE METHODOLOGY

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

Agile and lean methods for managing application development process

Scrum in a Large Project Theory and Practice

An Introduction to Agile Performance Management

Iteration Planning. also called Iteration Kickoff

Agile Power Tools. Author: Damon Poole, Chief Technology Officer

Agile with XP and Scrum

Call for Tender for Application Development and Maintenance Services

Lean Software Development and Kanban

Quality Assurance in an Agile Environment

Sometimes: 16 % Often: 13 % Always: 7 %

Agile Project. Management FOR DUMME&* by Mark C. Layton WILEY. John Wiley & Sons, Inc.

RISK MANAGMENT ON AN AGILE PROJECT

Mastering the Iteration: An Agile White Paper

Agile Team Roles Product Owner & ScrumMaster. Brian Adkins Rick Smith

CSSE 372 Software Project Management: More Agile Project Management

Agile Project Management

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

Product Development: From Conception to Execution. Slide 1

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Software Engineering I (02161)

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

Software Development with Agile Methods

Laboratório de Desenvolvimento de Software

Agile Training Portfolio

When is Agile the Best Project Management Method? Lana Tylka

Lean Software Development

Agile Software Development

D25-2. Agile and Scrum Introduction

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Agile Systems Engineering: What is it and What Have We Learned?

Agile Certification: PMI-ACP

Capstone Agile Model (CAM)

Agile Requirements Best Practices

Collaborating for Quality in Agile Application Development From Beginning to End

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

Scrum Guidelines. v W W W. S C R U M D E S K. C O M

Software Requirements and Specification

Course Title: Managing the Agile Product Development Life Cycle

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

Agile Projects 7. Agile Project Management 21

From Agile by Design. Full book available for purchase here.

Sprint with Scrum and get the work done. Kiran Honavalli, Manager Deloitte Consulting LLP March 2011

Agile Software Development. Stefan Balbo / Patrick Dolemieux

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Agile Essentials for Project Managers Keys to Using Agile Effectively With Project Teams

Agile Software Development Methodologies and Its Quality Assurance

Agile Project Forecasting Techniques. "Who Says You Can't Plan Agile Projects?" Matt Davis, PMP, MCITP October 21, 2013

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

"Bezpieczny Projekt"

Role of the Business Analyst in an Agile Project

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

The Agile Glossary of Terms

Software Development Methodologies

Scrum methodology report

When to use Agile/Scrum

Agile and lean methods for managing application development process

Waterfall vs. Agile Project Management

The Structure of a Software Development Team

ScrumDesk Quick Start

Agile Scrum and PMBOK Compatible or Contrary?

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

There are 3 main activities during each Scrum sprint: A planning meeting where: the Product Owner prioritizes user stories in the product backlog

How Product Management Must Change To Enable the Agile Enterprise

CMS XLC Guidelines for Agile Projects

Agile Methods. Introduction to. AAddison-Wesley. Sondra Ashmore, Ph.D. Kristin Runyan. Capetown Sydney Tokyo Singapore Mexico City

Transcription:

Applying Agile Project Management to a Customized Moodle Implementation November 6, 2013 Presented by: Curtis Fornadley, PMP UCLA CCLE Coordinator

Applying Agile Project Management to a Customized Moodle Implementation Agenda What is CCLE? What is Agile? Overview of Scrum Moodle HQ and Scrum CCLE and Scrum CCLE Agile Retrospective Next steps - Automated Testing Questions Goals: A basic understanding of Agile and Scrum How UCLA has applied Agile principals Get you thinking on how you can use these tools

What is CCLE? Common Collaboration and Learning Environment Common LMS for the Campus (Moodle 2.5.1) Supports: Instruction, Collaboration and Research Users: Faculty, Students and Staff. First successful, large scale, project that pulls together many different campus departments to host a single service.

Growth of CCLE 3000 Total Course Sites 2500 2000 1500 1000 500 Fall Winter Spring Summer 0 Logins per Day Total Users Spring 2013 12,309 29, 812 Spring 2012 8,341 26,497 Spring 2011 7,113 23,854

LMS on Campus 2013 Anderson CCLE Statistics - CCLE Arts and Architecture - CCLE Public Affairs - CCLE Social Sciences - CCLE Engineering CCLE (2014) Humanities - CCLE Mathematics CCLE Physical Sciences - CCLE GSEIS - CCLE Life Sciences CCLE Nursing - CCLE Public Health - CCLE

Shared Governance Model Oversight CCLE Home Governance Faculty Group Academic Leadership, Deans, CIOs CCLE Coordinator Lead Developer Support Coordinator Standards and Practices Group System Administrator Shared System Programmer/Back-up Sys Admin Student Group Operations CCLE Home Shared Campus Operations Common Code base in GIT Common Interest Group (CIG) CCLE Subgroups Autonomous Department System Autonomous Department System Autonomous Department System

CCLE: Customized Moodle A primary driver for selecting Moodle: The Ability to Customize

Managing Code Divergence Technical Debt: Moodle is constantly changing Rework is a constant. Moodle.org 6 month release cycle. Code Divergence CCLE Moodle Moodle.org Core Time

Project Management Developing and Evolving a customized Moodle instance amounts to a series of projects - some large, some small. What is a Project? A temporary group activity designed to produce a unique product, service or result. A project is unique; it is not a routine operation Project management is the application of knowledge, skills and techniques to execute projects effectively and efficiently.

Basic Project Management Triple Constraint: Scope: Improvements, fixes, new functionality Schedule: Often dictated by academic calendar Resources: Existing staff, matrix staff, contractors One cannot change without affecting the others Two Methodologies to consider: Waterfall and Agile

Compare Methodologies S T A R T Waterfall Development Design Requirements You know the least about a project at the start Sprint 1 Highest Priority Features REQUIREMENTS Design Test Test Develop Integrate Test Agile DEMO & FEEDBACK Sprint 2 Highest Priority Features REQUIREMENTS Design Test Test Develop Integrate Test DEMO & FEEDBACK Deploy Testing Sprint n Highest Priority Features REQUIREMENTS Design Test Test Develop Integrate Test DEMO & FEEDBACK R E L E A S E

Waterfall vs. Agile Agile projects are 3 times more successful than non-agile projects. The Standish Group defines project success as: On Time, On Budget, and with All Planned Features.

What is Agile? Agile: umbrella term for Iterative, Incremental Software Development Methodologies. Agile methodologies include: Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean, and Feature-Driven Development (FDD). Agile methodologies emphasize: small teams delivering small increments of working software with great frequency while working in close collaboration with the customer and adapting to changing requirements.

Key Attributes of Agile Promotes Sustainable Development Design Constant Feedback Test Customer Collaboration Integrate Iterative Development Co-located Dedicated Team(s) Daily Communication Resolve Defects Early Self Organizing Teams - Team Members Take Ownership REQUIREMENTS Test Test Develop DEMO & FEEDBACK Responding to Change Over Following a Plan Primary Measure of Progress: Delivering Working Software Frequently

Scrum = An Agile Framework Scrum is the most widely recognized Agile Framework for the iterative development of software Note: Sometimes the term Scrum is used interchangeably with the term Agile, this is incorrect Scrum is comprised of a series of short iterations called Sprints. Each Sprint ends with the delivery of an increment of working software. The term Scrum is derived from the game of Rugby, where it refers to a team that moves down the field as one body.

Scrum Roles Product Owner Stakeholder Representative - priority setting, business side, controls $$, sets strategy and direction, Accepts/Rejects the work from the Sprint. Could have a PO proxy, more on this later Development Team (7 +-2) Product Creators: programmers, UI experts, testers, etc. Cross functional skill sets, self organizing and self managing, ideally full time and co-located. Scrum Master Project Facilitator. Supports the team as a servant-leader, removes obstacles, has intuitional knowledge, helps to build consensus. Process Coach - keeps the team true to Agile principles

Scrum Teams Project Team Scrum Team Scrum Master Development Team Product Owner Stakeholders

Scrum Artifacts Product Road Map - overall view of Product requirements Themes, epic user stories, tentative release time lines Product Backlog - list of all User Stories associated with the project main source for project requirements Sprint Backlog - list of Users Stories associated with the current Sprint, includes estimates in hours to complete tasks (max time should be one day per task) Increment - the sum of all the Product Backlog Items completed during a Sprint and all previous Sprints Burn Down Chart - a publicly displayed chart showing remaining work in the Sprint Backlog

Scrum User Stories User Story: A simple description of a product requirement Title <a name for the user story> As a <User or persona> I want to <take this action> So that <I get this benefit> When I <take this action>, this happens <description of action> Outlines the test case(s) for developers Can form that basis of Automated Testing. Stakeholders have direct input Customer Collaboration

Scrum Meetings Sprint - a consistent iteration of time (1-4 weeks) At the end the Development team deliveries of an increment of working software. Sprint Planning - beginning of the cycle, select the work to be done Turn User Stories into Tasks - detail time and work estimates. Daily Scrum - ~15 min Coordination - Not Problem Solving What did you do yesterday? What are you planning to do today? Any impediments/stumbling blocks? Sprint Review Demonstrate the working product Sprint Retrospect Post mortem done after ever Sprint. What went well? What would we like to change? How can we make the change?

Moodle HQ and Scrum Moodle HQ s move to Scrum Martin Dougiamas announcement December 10, 2010 https://moodle.org/mod/forum/discuss.php?d=164057 Moodle Tracker = Product Road Map : bugs and new features Major releases happening every 6 months (starting June 2012). Scrum Roles: Product Owner - Martin Dougiamas Representing the voice of all Moodle users Scrum Master - Michael de Raadt Two Development Teams: FRONTEND and BACKEND Most Moodle HQ developers are in Perth Some work remotely - Working towards co-location.

Moodle HQ and Scrum Since 2.5 release both stable and dev work is achieved using Scrum. Prior to 2.5 just stable Backlog for FRONTEND and BACKEND teams ranked by Product Owner Three week Sprints - teams select issues from their relevant Product Backlogs. Retrospective held at the end of each Sprint Two Sprints are followed by a project week Developers are free to work on their own Moodle-related projects. Daily Scrum meetings (remote people via Google Hangouts) Currently refining initial planning period specs writing and prototypes

UCLA and Agile Product Owner CCLE is highly collaborative and consensus driven Two Product Owner Proxies represent the group. Development Team (7 +-2) Just short of 7 CCLE Home Team: 1 lead developer, 1 programmer/ui expert, 1 tester application expert, ~4 part time student developers/testers,.5 FTE matrix assigned programmer ~.5 FTE Contributed testing resources Scrum Master CCLE Coordinator (me): servant-leader, removes obstacles, has intuitional knowledge, helps to build consensus. Process Coach : CCLE Coordinator and Lead Developer

UCLA Scrum Artifacts Product Road Map Features and Functionality Matrix (FFM) Captures input from stakeholders Reviewed and updated monthly 1-2 years of work Product Backlog Prioritized items from the FFM User Stories captured in Jira Sprint Backlog Entered and edited in Jira, Kanban board Increment - Captured in FFM and Jira Burn Down Chart - Not used

UCLA Scrum Meetings Sprints - 1-3 weeks, varies Sprint Planning Turn User Stories into Tasks Consistent and Useful. Sprints include Bug Fixes and New Features Daily Scrum Done virtually with Jabber Varied schedules and not all co-located Sprint Review Released to stakeholders on Test and Stage environments Weekly meetings of key stakeholders Sprint Retrospect Not held consistently; mostly discussion after major releases Not much time between Sprints

Requirements and Priorities CIG and SPG F&F Matrix Faculty Survey Student Survey Faculty Advisory Group CCLE F&F Matrix Product Road Map Reviewed Monthly Student Advisory Group CCLE Product Backlog Reviewed Weekly CCLE Development Team and Product Owners New Functionality and Improvement Projects

Prioritizing Feature Requests Features and Functionality Matrix (H, M, L) Feature Types: System Operations CCLE Archival User Interface Functionality Improv. Integration with Campus Systems Other CCLE sites Staffing Resources Admin/Support Tools Mobile Copyright Documentation Merge Code to Moodle.org Contribute to Moodle.org Governance Other Value Technical Difficulty

Sprint Planning and Execution

UCLA Agile Retrospective 2010-2011 FFM created for Moodle 2 migration Waterfall Fall 2011 - move to Agile approach June 2012 launched Moodle 2.0 with all critical functions working less important items iterated over summer and fall An Agile approach was key to the smooth transition Focus and Re-focus on the top priorities Remember and Communicate the Triple Constraint Nothing is perfect on day one Make sure the most important things are

UCLA Agile Retrospective Lessons Learned and Things to Work On Staffing falls short for true Scrum Product Owner Proxies are really representatives and have limited power Some aspects of Scrum have not been implemented (Burn down chart, rigorous Scrum estimation techniques) Scrum is a skill - you get better as you do it. Testing is our Achilles heal It happened again moving to 2.5 Common Agile Pitfall : Lack of Automated Testing

Automated Testing Behavior Driven Development (BBD) Test Driven Dev. Behat is a behavior driven testing framework Behat scripts are human readable stories that describe the behavior of your application. Behat scripts are called features Each feature contains a scenario Scenarios are basically Agile User Stories Code may change over time, but the expected behavior should not. If the expected behavior has changed during a test, your code probably broke something.

Automated Testing Moodle.org supplies Automated Testing scripts in 2.5 A custom Behat environment built to work with Moodle. Functions that generate data (like courses and students) A large set of predefined step definitions Example: And I turn editing mode on. Challenge for UCLA - heavily customized version of Moodle Edit Moodle supplied scripts Write our own

Agile References Agile Project Management for Dummies, Mark C. Layton Platinum Edge Agile Training platinumedge.com http://agilemanifesto.org/principles.html http://agiledictionary.com http://docs.moodle.org/dev/process http://docs.moodle.org/dev/process#sprints Project Management Institute http://www.pmi.org/ http://en.wikipedia.org/wiki/behavior-driven_development http://behat.org/

Questions? Curtis Fornadley, PMP CCLE Coordinator cfornadley@oid.ucla.edu