Project Management.

Slides:



Advertisements
Similar presentations
Agile Development & Companies
Advertisements

Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
Software Development Life Cycle
Why Agile Development Is Bad Issues of complex Application Development ODTUG Kaleidoscope 2012 San Antonio, Texas, June Marc de Oliveira, Simplify.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
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.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Software Development Life Cycle (SDLC)
IT Systems Analysis & Design
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 Massive Entertainment Petter Sydow. 2 Starting facts Petter Sydow, Vice President of Product Development Massive Entertainment, Malmö, Sweden World.
COMP 208/214/215/216 Lecture 3 Planning. Planning is the key to a successful project It is doubly important when multiple people are involved Plans are.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
5. Planning.
Team Formation Dr. Tallman. ECE297 Tutorials, Jan 21 & Jan 23 Your team will meet your Communication Instructor (CI) and schedule a weekly 30- minute.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Evaluating EVM January 13, EVM Issues and Opportunities ▪ EVM Basics ▪ EVM Issues ▪ EVM ETC and EAC Calculations ▪ EVM Cost and Schedule Value Calculations.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Embedded Systems Software Engineering
Software Development - Methodologies
Software Development.
Software Engineering Management
Agile Development & Companies
Software Engineering Process
Lecture 3 Prescriptive Process Models
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Agile Training – Agile Overview
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Sample Wiki Comments?.
Valuable Project Management Tools and Techniques
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Iterative and Agile Development
CS 5150 Software Engineering
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Chapter 2 SW Process Models
Software Process Models
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
IT Systems Analysis & Design
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Game and Software Engineering Practices
Teaching slides Chapter 1.
Software Process Models and the feasibility study
Process Models Coming up: Prescriptive Models.
COMP 208/214/215/216 Lecture 3 Planning.
Welcome to the Ericsson journey towards an Agile WoW!
Software Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Coming up: What is Agile?
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
SNS College of Engineering Coimbatore
Agile Development – a new way of software development?
Extreme Programming.
EE 155 / Comp 122 Parallel Computing
The New Methodology Martin Fowler Paper Presented by Vyshali Belagodu
Project Iterations.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
CSCI 360: Software Architecture & Design
Product Development & Planning
Presentation transcript:

Project Management

Option 1: Waterfall Development Changes cheap Changes expensive Up front planning Phases: concept to detailed implementation

Option 2: Iterative/Agile Development Plan, but quickly Later parts of the plan more coarse Prototype Refine Test & Evaluate Includes end-user / customer evaluation

Waterfall vs. Agile? Strengths and weaknesses of each? Your team’s preference?

Waterfall vs. Agile? Strengths and weaknesses of each? Waterfall strength: efficient if you can plan well Agile strength: it’s hard to plan well  iterate quickly instead Waterfall weakness: planning paralysis Agile methods now dominant in software Also common in HW Spreading to other industries (SpaceX, Tesla, …) Wikipedia vs. Nupedia: agile won

Agile: Prototype Early Not having a working system is very dangerous Don’t know when/if the system will work Engineers can’t test their work in the whole system Don’t know where the problem areas to improve / optimize will be Get something simple working Test & Measure Add features / Improve problem areas Repeat Keep it simple! Use simplest approach that works

One Flavour of “Agile”: Scrum image: ecomcanada.org Choose features for 21-day sprint Team meets each day for 15 min scrum End of each sprint  working SW for customer

Set Measurable Milestones Key to keeping larger projects on track

Agile Development & Companies Harvard Business Review: “Why the lean start-up changes everything” Agile development applied to entire business of start-ups Simplest possible prototype! Iterate! Image: leadnet.org

Project/Teams Course Roadmap More waterfall More specification APS 111/112 More agile More implement + measure ECE 297 ECE 496: Capstone project APS 343: Engineering Leadership iLead: project management workshops https://ilead.engineering.utoronto.ca/events-programs/event-calendar-registration/ Jan. 30 & Feb. 5: project management Specify & implement PEY & Career

Case Study: Case Study #1

Background My PhD thesis: new CAD System for FPGAs Formed company to commercialize 4 people initially An early customer was Altera 10 months to produce a new “placement and routing” system for Altera’s chips Aggressive goal: 10X better than current system

Place and Route Example

Project Management Quick plan Concrete milestones Scared 1 day: estimate all tasks & time Add time margin (mine: 50%) Concrete milestones Meet a milestone every 3 months or don’t get paid! Scared Turned out to be helpful! Avoid any side projects, unnecessary complexity Get something working, measure & improve Measure our software vs. Altera’s every day

Outcome Hit all milestones, except first (2 weeks late) Focused! CAD system exceeded expectations 30X less runtime 38% faster circuits Altera replaced their P & R engine with the prototype Started simple, measured where to improve Some simple algorithms still in current Quartus  didn’t need more!

Case Study 2: (First Version of) Quartus

Background Altera had highly successful CAD system: Max+PlusII Decided to do a complete re-write to a new CAD system Quartus Goals: C++ (not C) Cleaner, more extensible code Allow multiple engineers to collaborate on a project easily Allow fast, “incremental” recompiles

Project Management Planned for a year with no coding Too much waterfall  planning paralysis Let complexity reign Fancy user features Fancy language (object oriented C++ to the max) No working prototype for ~2 years Can’t test new features in full system Didn’t understand & measure key metric CAD system that optimizes well And is ready for next-generation chip

Outcome Software not ready in time for chip Software rushed to market Not stable enough, didn’t optimize well enough Very bad customer experiences Lost sales: $billions! Rewrote & renamed later versions: Now very good!

Case Study 3: Hardware + Software (Stratix V)

State of the art for 2 years! Big Project! More planning? 3 year project ~500 engineers at peak Yes, plan as far ahead as you can But don’t paralyze yourself Accept that plan gets coarse as you go out in time Key plan: measurable milestones 3 year project  need to break up schedule Project milestones  goals / milestones per team Clear must have features Everything else: nice to have > $200 M State of the art for 2 years! +

Agile / Iterative Development? Build prototype / model of HW + SW system Use to evaluate and test new ideas Done by smaller team (~10 engineers) Will never ship to customers! Prototype shows good results? Build real hardware & full software Team grows to 500 Always keep system working as you improve Always measure results vs. expected (from prototype) HW & SW both in source code control Still iterative, but with more structure

Communication? Weekly status meeting Meeting style For sub-teams (~8 engineers) Managers discuss results for ~8 teams (~64 people) Directors discuss overall status (~500 people) Meeting style wiki, crisp reporting Big picture  progress toward milestones

Outcome Iterative development of HW + SW Much better than pure waterfall Many companies: out of business by not getting full HW + SW system working Every 2nd generation: usually late! Engineers & marketing put in too much complexity Not scared enough, not enough iterative development! Late to market is terrible Competitor has twice the transistors, 1 year earlier Want to optimize, but on time more important

Testing

Testing Philosophy “If you didn’t test it, it doesn’t work” Assume all code broken until proven otherwise Look at what the program does not what it is supposed to do Scientist: you are testing hypotheses about program Think of every case your program should handle  cover them all

Testing Time Develop tests as or before you code Test-driven development Prototype Refine Test & Evaluate