1 Overview Custom Development Methodology Appendix Blackboard s custom software development methodology incorporates standard software development lifecycles in a way that allows for rapid development with maximum customer input. By following this approach we provide the client with enough information, technical exercises, development examples and documentation that the end users and administrators can effectively interact with the application, while at the same time meeting end users demands around functionality and scalability. Blackboard s Consulting staff is highly trained and has industry knowledge and in depth experience with the Blackboard systems and capabilities, which allows us to develop custom solutions to enhance and extend the Blackboard system to meet your needs. 1.1 Objectives The primary objective is to deliver an effective custom solution that meets the needs of the institution. More specifically, Blackboard s approach provides: A well-managed process that accelerates application development and deployment A solution that is professionally designed, developed and tested Comprehensive support and end user documentation Targeted user training designed to enable client management of the custom solution 1.2 Custom Development Approach Through years of experience, Blackboard Consulting has developed a custom development methodology focused on efficiency and quality. Its approach is broken into several, interrelated stages, designed to develop a robust solution that can be managed easily. The approach is highlighted below: Requirements Definition Solution Design Development and Testing Certification Deployment Maintenance As part of the development process, Blackboard will look to obtain the following objectives: Leverage Blackboard product knowledge and experience for efficient custom code development, minimizing maintenance and upgrade costs Leverage Building Blocks APIs and available reusable Blackboard objects for the custom solution as much as possible Develop the customization using Blackboard related technologies Package the application so that a system administrator can install it as a Building Block through the SysAdmin panel Develop comprehensive documentation for future support and management of the customization Blackboard Inc. 2005 Page 1 of 11
1.3 Benefits The Blackboard consultants assigned to your project have in-depth experience with extending the Blackboard Academic Suite. They have access to a broad set of Blackboard talent that is available to assist them as necessary. This includes subject matter experts within the Consulting organization, and designers and developers from the Product Development team. Blackboard expects its approach to provide several critical benefits. By capitalizing on our institutional knowledge, experience and custom development process, the client will receive a custom solution that not only meets requirements and is thoroughly tested, but one that performs well, is appropriately scaled and integrates effectively with the core Blackboard product. 1.4 Qualifications Blackboard Consulting is 120 people strong across the world who have been implementing custom solutions for clients since 1996. In fact, Blackboard Consulting has the ability to truly work around the clock to support your elearning rollout if time is of an essence. Blackboard Consulting team members are trained and certified on Blackboard s custom development methodology, as well as on the technical architecture of the Blackboard Academic Suite products. Blackboard Consulting Project Managers are experienced in IT project management best practices and processes. Blackboard technical consultants are expert on all applicable technologies, such as Java, PERL, SQL, Oracle, Linux, MS Windows, Solaris; as well as on accepted IT systems development life cycle processes. Blackboard Inc. 2005 Page 2 of 11
2 Conceptual Project Work Flow Client need Requirements Definition Requirements Definition Walkthrough and approval Prototyping Client review Solution Design Design Design review Development and Testing Develop/ Unit Test Quality Assurance Code review Certification Deployment Implementation Maintenance Project Closure Custom solution Blackboard Inc. 2005 Page 3 of 11
The implementation plan below describes the suite of activities that the Blackboard Consulting Team and Client project team will participate in to complete the proposed solution. Each section of activities has specific outcomes that track towards completion of the project for production purposes while also providing knowledge transfer for a level of client self sufficiency. 3 Custom Development Plan The following activities describe the services engagement in which your organization and the assigned Blackboard team will participate. 3.1 Project Preparation and Initiation The Blackboard Consulting team members assigned to your organization s engagement will: - Identify technologies that will be used to implement the customization (e.g. Microsoft.Net, Java Web Services, etc.) - Familiarize themselves with your project requirements, including the final Statement of Work and knowledge transfer from the Blackboard Sales team - Setup a centralized communication plan for tracking project activities, progress, issues and risks - Prepare materials for the project kick off conference call Blackboard Consulting will schedule and conduct a conference call kick off with the client team. During that call the following items will be covered: - Introduction of the Blackboard and client team members - Review of the scope of the engagement as defined in the Statement of Work - Describe the various client participants required for each stage of the project engagement. - Determine and create a high level project schedule, including scheduling of the onsite sessions After the kick off call, the Blackboard Consulting team prepares and delivers to the client a detailed agenda and supporting documentation for the project s onsite activities. If not already done, the client will install and configure a local version of Blackboard to be used as a Test and Development platform 3.2 Project Management Throughout the engagement, the Blackboard Project Manager will provide expert management of all Blackboard performed activities. He/she will: - Act as the primary point of contact between the client project manager and the Blackboard team for all project-related topics - Define, document and update comprehensive project plans and project schedules - Track and report on progress against the project schedule - Coordinate team meetings and provide regular updates via conference calls for both Blackboard and client constituents. Blackboard Inc. 2005 Page 4 of 11
- Provide regular status reports and bi-monthly budget tracking and project plan updates. - Track and report on any project issues - Summarize and coordinate project planning across all activities and Blackboard groups Consulting, Training, ASP, Quality Assurance, and Product Development. 3.3 Requirements Definition - This is the most critical portion of the customization project, as it is the foundation from which all development, testing and implementation activities stem. The process begins at the high-level from the outcome described in the Statement of Work, and continues into the details, including work flow, data flow, user interface, and development and data needs. At the conclusion of this phase, the client knows what will be developed 3.3.1 Requirements Definition process - Design sessions focused on defining detailed system requirements - Document the requirements - Lead a detailed walkthrough of the written requirements with the client team. This is an iterative process designed to ultimately result in final written requirements document(s). - Participate in the design sessions - Participate in the document walkthrough - Provide formal approval of the final requirements document(s) - Detailed requirements document(s), which will be used for solution development - Once approved, changes to the requirements must go through the defined change control process and receive client approval before any additional development work is begun. This process reduces the risk to project success. 3.4 Prototype Solution Using the results of the requirements design session, Blackboard consultants define, document and develop functional prototypes and example configuration activities. This process allows the client team to be intimately involved in defining the eventual solution design. Prototyping is traditionally an iterative process that ensures that all parties understand the anticipated solution s output and that allows Blackboard Technical Consultants to begin the solution design. It provides the means for client feedback before coding begins, reducing the risk for rework later. 3.4.1 Prototyping process - Develop a prototype consistent with the customization s specific needs. This can be in the form of a static mock-up that mimics the anticipated workflow and data requirements, or it could be development of a functional prototype in conjunction with the client using Building Blocks API s and appropriate database structures. - Refine the prototype based on client feedback Blackboard Inc. 2005 Page 5 of 11
- Review the prototype and provide comments - Prototype solutions and design approach notes - Consistent understanding of the custom application s ultimate capabilities, thereby limiting risk of miscommunication 3.5 Technical Design With the prototype complete, Blackboard Technical Consultants design the manner in which the solution will be developed. This solution design outlines the detailed process flow, the code necessary to implement it and the data requirements to support it. During this phase Blackboard Consulting capitalizes on its collective industry knowledge, experience with the Blackboard product and familiarity with other client solutions. 3.5.1 Design process - Research available Blackboard objects and Building Block APIs to determine which will be used as part of the end solution. - Write the design documentation - Internal design review to verify accuracy against the requirements, sound design practices, and double-check the appropriate use/re-use of existing Blackboard objects. - Be available to the Blackboard team to clarify requirements, as necessary. - Detailed database and process flow design documentation 3.6 Development and Unit Test Blackboard expects to develop in Java and use Oracle or SQL Server for the database, although it is possible the design will call for a different technical approach to be taken, for example develop using.net. Blackboard s methodology requires unit testing at specific development intervals to avoid potential code conflicts, as there are typically various members (DBAs, programmers, graphic artists) of the development team at work during this phase. 3.6.1 Development and Unit Test process - Build the database, custom code and user interface components of the solution. - Conduct internal code reviews for each segment of code to verify accuracy against the design and sound programming practices. - Install the code on the Test and Development server - Develop unit test case data and write unit test plans that validate the functionality documented in the approved design. - Conduct unit tests; modify and re-test customizations, as necessary Blackboard Inc. 2005 Page 6 of 11
- Document unit test results - Write internal technical support documentation - Develop custom code installer - Store tested code in Blackboard s code repository - Be available to the Blackboard team to review test results and answer questions, as requested. - Unit tested custom code, database and user interface components that meet all of the documented design requirements. - Detailed documentation for use by the Blackboard Consulting and Support organizations - All solution components stored in Blackboard s code repository 3.7 Quality Assurance and Functional Testing With the development phase complete, Blackboard initiates its testing process. This testing includes several components: system, regression and performance testing. System testing verifies that the documented system requirements are being met. Regression testing incorporates other components of the Blackboard Academic Suite and is intended to identify any conflicts the new software introduces to Blackboard s core functionality. Lastly, the system is performance tested to understand its capabilities under load. While this is not stress testing (determining the software s threshold), it is designed to identify any inefficiencies in the code and understand how it performs under typical loads. 3.7.1 QA and Functional Testing process - Design the system, regression and performance testing strategies - Develop test cases and other test data - Develop and deliver comprehensive test plans for the activities described above in the Development and Implementation section - Conduct system and regression tests in the client Test and Development environment; modify and re-test customizations, as necessary - Provide custom code and integration performance testing - Write and deliver test report detailing the tests run and results obtained - Participate in system testing, as determined during project planning. - Review test reports - Production ready custom code, database and user interface components that meet all of the originally documented requirements. - Solution components updated in the code repository, as necessary Blackboard Inc. 2005 Page 7 of 11
3.8 Deployment At the conclusion of the QA process, Blackboard will deliver the final product to the client along with end user documentation, which includes installation instructions and system usage guidelines. The Blackboard technical team will also complete internal turnover procedures to store the client s custom code into Perforce, Blackboard s code repository and configuration management system, along with detailed documentation for the Blackboard Support team. 3.8.1 Deployment process - Prepare final installation package for the customization - Write user documentation - Store final version of custom code in Blackboard s code repository - Deliver installation package and documentation to the client; conduct training on how to use the custom features and functions. - Provide support for client acceptance testing - Participate in the training activities - Install and acceptance test the customization(s) - Customization installation package - Client documentation - Client team trained on how to use the customizations 3.9 Technical Training Blackboard Consulting will conduct technical training specific to your implementation. The goal of the training is to provide client administrators with the skills they need for sound problem identification, troubleshooting and problem resolution across a variety of likely possibilities. In other words, to provide the client team with the information that they need to know for successful use of the custom solution. 3.9.1 Training process - Develop targeted Administrator Certification Training, designed to develop client internal talent capable of managing the custom solution. - Deliver this training through a hands-on, problem-based training program which includes testing the administrators knowledge of the installation and configuration process. - Participate in the training activities - Client administrators certified in the use and management of the customization. Blackboard Inc. 2005 Page 8 of 11
3.10 Project Closure At the conclusion of the project, Blackboard will furnish final documentation to the customer in the form of a project control binder. Blackboard Consulting will also complete internal turnover activities to the Blackboard Support organization for the initiative of Integration and Support Maintenance for the custom solution. 3.10.1 Project Closure process - Develop and deliver the Project Final Report. This report documents the deployed system. It includes: o Business process requirements o Configuration documentation o Administrator Certification results reference material o Production launch schedule o Detailed production launch steps o Project Final Report - Fully document the client integration configurations in the Blackboard files, CRM tool and code repository. - Turn over the customization to the Blackboard Support team - Complete activities necessary to initiate I&C Maintenance for the customization(s) - Accept the Final Report - Consulting project closed - Initiation of I&C Maintenance for the custom solution Blackboard Inc. 2005 Page 9 of 11
The schedule below reflects the necessary timelines required to fulfill the appropriate project milestones. Key to staying on schedule is making sure we have the correct client participants. Our objective is to follow the project schedule as closely as possible providing there are no significant scheduling challenges or changes in project scope. 4 Schedule During the term of the project the Blackboard project team will guide the client team through a series of exercises focused on defining, designing and implementing a custom solution specific to your institutions application. The engagement begins with a series of requirements sessions that outline the process and capture applicable business rules and workflow. Next, the Blackboard consultants will design and develop the necessary technology and prepare for implementation. The exact timeline is jointly developed during the project initiation and requirements definition phases. 4.1 Project Timeline [Figure1. Solution Project Plan] Blackboard Inc. 2005 Page 10 of 11
4.2 Scheduling Requirements Blackboard Consulting s methodology assumes a certain level of effort from the customer team. Blackboard has found that this immersion is necessary to prepare customers for the ongoing demands of supporting new technology. The following table is intended to aid you in planning for this project. The specific client participants and schedule will be defined during the Project Initiation phase. Please note: Blackboard consulting resources are available on a first come first serve basis and will be assigned shortly after agreement on proposed work and signature of a Statement of Work. 4.3 Client Participants Project Task Roles Required Executive Sponsor System Administrator Requirements Definition Project Manager Functional area subject matter expert(s) Design and Development Project Manager Functional area subject matter expert(s) Quality Assurance Project Manager Functional area subject System Administrator matter expert(s) Certification Training Project Manager System Administrator Deployment Project Manager System Administrator Network Administrator Security Manager Project Closure Executive Sponsor Project Manager 5 Conclusion Blackboard Inc. and Blackboard Consulting appreciate your interest in working with our skilled team of technology experts. We believe the aforementioned proposal and estimate will meet the needs of the client by providing the necessary insight and training towards development of your custom solution. Blackboard Inc. 2005 Page 11 of 11