Best Practices, Process



Similar documents
Nova Software Quality Assurance Process

Peer Review Process Description

Peer Review Process Description

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

Software Quality Assurance Software Inspections and Reviews

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Effective Peer Reviews: Role in Quality

(Refer Slide Time: 01:52)

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

Introduction to Software Engineering. 8. Software Quality

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

1. Introduction. Annex 7 Software Project Audit Process

Advanced Software Engineering. Software Development Processes

Tools for Managing and Measuring the Value of Big Data Projects

Software Project Audit Process

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Smarter Balanced Assessment Consortium. Recommendation

Custom Software Development Approach

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

ICAgile Learning Roadmap Agile Testing Track

Software Development Processes. Software Life-Cycle Models

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Measurement Information Model

Data Quality Assessment. Approach

Presentation: 1.1 Introduction to Software Testing

Software Requirements, Third Edition

Project Quality Planning

Basic Testing Concepts and Terminology

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Test Plan (a Real Sample) SoftwareTestingHelp.com Live Project Training - OrangeHRM

Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur

Development Methodologies Compared

FSW QA Testing Levels Definitions

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

Fundamentals of Measurements

EXHIBIT L. Application Development Processes

MKS Integrity & CMMI. July, 2007

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Rapid Software Development

Do you know? "7 Practices" for a Reliable Requirements Management. by Software Process Engineering Inc. translated by Sparx Systems Japan Co., Ltd.

TDWI strives to provide course books that are content-rich and that serve as useful reference documents after a class has ended.

This is the software system proposal document for the <name of the project> project sponsored by <name of sponsor>.

How To Design A Website For The Elderly

Data Migration through an Information Development Approach An Executive Overview

Best Practices for Adopting Visualization Into Your Software Process. Mitch Bishop Johann Mendoza

Basic Trends of Modern Software Development

PROJECT MANAGEMENT PLAN Outline VERSION 0.0 STATUS: OUTLINE DATE:

Testing Rails. by Josh Steiner. thoughtbot

Quality Assurance: Early Work Items

Terrace Consulting Services

Steve Masters (SEI) SEPG North America March Carnegie Mellon University

Requirements-Based Testing: Encourage Collaboration Through Traceability

Software Engineering. What is a system?

Software testing. Objectives

Points of Defect Creation

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring

A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Overview.

UNIT 2: CRITICAL THINKING IN GAME DESIGN

SECTION 4 TESTING & QUALITY CONTROL

LEAN AGILE POCKET GUIDE

Learning outcomes. Systems Engineering. Software Quality Management. Product reflects Process. Lecture 5. Introduction to Software Quality Management

Revision History Revision Date Changes Initial version published to

Getting Started with Kanban Paul Klipp

JOURNAL OF OBJECT TECHNOLOGY

Applying a User-Centered Design Approach to Data Management: Paper and Computer Testing. Jeffrey R. Wilson, Ph.D. Pearson.

Latest Trends in Testing. Ajay K Chhokra

15 Principles of Project Management Success

SOFTWARE QUALITY - QUALITY COMPONENTS SOFTWARE ENGINEERING SOFTWARE QUALITY THE QUALITY SYSTEM. THE QUALITY SYSTEM (cont d)

Software Engineering Reference Framework

Process Improvement. Objectives

Custom Web Development Guidelines

How to Implement MDM in 12 Weeks

Suunto 2.0 web - Quality Assurance Plan

Business Analysis Capability Assessment

Positive Train Control (PTC) Program Management Plan

Program Lifecycle Methodology Version 1.7

The Quality Assurance Centre of Excellence

Spiel. Connect to people by sharing stories through your favorite discoveries

Partnering for Project Success: Project Manager and Business Analyst Collaboration

How To Improve Software Quality

Anatomy of an Enterprise Software Delivery Project

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

Establishing your Automation Development Lifecycle

Reduce QA Cost by Improving Productivity & Test Optimization

AGILE ANALYSIS AVOIDING PARALYSIS: AN INTEGRATED FRAMEWORK FOR RESPONSIVE PROJECT ANALYSIS 1

Sound Transit Internal Audit Report - No

Develop Project Charter. Develop Project Management Plan

