SE-280 Dr. Mark L. Hornick 1 Process Adaptations.

Slides:



Advertisements
Similar presentations
Copyright © by Mark J. Sebern Software Engineering Process I Dr. Rob Hasker L-331, hasker (Adapted.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
SE-2800 Dr. Mark L. Hornick 1 SE-2800 Software Engineering Process Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick SE2800.
Introduction to Agile.
Sprint – Weekly cadence
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Adopting Agile for Enterprise Software Joe Bedell, Software Engineer Jason Breen, Software Engineer Peter Melko, Scrum Master June 15 th, 2015.
Team Launch Introduction. Real projects are large and complex, and most software is created by teams Merely throwing people together does not result in.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Agile Software Development Brian Link
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
What is Scrum Process? Where is it used? How is it better?
Current Trends in Systems Develpment
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Copyright © by Mark J. Sebern Software Engineering Process I SE Sprint Execution.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
SE-280 Dr. Mark L. Hornick Schedule Planning & Earned Value.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Extreme Programming.
Agile
Copyright © 2012 by Mark J. Sebern Scrum Overview (from
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Copyright © by Mark J. Sebern Software Engineering Process I SE 2800.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Software Process Models.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Barnes & Noble Alonda Morgan. Agile UX Agile.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Agile Methods SENG 301.
Manifesto for Agile Software Development
Software Development.
AGILE SCRUM METHODOLOGY
Scrum.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Approaches to Systems Development
Waterfall and Agile Quality Techniques
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
Johanna Rothman Agile Team Measurements Chapter 12
Summarizing Our Models to Date
Agile Development.
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

SE-280 Dr. Mark L. Hornick 1 Process Adaptations

“The process is your servant. If it does not help you, you must change it.” - Watts Humphrey No single "canned" software development process can meet the needs of all software engineers and their organizations.

…but you can’t modify a process until you have experience using one The objective is for software engineers, and especially teams, to define and improve their own processes. However, it is very difficult to define a usable personal or team process until they have experience in working within one. A major goal of the initial "PSP" process is to provide experience and a basis for process development – NOT to try to tell you that this particular process is the only acceptable way of working “If you don’t know where you are, a map won’t help” - Humphrey

However, Humphrey suggests that the following critical components should be used for any process: Scripts:Describe process steps, entry/exit criteria, etc. Forms:Framework for gathering, retaining, and analyzing process data. Standards:Guide your work and provide a basis for verification and quality management PIPs:Identify/record process issues and generate/validate potential solutions

The process we have used so far is reasonable for small software development increments with well defined requirements. For an individual software engineer in a development organization you’re familiar with: What aspects of the "PSP" process could be used with little change? What modifications would be required? Plan Design DLDR Code CR Test PM

Teams and engineers can create custom development processes.

Custom forms and scripts can be developed to support new processes. (ref: Dr. Sebern)

Custom processes can support requirements and architecture/design work.

SE-280 Dr. Mark L. Hornick Process Dashboard supports task and schedule planning for individual engineers and teams

SE-280 Dr. Mark L. Hornick 10 Review: The Planned Value (PV) of each task is the percentage it represents of the total planned project time. Task Plan hrs.PV% Cum. hrs. Cum. PV% Plan wk. A10 B8 C7 D3 E9 Total 

SE-280 Dr. Mark L. Hornick 11 Earned value (EV) represents the cumulative planned value of completed tasks, even if they are not completed in the planned sequence. WeekTaskPV%EV% Cum. EV 1A D 2B 3-- 4C 5 6E  100.0

Looking at Plan vs Earned value can help identify problems in the plan. Adapted from Willet (SEI), Boston SPIN talk, 2004

Tracking time/effort can help uncover problems Work hours on target Completed tasks show severe underestimates Detail tasks log shows most of problem is in Unit Test Defect Fix Time by type shows main problem is legacy system defects

SE-280 Dr. Mark L. Hornick 14 Process Dashboard can generate earned value charts and forecasts.

What kind of process would you use when you don't know what you are doing? Suppose your next project is in a new language and development environment. You are not familiar with the available libraries and tools. What effect will this have on your process? One approach: Prototype Experimental Process (PEP) Experiment until you get something working Document the design of your prototype Review the design Update and/or refactor the code Review the updated code Test / inspect Repeat as needed

Have you ever heard of “agile” processes or methods? What does the team mean to you?

A common issue is how to integrate an incremental development process with up- front requirements and design documentation. "Big design up front""We don't need no stinkin' process“ It's not very helpful to view this "conflict" as a cultural battle. Lightweight, disciplined, data-driven process ("PSP/TSP" based?)

There are twelve main practices in eXtreme Programming (XP) Planning (what, when) Metaphor (how it works) Simple design Testing (TFD/acceptance) Refactoring Small releases (monthly) Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards

Another popular "agile" process is called "Scrum" Backlog Collection of product requirements (features) Prioritize those to be implemented in the current “Sprint” Sprint (tasks to be done) Short iterations (4 wks) Sprint planning session Burn-down chart (Mirror image of EV) Scrum Daily meeting (“daily standup”) Determines what’s done/not done; aimed at removing obstacles to completion Sprint planning session Burn-down chart Mirror image of EV Sprint retrospective PIPs

Here is an example of one attempt to integrate agile/TDD practices with "TSP" processes Time logging (no timer) At least twice a day Before Lunch Before going home Initial phases Requirements Architecture/Design Agile Increments: Code/test/design In "design" phase Document the design Reviewable form Review/inspect design Code phase Completion, updates Unit testing (100% coverage) Code inspection This was the original plan in 2006, but...

After about a year (2007), this organization decided to modify the "agile/TSP" process. Design Design review Design inspection Production code + unit test coding Production code + unit test review Production code + unit test inspection Build and unit test Heavy reliance on automated testing Create a new test whenever a defect escapes the test suite Designs must be testable