|
1
|
- Quality Reviews and Documentation Best Practices
- Matthew Malcheski
- Associate Partner
- (presented by Shaun O’Brien)
|
|
2
|
- 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
|
- This presentation will discuss the following topics:
- Structured Project Lifecycle Overview
- Construction Phase
- Testing Strategy
- Deployment Strategy
|
|
4
|
- 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
|
- 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
|
- Standards - the main benefit of using standards is that the whole
product looks consistent and uniform rather than a patchwork of
mismatched objects
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- 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
|
- These review processes shall focus on the following items:
- Coding Documentation
- Coding Standards
- General Code Readability
- Implementation Documentation
- Naming Standards
|
|
15
|
|
|
16
|
- 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
|
- 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
|
- 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 - 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 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 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 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 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 - several tasks are performed which aim at ensuring
a successful transition to the production system
- High-Level Deployment Plan
- Definition of User Community
- Documentation
- Training
- Client Sign-off
- Post-production Support
|
|
25
|
|
|
26
|
|
|
27
|
- 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 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
|
- 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
|
- Change Requests
- Checklists
- Code Reviews
- Data Model Documentation
- Design Documents
- Disaster Recovery
- Documentation (System, Application, Database)
|
|
31
|
- Escalation Process
- Exception / Error Handling
- Knowledge Base
- Methodology for everything
- Monitoring Tools
- Patch to latest release
- Patching Process
|
|
32
|
- Peer Reviews
- Quality Reviews
- Requirements Gathering
- Reusable Components
- Scope Changes
- Script Libraries
- Security Methodology
|
|
33
|
- Software Control Management
- Standards (Development, DBA, Database Design)
- Toolkits
- Track all changes/requests
|
|
34
|
- Upgrade Process
- Use Cases
- Use latest software available
- Version Control
|
|
35
|
- 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
|
|
|
37
|
- 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
|
- 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
|
- Author: malcheskim@tusc.com
- Phone: (800)755-TUSC
- This presentation will be available on the TUSC Web Site - www.tusc.com
|