Notes
Slide Show
Outline
1
ODTUG - 2005
  • Quality Reviews and Documentation Best Practices


  • Matthew Malcheski
  • Associate Partner
  • (presented by Shaun O’Brien)
2
Abstract
  • This presentation will cover everything that you need to know about performing quality, standards, code and documentation reviews. Examples will be given for each category and the key points will be discussed using a best practices approach. Focus will be placed on the construction, testing and deployment phases of a development lifecycle.
3
Agenda
  • This presentation will discuss the following topics:
    • Structured Project Lifecycle Overview
    • Construction Phase
    • Testing Strategy
    • Deployment Strategy
4
Structured Project Lifecycle Overview
  • Requirements Analysis - primary goal of this phase is to produce detailed, written specifications for the design, construction and deployment of systems that incorporate the functionality desired by the client
  • Design Analysis - during this phase, the high-level requirements gathered during the Requirements Analysis process are converted into actual detailed designs necessary for successful development
  • Construction - during this phase all database objects, application modules, user interfaces, batch procedures, interface systems and other components are developed to meet the specifications identified during the Design Analysis phase
5
Structured Project Lifecycle Overview
  • Testing - begins with the completion of the first piece of application code, the first data input screen or the first system report that is developed during the Construction phase, and includes Unit, Integration, System and Regression testing
      • Performance Tuning
      • Stress Testing
      • User Acceptance Testing
  • Deployment - several tasks are performed which aim at ensuring a successful transition to the production system, these tasks include: High-Level Deployment Plan, Definition of User Community, Documentation, Training, Client Sign-off and Post-production Support
6
Construction Phase
  • Standards - the main benefit of using standards is that the whole product looks consistent and uniform rather than a patchwork of mismatched objects
      • Development
      • DBA
  • Toolkits / Reusable Components - toolkits help development teams implement a consistent look and feel to their application, and also provide templates to expedite the development process
7
Construction Phase – Standards/Toolkits
  • Facilitate code maintenance
  • Reduce down time in the event of bugs/system problems
  • Reduce ramp-up time during consultant replacement due to reassignment or personal emergencies
  • Kick-start project using previously developed toolkits
  • Provide guidance to client developers.
8
Construction Phase – Standards
  • System Prefix
  • Source Code File Extensions
  • Copyrights
  • Schema Design Standards
  • Database Object Naming Conventions
  • PL/SQL Coding Standards
  • Oracle Forms Coding Standards
  • Oracle Graphics Coding Standards
  • Oracle Reports Coding Standards
  • Web Page Coding Standards
  • UNIX Shell Scripting Standards
  • Source Code Control
  • Standard Abbreviations
  • VB-Style Names
  • Sample Package 1
9
Construction Phase
  • Knowledge Capture / Best Practices - capturing project knowledge and transferring it into your knowledge management repository is the key objective of the Knowledge Capture process
  • Version Control - provides the methodology and tools to track changes to production versions of application systems
  • Version Control Checklist
      • Establish methodology and tools to manage changes to production versions of application systems
      • Provide effective communication of production system revisions to the client
      • Generate the necessary documentation and provide training, as required
10
Construction Phase
  • Change Control - manages changes to the individual program modules that are part of an application
  • Change Control Checklist
      • Select Change Control software to manage changes to application program modules
      • Define and maintain safe storage facility for all documents related to application modules, including
        • Requirements
        • Designs Specifications
        • Source Code
      • Make sure that all team members are aware of, and utilize, all change control procedures established for the project
11
Construction Phase
  • Quality Review Checklist
    • Establish an effective Quality Review process as an integral part of your Quality Strategy
    • Define tasks and deliverables for each phase of the Quality Assurance process
    • Ensure client acceptance by involving key client personnel in every step of the Quality Assurance process
    • Identify major Project Deliverables and gain formal approval for them from Executive Management
12
Construction Phase
  • Hardware Review - these activities are distributed over the following categories: database servers, application servers, client machines, network infrastructure, load test plan, and service level agreement
  • Hardware Review Checklist
    • Determine suitability of existing database/application servers and client machines. Identify bottlenecks.
    • Establish specifications for new servers and/or client-side hardware.
    • Review adequacy of network (LAN/WAN) infrastructure
    • Formulate system load test plan
    • Identify response time and backup/redundancy requirements
13
Construction Phase
  • Software / Code Review - provide an additional level of quality assurance by verifying that a module meets its specifications and performs as expected
    • Data Modeling Review Worksheet
    • Forms Review Worksheet
    • Java Class/Interface Review Worksheet
    • JSP Review Worksheet
    • PL/SQL Review Worksheet
    • Reports Review Worksheet
    • Script Review Worksheet

14
Construction Phase
  • These review processes shall focus on the following items:
    • Coding Documentation
    • Coding Standards
    • General Code Readability
    • Implementation Documentation
    • Naming Standards
15
Construction Phase
16
Construction Phase
  • Software Review Checklist
    • Conduct regular Software Reviews to ensure compliance with coding standards and early defect detection.
    • Define guidelines for code review format (interactive/independent) and review duration.
    • Define Software Review checkpoints during the Construction phase (see Quality Reviews)
    • Ensure that critical modules have passed the Software Review process before proceeding into the Testing phase.

