Globally Distributed Development The Role of Software Processes in DSD DSD Team.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Iteration Planning.
Prescriptive Process models
The Role of Software Processes in DSD
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
Software Process Models
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
CS487 Software Engineering Omar Aldawud
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
INFO415 Approaches to System Development: Part 1
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Distributed Software Development Course Review. Outline Characteristics and risks of DSD Role of software engineering Process: coordinating work Requirements:
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
The Role of Software Processes in DSD DSD Team. Outline Review: usefulness of software processes Fitting processes to development problems Choosing a.
Project Planning and Synchronizing Using Reviews
Managing Software Requirements in DSD
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
Object-oriented Analysis and Design
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
Introduction to Distributed Software Development DSD Team.
SE 555 Software Requirements & Specification Requirements Validation.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
CSC230 Software Design (Engineering)
Software Architecture for DSD The “Uses” Relation.
COMPGZ07 Project Management Presentations Graham Collins, UCL
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Identify steps for understanding and solving the
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
1 Activities covered by project management Feasibility study Is project technically feasible and worthwhile from a business point of view? Planning Only.
Lecture 7: Requirements Engineering
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,
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Chapter 4 프로세스 모델 Process Models
Lecture 2 –Approaches to Systems Development Method 10/9/15 1.
Project Management Inspections and Reviews 1 February.
Software Engineering Lecture # 1.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Software Project Management Iterative Model & Spiral Model.
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Introduction to Distributed Software Development DSD Team.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
SOFTWARE DEVELOPMENT Presented By : Emporiumtech This presentation is brought you by
The Software Lifecycle Stuart Faulk. Definition Software Life Cycle: evolution of a software development effort from concept to retirement Life Cycle.
The Role of Software Processes in DSD DSD Team. Outline Review: usefulness of software processes Fitting processes to development problems Choosing a.
Introduction to Systems Analysis and Design
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
CS 5150 Software Engineering
Software Development Life Cycle
Summarizing Our Models to Date
Software life cycle models
Scrum in Action.
Presentation transcript:

Globally Distributed Development The Role of Software Processes in DSD DSD Team

Globally Distributed Development Outline Lecture: software process Review: usefulness of software processes Fitting processes to development problems Considerations in choosing an effective process Implementing a process in a project plan Exercise: Which process best fits the goals, problems, and constraints of DSD? Team Exercise: First Contact 2

Globally Distributed Development We need a plan... 3 How long? With what resources? In what order? Who does what? How do they coordinate? What about changes?

Globally Distributed Development Questions We Encounter What do my clients want? What do they need? How long would it take? With what resources? Oops, something changed... now what? Are we there yet? How much longer? How can we share this work? How can we coordinate? How did we do? How could we do better? 4

Globally Distributed Development Addressed by Software Processes Developed as a tool for controlling complex software developments Answers the “who”, “what”, “when”, etc. questions What product should we work on next? What kind of person should do the work? What information is needed to do the work? When is the work finished? Intended use Guidance to developers in what to produce and when to produce it Basis for planning and assessing development progress But, … different types of developments need different processes i.e., different processes answer the questions diffrently 5

Globally Distributed Development Characteristic Processes: The Waterfall Model Process viewed as a sequential set of activities Imposes separation of concerns on software development activities What is a fundamental assumption of this model? 6

Globally Distributed Development Characteristic processes: The Spiral Model Process viewed as repeating cycles of increasing scale Identify risks & values & determine (next set of) requirements, build next version by extension, increasing scale each time Early iterations may be prototypes Key concept: Risk control 7

Globally Distributed Development Characteristic processes: Iterative development Process viewed as a sequence of iterations, each building on the last Build minimal useful subset, test, release, build next version by extension Early iterations may be prototypes 8 IBM Question: How does this differ from the spiral model?

Globally Distributed Development Characteristic Processes: Agile (scrum) Process viewed as nested sequence of builds (sprints) Each build adds small feature set Customer in loop, code centered (little or no documentation) Problem detection and correction though daily team meetings (scrum) 9

Globally Distributed Development Formal Definition Need a consistent of representing and communicating about processes Defn: we define a process as set of artifacts, activities, roles and the relationships between them* where: Artifact: any work product of the software development process (requirements specifications, design documents, code, etc.) Activities: the tasks that produce the work products (requirements analysis, design, coding) Roles: responsibility for performing specific activities (requirements analyst, software architect, coder) Relationships: the relations between artifacts, activities, and roles that structure the process (precedes, responsible-for) Intuitively: roles produce artifacts by performing activities A coder is responsible for implementing module code as part of coding A tester is responsible for writing test cases as part of verification 10 *Memorize

Globally Distributed Development Process Definition Graphic 11 Roles: who does the work? Artifacts: what is produced? Activities: how are tasks done? Relationships

Globally Distributed Development How do processes vary? Content: processes vary in the specific activities performed, artifacts produced, roles required, and the relationships between these, for example: Which specific activities are performed Which role performs which activities Formality: processes vary in how detailed, complex, and prescriptive they are How much detail is defined on the activities, etc. How closely developers are required to follow the written process 12

Globally Distributed Development How do processes vary? Emphasis varies on artifacts, types of artifacts, rules governing activities, gating, roles, for example: Differ in form of requirements, design, test plan: Written document, conforming to standard template, reviewed by peers and users using standard review process, benchmarked and configuration controlled Notes on a web site Knowledge in the heads of the development team Differ in review procedures for documents and code: Formalized inspections with criteria for passing, e.g., Fagan inspections or active reviews Informal peer review meeting Officemate reads it over None 13