Serena Dimensions CM. Develop your enterprise applications collaboratively securely and efficiently SOLUTION BRIEF

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

ISTQB Certified Tester. Foundation Level. Sample Exam 1

Story Card Based Agile Software Development

Three Fundamental Techniques To Maximize the Value of Your Enterprise Data

STSG Methodologies and Support Structure

How to Write Procedures to Increase Control. Why are you developing policies and procedures in the first place? Common answers include to:

Business Continuity Position Description

Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008

Table of Contents PERFORMANCE REVIEWS STRATEGIC REVIEWS

Certified Software Quality Engineer (CSQE) Body of Knowledge

Some Critical Success Factors for Industrial/Academic Collaboration in Empirical Software Engineering

Transcription:

Best Practices, Process Nathaniel Osgood MIT 15.879 May 16, 2012

Recall: Process Suggestions Use discovery of bugs & oversights to find opportunities to improve Q & A and broader modeling process Use peer reviews (& especially inspections) to review Preliminary design/code/tests Use tools for version control & documentation & referential integrity Rigorous versioning Document linkages between artifacts Keep careful track of experiments Strive for ongoing process improvement Use focused prototypes where appropriate Perform simple tests to verify functionality Integrate with others work frequently & in small steps

Generate Documentation

Selecting Documentation Output

Example Documentation

Incremental Delivery

Best Advice: Start Simple! It is easy to get lost in these models Focus on building up the models incrementally, as insights arise Innovate off of simple examples Avoid the temptation of the big bang project

Some Benefits of Incremental Delivery Morale: Get products soon Discover problems sooner Flexibility to change direction in way that reflects new knowledge & understanding Easier to estimate time required for next deliverable Can better handle slower progress or unexpected schedule limits: At least get some value from dev. Get more insight about what to do by tangibly working with a produced artifact Can avoid gilding the lily by heading off unnecessary development

Continuous Integration

Continuous Integration Continuous integration involves ongoing integration of different people s contributions to an underlying artifact This is in contrast to the traditional big bang approach of integrating all elements at once Continuous integration is conceptually different from but helps support incremental delivery

Continuous Integration: Advantages Cooperation: Greatly reduces integration headaches Reduced likelihood of merge conflicts Easier, less wasteful to fix if conflict occurs Allows bigger teams to function nimbly Quicker identification of problematic modifications & bugs Helps identify state of project via smoke tests, availability of executable Improved estimation, flexibility for shipping Feedback: Reduces need for status reports, polling Automated build validation test (BVT) scripts Improves team morale Helps force fixing bugs before continuing

Managing Process Complexity

Process Complexity: A Barrier to Quality ABM Modeling Medium+ scale ABM projects generate a large # & diversity & versions of related artefacts Careful coordination of these artefacts is important for ensuring quality insights Efficient coordination is important for productivity Existing tools offer limited support for such coordination Difficulties limit what can be accomplished

Common Elements of the MP Creation of a modeling project Successive model versions are created for that project Each version is evaluated wrt a scenario set Each scenario is motivated by some intention This frequently includes a baseline and alternative scenarios Frequently the set of scenarios exhibits some systematic structure Results are analyzed (often in external docs) There is a frequent need to share access to these artifacts Department of Computer Science

Important Gaps in Software Support Model version control Rollback Comparison with earlier versions Ability to collaborate on shared artifacts Communication of artifacts across machine/institutional boundaries Reification of structured scenario collections Department of Computer Science Lack of explicit links & referential integrity b/t Versions & scenarios Conceptually linked versions Metadata & data Motivation for creating scenario collection & scenario outputs Artifacts & docs on intentions for producing them Definition of scenario & output Output & analysis documents Distributed evaluation of large scenario sets

Why the Gaps Matter Process transparency Risk of modeling errors Client confidence Speed of learning Modeling efficiency Practical limits on project scope Department of Computer Science

Risk-Driven Testing

Testing: Not Just Finding Bugs Identifying other quality problems Design departures from requirements Usability problems (particular power users) Should focus on important bugs Give immediate feedback on rough quality Broad look at entire system Identify usability issues early thru test design Using different bug identifications than skills than developers Effective reporting critical

