20 September 2010. Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Life Cycle Requirements analysis System design Program design Program implementation (coding) Unit testing Integration testing System testing.
Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Systems Analysis and Design in a Changing World, 6th Edition
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Unit 1, Lesson 4 Software Development Cycle AOIT Introduction to Programming Copyright © 2009–2012 National Academy Foundation. All rights reserved.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
SYSC System Analysis and Design
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 2004.
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
22 September Fundamental Steps STEPS  Requirements  Design  Implementation  Integration  Test  Deployment  Maintenance MODELS Waterfall.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
1 MPA Core 2006 Joan Bantz The Evergreen State College TONIGHT’S TOPIC Joan Bantz, Member of the Faculty The Evergreen State College January 2005 MPA “Doing.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
CHAPTER 17 Building Software to Support an Agile Organization
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Software engineering Process models Pavel Agejkin.
1 CMPT 275 Software Engineering Software life cycle.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
Transforming Organizations
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Object Oriented Analysis and Design Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
Outline Causes and effects of conflict Personality types
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
24 January Software Engineering Processes Risk Management.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS223: Software Engineering Lecture 5: Software Development Models.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering Overview 23 January. Software Engineering Overview What is engineering? Why is software engineering different than other engineering.
People and Teams Design.  For me ◦ Team meetings ◦ Next week’s demos  For client ◦ Your responsibility to schedule ◦ Can invite to next week’s presentation.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
11 ADM2372 Management Information Systems (MIS) Chapter 10 – Part I Systems Development Chapter 10 – Part I Systems Development.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development.
Process 4 Hours.
Methodologies and Algorithms
People.
Appendix B Agile Methodologies
Software Engineering Processes
Software Processes (a)
Systems Analysis and Design in a Changing World, 6th Edition
Software Process Models
Software Processes.
Process Models Coming up: Prescriptive Models.
Software Process Models
Software Development Overview
Presentation transcript:

20 September 2010

Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on a particular piece of software, what would you want to know about it? that the person who wrote it was “both highly intelligent and possessed by an extremely rigorous, almost fanatical desire to make their program work the way it should.” Terry Bollinger (2001)

 People are primary  Goal-driven human processes are self- healing Rule-driven processes are fragile  Public communication  Space Cave and Commons ○ Stewart Brand, How Buildings Learn Peopleware DeMarco and Lister

Knowledge Workers …  prefer closed offices but communicate better in open ones  congregate in particular geographical areas  move around in the course of their work  collaborate  concentrate  work in the office  communicate with people who are close by  don't care about facilities gewgaws Davenport, Why Office Design Matters 2005Why Office Design Matters FUNDAMENTAL CONFLICTS

 Forming - polite but untrusting  Storming - testing others  Norming - valuing other types  Performing - flexibility from trust  Adjourning - disengagement Tuckman Team Stages Tuckman, Bruce. (1965). Developmental sequence in small groups. Psychological bulletin, 63, Developmental sequence in small groups.

 Core Competency: problem-solving ability  Personal Attributes  Openness  Supportiveness  Action orientation  Positive personal style Good Team Member

 Constructive: for all team members  Productive: brings out the best thinking in all team members  Mutual Understanding: seeking to understand others’ perspectives  Self Corrective Positive Team Relationships

 Focus ◦ clear about what you are doing  Climate ◦ positive ◦ inclusive ◦ focus on the issue…not the person  Open Communication Issues identified, discussed, prioritized and acted on Effective Team Problem Solving

 Collaborator ◦ Works to find a solution that satisfies all concerns  Accommodator ◦ Neglects own concerns to satisfy others  Compromiser ◦ Tries to satisfy others without giving up own concerns  Competitor ◦ Pursues own concerns at other’s expense  Avoider ◦ Evades the situation and never addresses Styles in Conflict Resolution

 Larson and LaFasto Teamwork: What Must Go Right/What Can Go Wrong When Teams Work Best ○ Accumulated information from 600 teams Additional Reference

Fundamental Steps  Requirements  Design  Implementation  Integration  Test  Deployment  Maintenance

Processes  Differ by how often you do the steps Points on the spectrum Differences in overhead  Three fundamental processes Waterfall Spiral Iterative

Waterfall  Do it once  Traditional model  Used for large next version releases, especially when tightly coupled changes

Waterfall  1970s  Built on 1950’s stage-wise process  Recognized the need for feedback Limited Heavy process

Waterfall  Pros Simple documentation management Clean design phase  Cons Least flexibility No early feedback

Iterative (a.k.a. Agile)  Many iterations  Each iteration is on a fixed cycle Typically biweekly  Used for projects with lots of small independent, but well understood, changes

Iterative  Reaction to waterfall  Derived from “evolutionary” process Requirements and specs evolve over time  Two well-known models (will look at later) Extreme programming SCRUM

Iterative (a.k.a. Agile)  Pros Fast feedback on problems Very adaptable to any changes Lots of versions to work with Heavy user involvement  Cons Document maintenance Code maintenance Requires good automation

Spiral  Few iterations  Each iteration adds new requirements  Used often for projects with less well defined requirements

Spiral  Risk based  Barry Boehm 1988  “A Spiral Model of Software Development and Enhancement”

Spiral  Pros Adaptation to changes based on risks Good customer interaction Early version Limited iterations provide phase structure  Cons Document maintenance

Unified Process  Variant of Spiral  Identifies that iterations differ  Also known as Rational Unified Process (Rational products) Rational Unified Process