1 A Real-World Development Lifecycle Greg Wilson

Slides:



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

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Systems Analysis & IT Project Management Pepper. System Life Cycle BirthDeathDevelopmentProduction.
HCI in the software process Chapter 6
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.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Alternate Software Development Methodologies
Agile Planning. The problem with documentation Argument: “Heavy” documentation too much for most business-style projects.
System Analysis and Design (SAD )
Concepts of Version Control A Technology-Independent View.
Slide 1 INTRODUCTION Chapter 1. Slide 2 Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Production Programming in the Classroom Eric Allen, Robert Cartwright, and Charles Reis Rice University {eallen, cork,
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Larger Projects Mark Green School of Creative Media.
15 Jul 2005CSE403, Summer'05, Lecture 10 Lecture 10: Incremental Releases Valentin Razmov.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Development Processes and Product Planning
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Software Development Landscape
Agile Software Development Brian Link
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Understand Application Lifecycle Management
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Project Workflow. How do you do it? -Discussion-
1 Lecture 19 Configuration Management Software Engineering.
Software Engineering Management Lecture 1 The Software Process.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
Debugging Strategies from Software Carpentry. Agan's Rules Many people make debugging harder than it needs to be by: Using inadequate tools Not going.
TMS System Overview 6/21/12TMS Overview v 1. 2 Intro to the TMS System Intro to the New Protrans TMS Development Process TMS Benefits Future Expansion.
The Long Tail Why the future of business is selling less of more ▫ISBN = ▫Chris Anderson Low Distribution and Inventory costs allow companies.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Life-Cycle and Models
Prototype 3 Prototype 2 Prototype 1 PROTOTYPIN G
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
1 - 1 Systems Analysis and Design, Key Ideas Many failed systems were abandoned because analysts tried to build wonderful systems without understanding.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System A Use Case Primer Organizing.
CS223: Software Engineering Lecture 4: Software Development Models.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Building Rockstar Estimating Skills Ron Smith Maritime DevCon.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
T Iteration Demo LicenseChecker I2 Iteration
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development - Methodologies
Software Development.
Project Workflow.
The Software Development Cycle
Methodologies in Computing
X in [Integration, Delivery, Deployment]
Chapter 11 – Project Dashboard
CSE 303 Concepts and Tools for Software Development
SDLC (Software Development Life Cycle)
The Software Development Cycle
Presentation transcript:

1 A Real-World Development Lifecycle Greg Wilson

2 Context A lot of noise about methodology these days But:  Very little hard data  And most developers don’t work at the extreme ends of the spectrum Here’s a process that delivered on time, on spec, on budget for five years running  Worked at Nevex/Baltimore/HP  Working right now for one-term student projects

3 Project Lifecycle (Industrial Version) Design A&E ImplementMaintain Test Document Deliver A&E

4 Analysis & Estimation A&E ImplementMaintain Test Document Deliver Everybody does analysis & estimation (A&E)  The most important part of a successful project  Capabilities  Features  Schedule  More on this later Design

5 A&E ImplementMaintain Test Document Deliver Have to know how in order to figure out what  “…and then a miracle occurs”  Build throwaway prototypes to check No point creating write-only designs Design

6 Implementation A&E ImplementMaintain Test Document Deliver Notice how short this segment is  50% of overall time is typical Keep schedule up-to-date  The fine art of cutting corners Design

7 Maintenance A&E ImplementMaintain Test Document Deliver Stop adding features weeks or months before release  QA & docs need a stable target That doesn’t mean you stop coding/testing Design

8 Testing A&E ImplementMaintain Test Document Deliver Test-first coding only works for small things QA must be involved in design  Don’t build things that can’t be tested Keep testing as long as there’s a customer Design

9 Documentation A&E ImplementMaintain Test Document Deliver Get technical writers involved in design  Often better at laying out GUIs than engineers  If they can’t explain it, you don’t build it Keep them involved (they hate surprises) Design

10 Delivery A&E ImplementMaintain Test Document Deliver Writing an installer is a programming problem  Often as hard as adding new features Build and test installers well before shipping  QA should only work with released installer Design

11 The Planning Game Product manager lists desired capabilities Developers analyze and estimate features  Estimates include testing, documentation, deployment, etc.  Total typically three or four times longer than time available in schedule Product manager then chooses which features will actually be built  Rank each low/med/hi on time and importance  Is not allowed to shave developers' estimates

12 Afterward Always do a post-mortem  What went right, what went wrong  Can't improve what you don't think about Label and branch your code  Fix on one branch, add to the other  Often move code back and forth Start the next round of A&E  Often overlaps final stages of previous project

13 And Now, the Academic Version Student projects are typically one term long  13 weeks  8-10 hours/week  Lots of other demands on their time Usually have little or no experience with the subject matter How to tailor this lifecycle to those needs?

14 Thirteen Weeks Warmup exercise (2 weeks, 10%, individual)  Throwaway code that forces students to learn tools and technologies Analysis & estimation (2 weeks, 10%, group)  Result is a target and a schedule Development (7 weeks, 30%, group)  Everyone tests along the way!  Cut corners early! Final report (2 weeks, 50%, group)

15 Project Environment IDE with symbolic debugger (Eclipse) Version control (CVS, Subversion) Build & test (Ant, JUnit, CruiseControl) Issue tracker (CVSTrac) Archived mailing list (Mailman) Schedule (continuously updated) See Trac (

16 How Well Does It Work? Pretty well, actually  Employers and other profs like the results  Time management  It’s not done ’til it’s done Most students schedule too optimistically  But learn quickly Now focusing on multi-term projects  More emphasis on architecture docs  More opportunity for students to lead teams

17 Things to Remember 1.Tools are signposts, not destinations 2.Collaboration skills are more important than coding skills 3.A week of hard work can sometimes save you an hour of thought 4.The deadline isn’t when you’re supposed to finish; the deadline is when it starts to be late 5.Code unto others as you would have others code unto you

18