Globally Distributed Development Common Objectives Predictability Make a plan with estimates of time and resources » Even if the plan is “we can quit whenever we want” Visibility Check progress against the plan (De)composition Break the work down into work assignments that can be assigned to individuals; compose the parts into a working system 14

Globally Distributed Development Why do processes vary? Must understand this to deploy processes effectively Different processes reflect different assumptions about the developmental context and goals Context: project size, complexity, availability of stakeholders Goals: time-to-market, reliability, usability, maintainability, control of risk Primary risks: feasibility, cost, schedule, communication, etc. Process is something we can design to address project needs Must consider 1.What kind of process do we need: which kinds of activities, artifacts, etc. fit our goals and risks? 2.How much formality/complexity do we need? 15

Globally Distributed Development Process Formality and Project Scale As projects become more difficult to control, they typically require more formal and detailed processes I.e.., project complexity, size, duration, distributed, etc. Difficult for individual developers, or management to track the overall state of the development Difficult to keep track of who is supposed to be doing what (“Who do I talk to?”) Difficult to know when your job should be finished or what quality criteria it should satisfy A clear, well-defined process helps keep the project coordinated 16

Globally Distributed Development When Process Complexity & Project Complexity/Scale Mismatch But, there can be too much process as well Process is overhead Unnecessary process overhead leads to problems Developers feel frustrated “I want to write code, not documents” “I can’t understand what I’m supposed to do” “I’m afraid to touch this code” Progress is slowed “I have to wait for that other team to finish” “I have to wait for my code to be inspected” “We have an integration problem” 17

Globally Distributed Development Prof. Einstein says… 18

Globally Distributed Development Choosing a Process for DSD

Globally Distributed Development Process Development Can view process development like software development: Choose/create a process to address specific project needs and constraints Think in terms of requirements, design, etc. Must ask the questions: What are the key problems or risks of DSD? What features of a process would help addresses the risks of DSD? How much formality is needed? I.e., how much detail and specificity about the artifacts, activities, roles and relations? 20

Globally Distributed Development DSD Issues and Risks Key Problem: coordination at a distance i.e., the key difficulty is getting all the people involved to do the right task the right way at the right time Key risk factors: Restricted communication, flow of information Different organization, language, culture Lack of visibility into what remote teams are doing Potential difficulties: Different views of the problem (requirements) Different views of what the process is supposed to be Misunderstanding of what remote teams are doing Difficult to detect and correct problems Difficult to manage synchronize the work Difficult to detect and correct slips in schedule 21

Globally Distributed Development Team Exercise 22

Globally Distributed Development Exercise: Choose a process Assume that you are part of a small company doing distributed development Three teams of developers in USA, China, and Germany Teams are 8-10 people in mixed roles (some coders, testers, etc. at each site) Many team members have not worked together remotely before Discuss as a group (3-4 people) Each person must take turns contributing Decide on team answer Determine which kind of process would be the best fit for a DSD project and how formal Hint: think about what happens over time 23

Globally Distributed Development Summary Co-located vs. DSD Co-located Development Free flow of information through informal means Shared process view Clear ides of expertise, responsibility Common culture eases understanding Understand relationships People to tasks Task interdependencies DSD Risks* Restricted flow of information, mostly formal Possibly different process views Unclear idea of expertise, responsibility on remote teams Possible misunderstandings due to cultural/language differences Vague or incorrect understanding of relationships 24 *Standardizing the process helps mitigate these risks a people fill roles with well-defined responsibilities

Globally Distributed Development Which process? © S. Faulk Too much communication Assumes daily meetings replace written documents Too little communication Problems not detected until system generation

Globally Distributed Development DSD Issues and Risks Key Problem: coordination at a distance i.e., the key difficulty is getting all the people involved to do the right task the right way at the right time Key risk factors: Restricted communication, flow of information Different organization, language, culture Lack of visibility into what remote teams are doing Potential difficulties: Different views of the problem (requirements) Different views of what the process is supposed to be Misunderstanding of what remote teams are doing Difficult to detect and correct problems Difficult to manage synchronize the work Difficult to detect and correct slips in schedule 26

Globally Distributed Development Incremental Development Over Time Acts as a feedback loop with a calibration point at each delivery Allows cross checking of assumptions, understanding Early check if remote sites are doing what is expected Early check for communication effectiveness Allows plan adjustments at each increment 27 Time Deploy Integ. &Test Code Design Requirements Increment Deploy Integ. & Test Code Design Requirements Increment Deploy Integ. & Test Code Design Requirements Increment

Globally Distributed Development Well-defined Process Benefits Process should also be relatively formal Written down in detail Required for all of the distributed sites Well-defined process clearly specifies The artifacts to be produced The set of activates that must be performed (e.g., specify requirements, review design, write code) The set of roles (e.g., coder, tester, designer) The relationships Which roles perform which activities to produce which artifacts The order of activities Which artifacts are needed as input to produce which other artifacts 28

Globally Distributed Development Well-defined Process Benefits Helps address risks Everyone has common definition of the process Assigning roles clearly defines responsibilities Helps make clear what people should be working on Helps make clear when a task is finished Should answer for individuals the questions Is this my job? What do I do next? Am I done yet? Did I do a good job? However: not enough just to define the process, must check that people understand and follow it. 29

Globally Distributed Development Examples: Process Specs Release_06/Process Template Design Document.doc Release_06/GEN-001RevisionControl.html 30

Globally Distributed Development Questions? Break 31