Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Verification and Validation
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
Chapter 4 Quality Assurance in Context
The Relationship between Cost & Quality Submitted by: Haya A. El-Agha Submitted to: Eng. Hani Abu Amr.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Inspection (c) 2007 Mauro Pezzè & Michal Young Ch 18, slide 1 Photo credit jurvetson on Flickr.com; creative commons attribution license.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
1 Software Testing and Quality Assurance Lecture 2 Software Verification & Validation.
Overview Lesson 10,11 - Software Quality Assurance
Week 7: Requirements validation Structured walkthroughs Why have walkthroughs When to have walkthroughs Who participates What procedures are helpful Thoughtless.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
SE 555 Software Requirements & Specification Requirements Validation.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Why Software.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Quality Assurance
1 Software Inspections and Walkthroughs Author: A. Frank Ackerman Presented by Cynthia Johnson EEL6883.
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Software Inspections and Walkthroughs By. Adnan khan.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
SoITSSpecifications of IT systems? 1 Specifications of IT systems checking and validating Jens Bennedsen and Peter Gorm Larsen
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
RUP Implementation and Testing
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
1.  Describe an overall framework for project integration management ◦ RelatIion to the other project management knowledge areas and the project life.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
CHAPTER 9 INSPECTIONS AS AN UP-FRONT QUALITY TECHNIQUE
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Code Review.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
The Software Development Process
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
© Michael Crosby and Charles Sacker, 2001 Systematic Software Reviews Software reviews are a “quality improvement process for written material”.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1 540f07reviews9sep25 Pert and Reviews Reviews S&G Chapter 5.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
SQA COMPONENTS IN THE PROJECT LIFE CYCLE C HAPTER 8 Dr. Ahmad F. Shubita.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Software Testing and Quality Assurance Motivation and Review of Software Verification & Validation (2)
Software Reviews Ashima Wadhwa.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Quality Control and Quality Assurance: Introduction
CIS 375 Bruce R. Maxim UM-Dearborn
CSC 480 Software Engineering
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
Verification and Validation Unit Testing
Introduction to Project Management
Applied Software Project Management
QA Reviews Lecture # 6.
WALKTHROUGH and INSPECTION
Code Reviews Assignment Each team should perform a code review
Presentation transcript:

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software Project Management Reviews

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management When are reviews needed? A review is any activity in which a work product is distributed to reviewers who examine it and give feedback.  Reviews are useful not only for finding and eliminating defects, but also for gaining consensus among the project team, securing approval from stakeholders, and aiding in professional development for team members.  Reviews help teams find defects soon after they are injected making them cost less to fix than they would cost if they were found in test.  All work products in a software project should be either reviewed or tested. Software requirements specifications, schedules, design documents, code, test plans, test cases, and defect reports should all be reviewed.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management10 Error occurs Jan 13 Work proceeds at (say) 10 person- days per month Error found Feb 13 Error found Mar person-days of work has been done assuming the error is not there. Now this must be redone. If error found this late, 20 person-days must be redone Work (person-days) Time 20  Early detection of errors

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management In practice Remember. Inexperienced programmers do not believe this logic. Experienced programmer can learn this logic by harsh experience.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management The ugly truth Review force programmers to show its work to others, once they know they need to show it they will do things with effort, cares, and most importantly, honor. Programmers may want to hide something When you ask their progress, they will always say “I have complete 50%” blah..blah..blah. A review prevent such inaccuracy. Most importantly, you get to correct the serious flaws before they are carried to later stage and made into code.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Progress? Software is invisible Unlike many other engineering disciplines, progress is visible or measurable.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Manager v.s. Programmers Programmers want freedom and buffer: when you assign him a task, he may think if can finish few days before the deadline Programmers are often too over optimistic As a manager, you simply cannot allow such uncertainty in your project. Review is the answer

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Inspections Inspections are moderated meetings in which reviewers list all issues and defects they have found in the document and log them so that they can be addressed by the author. The goal of the inspection is to repair all of the defects so that everyone on the inspection team can approve the work product.  Commonly inspected work products include software requirements specifications and test plans.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Targets for review and inspection Requirements Schedule Design Test plan Source code ……

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Inspections Running an inspection meeting: 1.A work product is selected for review and a team is gathered for an inspection meeting to review the work product. 2.A moderator is chosen to moderate the meeting. 3.Each inspector prepares for the meeting by reading the work product and noting each defect. 4.In an inspection, a defect is any part of the work product that will keep an inspector from approving it. 5.Discussion is focused on each defect, and coming up with a specific resolution. It’s the job of the inspection team to do more than just identify the problems; they must also come up with the solutions. 6.The moderator compiles all of the defect resolutions into an inspection log

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Inspection Log Example

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Review Log In a more formal software development environment  You want the review result to be logged.  In the future, check if the solutions in this review is corrected.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Recall the project management law When a documents or a delivery is produced and there is no one to review it. -> Something is wrong!

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Deskchecks A deskcheck is a simple review in which the author of a work product distributes it to one or more reviewers.  The author sends a copy of the work product to selected project team members. The team members read it, and then write up defects and comments to send back to the author.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Deskchecks Unlike an inspection, a deskcheck does not produce written logs which can be archived with the document for later reference. Deskchecks can be used as predecessors to inspections.  In many cases, having an author of a work product pass his work to a peer for an informal review will significantly reduce the amount of effort involved in the inspection.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Walkthroughs A walkthrough is an informal way of presenting a technical document in a meeting.  Unlike other kinds of reviews, the author runs the walkthrough: calling the meeting, inviting the reviewers, soliciting comments and ensuring that everyone present understands the work product.  Walkthroughs are used when the author of a work product needs to take into account the perspective of someone who does not have the technical expertise to review the document.  After the meeting, the author should follow up with individual attendees who may have had additional information or insights. The document should then be corrected to reflect any issues that were raised.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management The Purpose of walkthroughs Find anomalies Improve the software product Consider alternative implementations Evaluate the conformance to standards and specifications

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Code Review A code review is a special kind of inspection in which the team examines a sample of code and fixes any defects in it.  In a code review, a defect is a block of code which does not properly implement its requirements, which does not function as the programmer intended, or which is not incorrect but could be improved For example, it could be made more readable or its performance could be improved

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Intuitive misunderstanding of code inspection Code inspections are a highly efficient test method which can not be substituted by any other test methods. It is time consuming but according to statistics it will find up to 90% of the contained errors, if done properly. However it all depends on the methods and checks applied and on the diligence of the inspectors. It must not be confused with the so called "code review" or "walk through" which is usually done in a single meeting lasting for a couple of hours. A proper code inspection may take several days and needs the help of tools to browse the symbols in order to find the places where they are used. The code review can be used in addition to e.g. to generated acceptance of a software package by the integrators, but it must not be a substitute for a proper inspection. Proper inspections can be applied for almost all work products in the software life cycle. At the first glance they may look very time consuming. But statistical evaluations have shown that over the whole life cycle of the software development they even save resources and thus money and improve the quality of the product.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Code inspection

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Six elements to check in an inspection

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Code Review  It’s important to review the code which is most likely to have defects. This will generally be the most complex, tricky or involved code.  Good candidates for code review include: A portion of the software that only one person has the expertise to maintain Code that implements a highly abstract or tricky algorithm An object, library or API that is particularly difficult to work with Code written by someone who is inexperienced or has not written that kind of code before, or written in an unfamiliar language Code which employs a new programming technique An area of the code that will be especially catastrophic if there are defects

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Pair Programming Pair programming is a technique in which two programmers work simultaneously at a single computer and continuously review each others’ work. Although many programmers were introduced to pair programming as a part of Extreme Programming, it is a practice that can be valuable in any development environment. Pair programming improves the organization by ensuring that at least two programmers are able to maintain any piece of the software.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Pair Programming Pair programming is an agile software development technique in which two programmers work together at one work station. One types in code while the other reviews each line of code as it is typed in. The person typing is called the driver. The person reviewing the code is called the observer (or navigator [1] ). The two programmers switch roles frequently (possibly every 30 minutes or less).agile software developmentprogrammerscodereviews [1] While reviewing, the observer also considers the strategic direction of the work, coming up with ideas for improvements and likely future problems to address. This frees the driver to focus all of his or her attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Types of Review: Pair Programming In pair programming, two programmers sit at one computer to write code. Generally, one programmer will take control and write code, while the other watches and advises.  Some teams have found that pair programming works best for them if the pairs are constantly rotated; this helps diffuse the shared knowledge throughout the organization. Others prefer to pair a more junior person with a more senior for knowledge sharing. The project manager should not try to force pair programming on the team; it helps to introduce the change slowly, and where it will meet the least resistance.  It is difficult to implement pair programming in an organization where the programmers do not share the same nine-to-five (or ten- to-six) work schedule.  Some people do not work well in pairs, and some pairs do not work well together.