1 The NYS Forum, Inc. Using an Agile / Waterfall Hybrid approach to successful project delivery Presented by Matthew Carmichael Project Management Workgroup
2 When to use Waterfall Projects that require focused organizational and system controls Projects that have shifting project teams Projects that have fixed price deliverables Example: control system for a chemical plant
3 When to use Agile Projects where the customer has difficulties defining requirements or the requirements are subject to frequent changes Projects that have high stakeholder engagement where deliverables are to be produced quickly Projects that require continuous improvement to support organizational return on investment initiatives Example: public website build or redesign
4 When to use a Hybrid (Spiral) Large / complex projects Regular releases of new functionality required Management of risks, costs, and return on investment are important Requirements are unclear, complex, and may change at any time Projects where organizations want to combine the controls offered by Waterfall and the flexibility offered by Agile
5 Start with Waterfall
6 Kickoff with Waterfall PMO documentation: Project Charter, Stakeholder Analysis, Business Case, Communication Plan, Project Roles and Responsibilities Joint Application Development (JAD) Sessions with application users Development of Business Requirements Documents (BRD) Identify project reporting requirements to PMO and leadership team
7 Project Roles and Responsibilities Project Sponsor - Provide clear direction for project and how it s linked to organization s overall strategy. Project Manager (PM) - Plan and monitor the project including project plan, issues, risks, deliverables, change requests, and PMO reports. Business Analysts (BA) - Define, analyze, document, communicate, and manage requirements. Conduct application testing and develop test cases and scripts.
8 Project Roles and Responsibilities Communications Officer (optional) - Assist project team in facilitating meetings and communications with groups external to the organization. Provide end user support to external users and represent their interests at planning and project meetings. Subject Matter Experts (SME) - Accurately represent their business needs to the project team. Clarify business-related questions and issues. Technical Architect - Design / Architect a quality, working software product using established best practices.
9 Build with Agile
10 Prerequisites of Agile Adopting Agile methodology assumes that the high-level vision and budget for a project have been decided. These fundamental decisions about scope and goals should be communicated to the team formed to build the product.
11 The Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
12 Popular Agile process in use is Scrum
13 Project Roles and Responsibilities Product Owner - Ensures requirements are in scope and aligned with strategic objectives. Scrum Master - Protects the team from external and internal distractions, removes impediments, schedules planning meetings and review sessions. Agile Team - Self-organizing team works together to complete the User Stories that they have committed to within the iteration. The team is accountable for the delivery of the software product. Business Analysts Communications Officer Subject Matter Experts Technical Architect Developers
14 Project Roles and Responsibilities The following roles NEED to be held by separate individuals: Project Manager focuses on Waterfall processes and artifacts Product Owner focuses on Agile processes and artifacts Scrum Master focuses on Agile, assists with Waterfall
15 Build with Agile 1. Break down the initial set of business requirements into Epics. 2. Break the Epics into User Stories. 3. Identify which User Stories are needed for the initial product release. 4. Create the Product Backlog. 5. Create the Sprint Backlog.
16 Build with Agile Step 1 An epic is a major feature or function that can be broken down into User Stories. It may take several iterations to complete an epic. Example of Epics User Management, Login, and Security Create transactions and records Document attachment feature Customer self-service help and FAQs Email notification feature
17 Structure of a User Story As <persona>, I want <what?> so that <why?>. As a <type of user>, I want <some goal> so that <some reason>.
18 Build with Agile Step 2 Breaking down the Epic into User Stories Ex: User Management and Login As an application user, I want to be able to recover my password through a self-service feature, so that I do not have to call the helpdesk. As an application user, I want to update my profile information, so that other users know how to contact me. As an organizational manager, I want to view a listing of my organization s users, so that I can ensure proper authorization to the application.
19 Build with Agile Step 2 continued Breaking down the Epic into User Stories Ex: User Management and Login As an organizational manager, I want to manage my organization s users, so that I can ensure proper authorization to the application and data. As an application administrator, I want to deactivate users, so that we can prevent unauthorized access to application and data. As an application administrator, I want to trigger password resets and reactivation, so that I can assist end users who are having login issues.
20 Build with Agile Step 3 Breaking Down a User Story for initial release As an organizational manager, I want to manage my organization s users, so that I can ensure proper authorization to the application User Story #25 #25a create user, edit user #25b lock / unlock user, reset password #25c delete user a is needed for release 1.0 / for b and c, user will call or email help desk
21 Build with Agile Step 4 All User Stories are added to the Product Backlog. Group the Product Backlog into two categories: Needs BA work - These User Stories need additional requirements or the requirements may change based on end user feedback. Ready for Dev - These User Stories have complete, defined requirements and the project team is capable of producing a releasable working feature.
22 Build with Agile Step 5 Create the initial Sprint Backlog by placing the User Stories identified for release 1.0 on the list. Product Owner holds initial planning meeting to present User Stories to the project team. Project team creates tasks and estimates the work. Initial 1.0 release date is determined.
23 Agile / Waterfall Overlap and Making Agile Accountable
24 Project Artifacts Example Waterfall Artifacts Project Charter Business Case Stakeholder Analysis Communication Plan Project Progress Reports Business Requirement Document Context Diagram Process Models Project Schedule Project Plan Performance Reports Example Agile Artifacts Product Backlog Sprint Backlog User Stories Impediment List Agile Board (Kanban) Velocity Chart Releasable Software
25 Satisfying Reporting Needs Place Epics from the Product Backlog onto the Project Plan Use items from the Impediment List (which cannot be resolved timely) to report as project risks and issues Create Performance Reports as part of the working software Use the Agile Board (Kanban) to estimate and report project status and progress Use application release notes to communicate delivered User Stories Use Burndown / Velocity to estimate costs
26 Epics on Backlog to Project Plan Epics User Management and Login Create application transactions and records Document attachment feature Customer self-service help and FAQs Email notifications function
27 Impediment List Impediments that cannot be resolved quickly Database group is planning a server upgrade over next 6 months Awaiting approval of request to obtain Agile tools Subject Matter Expert is leaving project Organization struggling to adapt Agile processes Upcoming bad weather might result in losing a week of work
28 Performance Reports As a Project Manager, I want a report of new users and transactions added to the system during a specified time period, so that I can report usage and performance indicators to stakeholders and leadership.
29 The Agile Board The Agile board is a physical representation of the User Stories that the team has committed to complete within the sprint. Typically three columns: To Do, In Progress, Done. The board should be physical and located within the team room. No one should sit with their back to the board. Update during the daily standup meeting.
30 The Agile Board
31 User Story \ Release Notes Add a number to identify User Stories. Use the User Story number in requirement documents, development tasks, source code tags, and Agile board cards for traceability.
32 User Story \ Release Notes
33 Tips on a Waterfall / Agile (Hybrid) Approach
34 Avoid Common Pitfalls Planning meetings are too short a true planning meeting should be 4 to 8 hours. Daily stand-up meetings are too long: this is NOT a project status meeting. What did you do yesterday? What will you do today? Are there any impediments in your way? Including the entire Agile team on Waterfall related meetings: instead choose a representative. Separating BA and PMO tasks from the iteration and Agile board. Prioritizing Waterfall tasks over the completion of User Stories.
35 Avoid Common Pitfalls Building features that do not have clearly defined and complete requirements. Instead create a prototype User Story: User Story #51 - As a Business Analyst, I want a prototype of the attach documents feature, so that I can demo it to stakeholders and obtain better requirements.
36 Agile Team Mantra On-time delivery of working software
37 Matthew Carmichael SaQus, LLC 518.861.5661 matt@saqus.com Project Management Workgroup
38 Tips on Budgeting Story Point = unit of measure assigned to a User Story to estimate level of effort Team Cost = total cost of the team per iteration Velocity = is the number of Story Points completed by a team in an iteration
39 Tips on Budgeting Product backlog = 300 Story Points Iteration = 4 weeks Velocity = 20 Team Cost = $50,000 Estimated Project Cost = (Product backlog Story Point Value / Velocity) * Team Cost = (SP / V) * Cost = (300 / 20) * 50,000 = 15 * 50,000 Project estimate: 15 iterations (1.25 years) - $750,000