JUnit Tie-ins Tools like Junit can be used to do some testing against AnyLogic models Broad AnyLogic testing is made mor challenging by need to create appropriate test harnesses for testing extensions of AnyLogic classes Suggestion: Create alternative experiments for focused testing Create alternative startup logic in Main that calls testingspecific methods

Prototypes

Some suggestions on Prototypes Try adding in detail in experimental (throwaway) prototypes before commit to it Prototype two ways of approaching something This takes time, but may save more time

Prototypes Not Just for the UI! Engineering mockups critical in other domains (e.g. construction) Identify relationships between components Identify risks Identify potential engineering savings from design changes Understanding interfaces between components Understanding testing priorities

Prototypes Minimal mockups to test (grouped) ideas Examine key issues w/o assumption that using this approach Risk analysis e.g. Prototype most challenging or highest priority questions Pick best idea from each affinity group for prototyping Prototype each affinity group Should be for throw-away use do not to use code Later use should be driven by open issues & decision making needs

Peer Reviews & Inspections

Reviews: Why? More cost-effective than testing IBM found 3.5 hours/error for inspection removal vs. 15-25 hours/error for testing Easily pay for themselves ( Quality is Free ) More flexible than testing Need not wait for executable code Can perform at all stages of software engineering process Can be done early in the development of a component Can assess communications issues (clarity, style, commenting, etc.)

Importance of Early Reviews Requirements Early artifacts have disproportionate impact on development process Marketing documents UI design Design Unit implementation Unit testing

Other Benefits of Peer Reviews To Person reviewing the artifact (Clarify understanding, learn coding tricks, stylistic ideas) Person whose artifact is being reviewed Improving technique, learn Broader culture Spread of knowledge about code base Spread of knowledge of standards, coding styles Code written with other people in mind

Good Points for Peer Reviews Wiegers, Peer Reviews in Software

Guidelines for reviews Keep impersonal: Focus on artifact, not people Keep review team small (3-7 participants) Try to identify -- but not solve -- problems during review Limit meeting to no more than 2 hours Require advanced preparation for formal reviews Be sensitive to cultural and human components Prioritize focus for more major issues

Inspection: Best Practices (Wiegers) Plan inspections to address project & inspection objectives Inspect upstream documents first Begin inspect documents early in their lives Check against source and related documents Prepare & inspect at your organization's optimum rates Focus on major defects Measure your benefits from inspections Emphasize defect prevention and process improvement Use serious, quantitative entry and exit conditions

Stages: Planning Participants review material on own before meeting Moderator assigned at this point Author contributes objectives for inspection Based on historic data moderator estimates # of meetings required to do reviews of desired scope Moderator Invites participants Helps author prepare package of materials for inspections Distributes package to participants several days ahead of time

Stages: Overview Often a separate meeting Author more informally describes perspective on product Sometimes the inspection package is distributed during this meeting Sometimes skip if Participants already familiar with product Overview can be described in package

Stages: Preparation Most preparation centers around inspection package The deliverable to be inspected Standards/Requirements/Specifications Typo list/individual issue log Work aids to help identify defects (e.g. Common defects for this sort of deliverable) Test documentation to verify this deliverable

Stages: Meeting 1 Deliverables "inspection summary report (moderator) Work product appraisal Information to communicate to mgmt, etc. "issues log Indication of what changes are needed to complete inspection process May stop inspection if identified errors are too serious to make it worth it to continue

Meeting Participant Roles Author (shares perspective) Moderator: leads process Reader: presents pieces of code (and perspectives on) to inspectors Can help cataylze shared understanding by inspectors Inspectors: (any participant, including those assigned to other roles) Can critique code Can identify possible issues where errors Recorder: Documents issues Typically 3-4 participants

Stages: Rework Author addresses most items in issues log Sometimes issue log items get assigned to others Sometimes just log defects in defect control system to be followed up later Result Updated work product Annotated issue log indicating resolution for each item

Stages: Followup Often with moderator as "verifier" (moderator decides when process is over) Verifier confirms that changes have been successfully made Baselining of changed deliverable into SCCS

Stages: Causal analysis This basically uses inspection process to improve The development process The inspection process Focus on process improvement and not on people Try to identify root cause of defects E.g. Ambiguous explanations in requirements, design specs, inconsistent naming conventions