Software from Requirements Brent Haines April 12, 2007 Why Methodology Doesn’t Really Matter.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Lecture 2 Title: PLC, SDLC, PMBOK
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 4 Quality Assurance in Context
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Taking a Waterfall Project Agile REF: Paul Geberth GCSS-J Project Manager Establishment of an Agile Project.
Agile development By Sam Chamberlain. First a bit of history..
Rational Unified Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Validating and Improving Test-Case Effectiveness Author: Yuri Chernak Presenter: Lam, Man Tat.
Iterative development and The Unified process
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
COMP8130 and 4130Adrian Marshall 8130 and 4130 Test Management Adrian Marshall.
This work is licensed under a Creative Commons Attribution 3.0 Unported LicenseCreative Commons Attribution 3.0 Unported License (CC-BY). Project Management.
Software maintenance Managing the processes of system change.
Introduction to Agile.
Chapter 9 – Software Evolution and Maintenance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Larry Apke Agile Expert
Agile Programming Principles.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Engineering Management Lecture 1 The Software Process.
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.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
Agile: Lessons Learned (a retrospective) Tony
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
PRJ566 Project Planning & Management Software Architecture.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Software Requirements Specification. Requirements Specification: An Overview Basic goal: To understand the problem as perceived by the user. Activities.
Team Skill 3: Defining the System The Vision Document (16) 1.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 Requirements Engineering for Agile Methods Lecture # 41.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Agile Center of Excellence. Richard K Cheng Agile is just a high level concept.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
Testing Process Roman Yagodka ISS Test Leader.
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Agile Software Development Brian Moseley.
Extreme Programming.
Chapter 8 Software Evolution.
Presentation transcript:

Software from Requirements Brent Haines April 12, 2007 Why Methodology Doesn’t Really Matter

2 Requirements: Critical but wrong What is the “ultimate goal” of a Software Development project? Value for the End User  Whether the reward is monetary (profitable license fees) or intrinsic, we derive value from software that solves real problems for users in a quantifiable way. Identifying the “Real Problem” Defining the Market  The group of people who would derive the most value from your software.  May be quantified by the number of people, businesses who have the problem, or  May be quantified by the amount of money they will spend to solve it. Describing the “Real Problem” Stating the Requirements  Simply put, requirements are a description of the problem(s) that our software will solve.  May be at a very high level (i.e. 2 page list of features), or  May be described at a very detailed level (i.e. 60 page PRD). They are always WRONG. (Or alternatively; they are never completely correct)

3 Design from Requirements Software development invariably follows a common process:* Development Stages 1.Requirements 2.Design 3.Implementation 4.Test 5.Release Conclusions: 1.Software is designed to satisfy a set of Requirements 2.Most bugs are discovered after implementation 3.Requirements are the root source of software defects *Numbers used in this slide are based upon personal experience and do not reflect any commissioned study. Defect Introduction 60-70% 15-20% 10-15% 5-10% <5% Defect Discovery < 5% 5-10% 10-15% 15-50% 40-50% Cost of Remediation Low Medium High Extremely High

4 Why components matter Obsolescence Axiom: All actively developed software will become obsolete over time. “Actively developed” applies to software that is updated to meet new/changing reqs `Obsolescence can be measured by; 1. When it would cost more to revise existing software to the next spec’d release than it would to write to that spec from scratch. 2. When the number of defects introduced is greater than those addressed in a single release. Doomed from Start?  Requirements are always wrong.  Software is designed from requirements  Actively developed software always become obsolete Components  Software becomes obsolete at different rates (usually correlated to the rate of change in or complexity of requirements).  Components isolate software related to function so that it can mature independently  Strong boundaries gives us the ability to redefine / replace function  Loose coupling gives us the ability to remove or control dependencies

5 A case for methodologies Methodologies Provide; Uniform practices that guide development teams Gates or reviews that are designed to catch inadequacies or defects Common metrics for measuring the results of processes within the methodology Standard language for describing and communicating requirements, tasks, and results Framework for providing predictable results Regardless of Specific Methodology, Specific Focus Should be on: People and Interactions, not Processes for the Process’s Sake Creating Working Software, not Documentation Describing it Solving Customer Problems, rather than Satisfying a Contract or Spec

6 Product Vision Product Roadmap Release Plan Iteration Plan Why methodology doesn’t matter Requirements are the Key Even under Agile methodologies…  Product Vision is defined Annually  Product Roadmap is defined bi-Annually  Release plans are defined Quarterly  Iterations plans are defined bi-Weekly Daily Plan

7 Product Vision Product Roadmap Release Plan Iteration Plan Why methodology doesn’t matter Requirements are the Key Even under Agile methodologies…  Product Vision is defined Annually  Product Roadmap is defined bi-Annually  Release plans are defined Quarterly  Iterations plans are defined bi-Weekly Requirements are changing constantly  Product Vision is interpreted broadly and that interpretation changes throughout the year  Product Roadmap will change to reflect new priorities  Release Plans change in response to roadmap changes Daily Plan

8 Why Quarterly Releases Don’t Work Enterprise Software CANNOT Be Released Quarterly for Real Reasons: Customer Churn  Enterprise adoption is expensive (includes planning, testing, analysis,etc) Collateral  Technical publications  Training material and curriculum  Support and Professional Services training Expense  The increase of cost for each new supported version increases geometrically  Support for extensions and customizations becomes untenable  Upgrade paths are impossible to predict and comprehensively test

9 Putting it to Practice Architecture Addresses Product Vision (and beyond) Updated bi-Annually to Annually Defines Components that answer roadmap and vision themes NOTE: Components are not “steps” Communicate key assumptions and risks to product owners Components Designed around a release plan Boundaries (APIs) and dependencies carefully defined and revied Implemented in shorter cycles Independently tested Integrated as part of a product release Communicate key design assumptions, limitations and risks to product owners Implementation / Fulfillment Just get it done Use the “right stuff”: Tools and Languages Protect Core Competency: Implement differentiating functionality, license everything else. Long term plans and designs (one to four year plans, updated annually) Traditional development and review works well API / Dependency definition are medium term efforts (half-year to one year revisions) Implementation is rapid (quarterly efforts at most)

10 Metrics that matter Obsolescence Metrics Value Check [at beginning of at least every other release] (t rewrite – t revision ) / t revision t rewrite is the effort needed to complete a rewrite of the component t revision is the effort needed to perform the proposed revision TARGET: We want a large positive number. Negative numbers or numbers approaching zero indicate that a redesign and rewrite are in order Convergence Check [before every proposed release] (bugs current – bugs previous ) / bugs previous bugs current is the number of bugs sourced to the latest release bugs previous is the number of bugs sourced to the previous release TARGET: We want a small or negative number, indicating that our defect rate is predictable NOTE: The bug count for each release needs to be normalized for scope or duration of project. Efficiency Ratio [after every release] Resources / AverageComplexity Resources the number of man-weeks (or other unit of work) needed to complete the release AverageComplexity each task/iteration in the release is rated 1-5 in terms of complexity. This is the average TARGET: We want the smallest number we can achieve. The number should stay level from release to release