17
Construction Phase
  • Architecture Review - determine the appropriateness of system design and assess the requirements for application bandwidth, batch processing, user access and hardware/software notification
  • Architecture Review Checklist
    • Validate the appropriateness of system design, including the use of multiple tiers, presentation services and application logic
    • Ensure adequate application bandwidth (determine system capacities/bottlenecks)
    • Allow for efficient system access to meet transactional and business intelligence requirements
    • Provide efficient notification system to meet critical system monitoring goals
18
Construction Phase
  • Security Review - a thorough review of system security is essential to ensure that the system adequately protects business information and provides authorized access to users consistent with the findings of the Requirements Analysis phase
  • Security Review Checklist
    • Ensure adequate security protection at the database and application server levels
    • Address security issues associated with application code design
    • Plan for comprehensive testing of security roles (responsibilities)
    • Review security systems at client-side hardware
  • Peer Reviews
19
Testing Strategy
  • Testing Strategy - the key components of an effective Testing Strategy are a comprehensive testing plan and a process for defect detection and tracking
      • Unit testing
      • Integration testing
      • Function Testing
      • System testing
      • Regression testing
      • User acceptance (Client validation)
      • Performance Tuning
      • Defect Tracking Process
20
Testing Strategy
  • Testing Review
    • The occurrence and the impact of risk can be reduced on a project by implementing testing review. Types of strategic risk associated with the development process can be:
      • Incorrect results will be produced.
      • Unauthorized transactions will be accepted by the system.
      • Data integrity will be lost.
21
Testing Strategy
  • Testing Review
      • Processing cannot be reconstructed.
      • Service to the customer will  be unacceptable
      • Security of the system will be compromised.
      • Processing will not comply with organizational policy or business rules.
      • System will be difficult to use
      • Performance levels will be unacceptable
22
Testing Strategy
  • Testing Checklist
    • Develop a comprehensive testing plan
    • Design an effective defect detection/tracking process
    • Select a tool to facilitate the process.
    • Formulate scenarios for unit, integration and system testing
    • Identify the requirements and appropriate tools to perform stress testing
23
Testing Strategy
  • Testing Checklist
    • All components of the Testing Plan have been executed as planned
    • All test scripts are completed and test results are documented
    • Performance tuning, stress testing and user acceptance testing have been completed
    • Execute testing plan, obtain user acceptance, and client has signed off on the successful completion of the Testing Plan
24
Deployment Strategy
  • Deployment Strategy - several tasks are performed which aim at ensuring a successful transition to the production system
      • High-Level Deployment Plan
      • Definition of User Community
      • Documentation
        • System
        • Application
      • Training
      • Client Sign-off
      • Post-production Support
25
Deployment Strategy
26
Deployment Strategy
27
Deployment Strategy
  • Deployment Checklist
    • Prior to completing the Deployment phase, project management must ensure the following:
    • Production system has been successfully deployed
    • Test system continues to function as a replica of production
    • User community has been properly identified and analyzed
28
Deployment Strategy
  • Deployment Checklist
    • Training sessions have been conducted and training manuals prepared, as necessary
    • Security system has been implemented and user privileges assigned
    • All required project documentation is complete
    • Client has signed off on project implementation
    • System has been established to provide post-production support
29
Things to think about from A - Z
  • Think about all aspects of a project from Requirements to Production Support
  • Auditing
  • Automate all that you can
  • Backup & Recovery
  • Best Practices
  • Change Control
30
Things to think about from A - Z
  • Change Requests
  • Checklists
  • Code Reviews
  • Data Model Documentation
  • Design Documents
  • Disaster Recovery
  • Documentation (System, Application, Database)
31
Things to think about from A - Z
  • Escalation Process
  • Exception / Error Handling
  • Knowledge Base
  • Methodology for everything
  • Monitoring Tools
  • Patch to latest release
  • Patching Process
32
Things to think about from A - Z
  • Peer Reviews
  • Quality Reviews
  • Requirements Gathering
  • Reusable Components
  • Scope Changes
  • Script Libraries
  • Security Methodology
33
Things to think about from A - Z
  • Software Control Management
  • Standards (Development, DBA, Database Design)
  • Toolkits
  • Track all changes/requests
34
Things to think about from A - Z
  • Upgrade Process
  • Use Cases
  • Use latest software available
  • Version Control
35
Summary
  • This presentation covered everything that you need to know about construction, testing and deployment phases of a development project. Specific emphasis was placed on performing quality, standards, code and documentation reviews.


36
Questions and Answers
37
Where to Get More Information
  • http://appsnet.oracle.com
  • http://metalink.oracle.com
  • http://oraclepartnernetwork.oracle.com
  • http://otn.oracle.com
  • http://tahiti.oracle.com
  • http://technet.oracle.com
  • http://www.google.com
  • http://www.ioug.org
  • http://www.orafaq.org
  • http://www.tusc.com
38
Special Thanks To…
  • Thank you to Bob Taylor, Janet Dahmen, Patrick Callahan and Randy Swanson for their contributions to this presentation.
  • Please report errors to TUSC.  Neither TUSC, Oracle or the author warrant that this document is error-free.
  • TUSC © 2004.  This document may not be copied or reproduced without the express written consent of TUSC.
39
Contact Information
  • Author: malcheskim@tusc.com
  • Phone:  (800)755-TUSC
  • This presentation will be available on the TUSC Web Site - www.tusc.com