Product Development Best Practices An Agile, User-centric Software Development Lifecycle Marc Nadeau, Senior Director, QA, Blackboard Thursday, July 12, 2007
Agenda Introduction to the Blackboard SDLC Blackboard Requirement Stages Phased Development Client Involvement Question and Answers 2
Introduction to Blackboard s SDLC Software Development Life Cycle (SDLC): Framework for understanding and building software Requirements Outline use cases Workflows Quality Assurance Group and rank use cases Determine test case coverage Framework Engineering Define conceptual model Documentation Determine audience and documentation needs 3
Common SDLC Models Waterfall: Linear and sequential. Iterative: The application is developed in small sections. Agile: Plan, build, evaluate, adapt, repeat. 4
Blackboard s Methodology Waterfall Predictive Iterative Adaptive Agile Application Pack Strategy Targeted releases Limited scope Increased frequency Two per year High quality Feature Teams Includes Requirements, Developers, Quality Assurance, Performance, and Documentation Increased communication and collaboration 5
Requirements Stages Product Roadmap Product Requirement Document (PRD) Business Priority Table (BPT) Functional Requirement Spec (FRS) Technical Design Document (TDD) 6
Roadmap Feature lists collected from numerous sources Roadmap Committee Client-facing departments Analysis of client needs Direct Client Feedback Focus groups Blackboard Days Blackboard Idea Exchange Client Enhancement Requests ListServ s Product Development Support Roadmap Committee Marketing Services Sales Executive Management 7
Product Requirements Document High-level description of release features All features listed and ranked External client-facing Internal infrastructure and framework No development until feature approved Business Priority Table Determine business needs per feature Detail List of Client-facing Requirements Prioritize Requirements per feature Must Have, Scheduled, Proximity Sign Off 8
Functional Requirements Specification Create Use Cases One or more use cases for each Business Priority Table item Create user stories Rough Scope Requirements, Engineering, Quality Assurance, Performance Re-evaluate feature list PRD and BPTs updated, if needed Collaborate with Clients Product Development Partnership (PDP) Continuously updated Sign Off 9
Functional Requirements Specification: Components Introduction Feature Priority List Explicitly Out of Scope Description of Feature Who will use, When, Why, Where will it appear Risks Use Case Outlines Workflow Diagram Behavior Overview Provide a description of functionality and how it is used in the problem domain Actors Functional Description Page Level Specifications Continuously updated 10
Functional Requirements Specification: Sample Visio Diagram 11
Technical Design Document Engineering documents technical design details Technical Design Document: Components Design Assumptions and Constraints Programming Interfaces, Operations, Classes Database Specifications Unit Tests Performance Considerations Data Models and UML API Impacts Continuously updated 12
Phased Development Full project team engaged Requirements, Engineering, Quality Assurance, Performance Rough Scope of Requirements Phased milestones Re-evaluate feature list based on scope Dedicated development environment (DevPod s) Three per team, one for each OS Requirements and Dependencies Project team reviews and contributes to FRS and TDD Sign Off Sign Off 13
Phased Development (continued) Requirements One phase ahead of development Detail functionality, workflows, page design for use cases Engineering Build unit tests, build functionality, API test harness, validate Quality Assurance Detail uses cases for phase functionality, audit requirements Test against development builds (DevPods) Manual and automated test cases Performance Build and run performance tests Phase Audits Requirements / Engineering / QA Show and Tell Move onto next phase 14
Verification Quality Entrance and Exit Criteria Cycles Run test cases and Performance tests Find, fix, and verify issues Go/No Go at each Cycle User testing of features Internal demo box Beta: User acceptance testing Early Availability General Availability Quality Early Availability Acceptance Beta Acceptance Cycle n Cycle 2 Cycle 1 15
Client Involvement Blackboard Idea Exchange TM (BIE) Focus Groups, Surveys: help decide what to build Product Development Partners (PDP): help build Product testing (Beta and Early Availability): help test Blackboard Days, Conferences, Client Visits Clients email us ClientPrograms@blackboard.com Clients: Support Report issues and enhancements BIE Focus Groups Client Involvement PDP Surveys Product Testing Client Visits Support Enhancement Tickets Blackboard Days Conferences 16
Thank you Questions Contact Information mnadeau@blackboard.com dmillen@blackboard.com 17