- Количество слайдов: 35
Modern Software Engineering June 15, 2000 Copyright (c) 2000. Together. Soft Corp. All Rights Reserved.
Current State, Ugh (i) Some organizations are 10 (even 600) times more productive than others(1) Most Software Projects Fail Some definitions for Failure: Missed schedule Missed functionality Missed budget Too fragile for usage demands Defect rates too high once in production (1) Steve Mc. Connell, After the Gold Rush. Redmond, WA. Microsoft Press, 1999.
Ugh (ii) In 1995, only 16% of software projects were expected to finish on time and on budget. (1) Projects completed by the largest US organizations have only 42% of originally proposed functions. (1) An estimated 53% of projects will cost nearly 190% of their original estimates. (1) In large companies, only 9% of projects will be completed on time and on budget. (1) Standish Group International Report, “Chaos”, as reported in March ‘ 95 Open Computing. Copyright 1995 SPC.
Ugh (iii) Canceled projects—$81 billion loss to US in 1995(1) Average MIS— 1 year late, 100% over budget(2) (1) Standish Group International Report, “Chaos”, as reported in March ‘ 95 Open Computing. Copyright 1995 SPC. (2) Capers Jones, Applied Software Measurement, Mc. Graw-Hill, 1991.
The Venerable Waterfall Process Postpones Confronting Risk Late Design Breakage Maintenance Testing Implementation Design Analysis Can work on well-defined efforts Can work in smaller efforts Great for reporting apparent progress
SCRUM June 15, 2000 Copyright (c) 2000. Together. Soft Corp. All Rights Reserved.
Scrum – an activity that occurs during a rugby match. Scrum—distinguishing features Development work is partitioned into “packets” Testing and documentation are on-going as the product is constructed Work occurs in “sprints” and is derived from a “backlog” of existing requirements Meetings are very short and sometimes conducted without chairs “demos” are delivered to the customer with the time-box allocated Scrum incorporates a set of process patterns that emphasize project priorities, compartmentalized work units, communication, and frequent customer feedback.
Scrum Principles Small working teams used to maximize communication and minimize overhead Process must be adaptable to both technical and business challenges to ensure best produced Process yields frequent increments that can be inspected, adjusted, tested, documented and built on Development work and people performing it are partitioned into clean, low coupling partitions Testing and documentation is performed as the product is built Ability to declare the product done whenever required
Scrum - 1 Backlog prioritized list of requirements or features the provide business value to customer items can be added at any time) Sprints work units required to achieve one of the backlog items must fit into a predefined time-box affected backlog items frozen
Scrum - 2 Scrum meetings 15 minute daily meetings what was done since last meeting? what obstacles were encountered? what will be done by the next meeting? Demos deliver software increment to customer for evaluation
SCRUM – Project Structure By Kevin Aguanno. (C) 2002 Element K Journals.
SCRUM – Management Controls SCRUM projects are not "Out of Control" and, in fact, have several good management and control elements: Daily SCRUM Meeting. This is a daily meeting attended by all team members for a Sprint. The call is generally very brief (15 mins. ), the purpose of which is to update the project manager and other team members on progress and to raise any issues that the project manager or other team members can assist with. Three questions are answered by each participant: l What did I do in the last 24 hours? l What do plan to do in the next 24 hours? l What obstacles are standing in my way? Visible Progress Demonstration. At the end of each Sprint, the customer and all project team members get to see a visual demonstration of progress to date. Customer feedback can be obtained early in the process this way, and avoid costly changes late in the project lifecycle. Overall project progress is very visible and very easy to track in this way via a function/feature checklist, function points, or other similar means. (C) 2002 Kevin Aguanno.
SCRUM – Management Controls Sprint Burndown Charts. During a Sprint, the team provides an updated estimate on the number of hours/days to complete their work during the daily SCRUM meetings. The project manager can use this data to build a Sprint Burndown Chart showing the progress within a Sprint. The total projected number of hours for a Sprint usually increases in the early days of the Sprint as nuances and additional work are uncovered, but then rapidly decline as work gets underway. Text (C) 2002 Kevin Aguanno. Chart (C) 1997 Advanced Development Methods Inc.
SCRUM – Management Controls Accelerated Customer Approval. Because the customer reviews visible deliverables at the end of each Sprint and provides feedback at that time, coupled with the fact that subsequent Sprints build upon the work of earlier Sprints, the final output should not contain any surprises to the customer and will already include the bulk of his feedback. This should allow for a faster final customer approval/acceptance of the deliverables. (C) 2002 Kevin Aguanno.
A Solution Feature-Driven Development Client-centric Architecture-centric Repeatable process Pragmatic, livable methodology Great for developers Great for managers Great for the application!
Feature Driven Development Practical process model for OO SW engineering. Applicable to moderate sized and larger SW projects. FDD—distinguishing features Emphasis is on defining “features” • a feature “is a client-valued function that can be implemented in two weeks or less. ” Uses a feature template •
Feature Driven Philosophy Emphasizes collaboration among team members Manages problem and project complexity using featurebased decomposition followed integration of software increments Technical communication using verbal, graphical, and textual means Software quality encouraged by using incremental development, design and code inspections, SQA audits, metric collection, and use of patterns (analysis, design, construction)
Feature Driven Design - 1 Develop overall model contains set of classes depicting business model of application to be built Build features list features extracted from domain model features are categorized and prioritized work is broken up into two week chunks Plan by features assessed based on priority, effort, technical issues, schedule dependencies
Feature Driven Design - 2 Design by feature classes relevant to feature are chosen class and method prologs are written preliminary design detail developed owner assigned to each class owner responsible for maintaining design document for his or her own work packages Build by feature class owner translates design into source code and performs unit testing integration performed by chief programmer
Why the FDD Process? To enable and enforce the repeatable delivery of working software in a timely manner with highly accurate and meaningful reporting to all key stakeholders inside and outside a project.
se s The FDD Process in Brief Pr io rit iz ed R el ea 5 Major Steps/Activities FDD #1 Develop an Overall Model FDD #2 Build a Features List Requirements & Design FDD #3 FDD #4 FDD #5 Build Plan by Feature Design by Feature Build by Feature Promote to Build Sched. & $$ Est. Design, Code, Some Initial Code Testing Test & Put in Build
FDD & Typical SDLC Phases Maintenance #1 & #2 are Reqt’s & Design through Modeling/Coding/ Prototyping to get it right Testing #4 is very granular Detailed Design/Code #4 Implementation #1 #2 #5 Design Analysis #5 is Detailed Code and Test in very, very granular chunks of client-valued functionality
Reminder: Why FDD #1 & #2 Processes’ Emphasis on Requirements & Design? Studies have shown conclusively that it pays to do things right the first time Unnecessary changes are expensive TRW: a change in requirements-analysis cost 50 -200 times less than same change later in the cycle (construction-maintenance). Boehm, Parpaccio 1988 IBM: removing an error by the start of design, code or unit test allows rework to be done 10 -100 times less expensively than during unit test or functional test. Fagan 1976
FDD “Engineering” Outputs FDD #1 Develop an Overall Model FDD #2 Build a Features List FDD #3 FDD #4 FDD #5 Plan by Feature Design by Feature Build by Feature An object model (more shape than content) A categorized list of features A Development Plan
FDD “Construction” Outputs FDD #1 Develop an Overall Model FDD #2 Build a Features List FDD #3 FDD #4 FDD #5 Plan by Feature Design by Feature Build by Feature An object model (more shape than content) A categorized list of features A Development Plan A design package (sequences) (more content than shape) A clientvalued function
FDD UML Extensions (iii) CP-1 Overall Status: Work in progress Attention (ie, Behind) Completed Making Product Assessments (14) Not yet started Completion Percentage: 75% Completed MY Targeted Completion Month Feature Set: Making Product Assess’ts – Work in Progress CP-1 is the Chief Programmer’s initials (14) there are fourteen features that make up this feature set Progress bar Completion Status: Example: Dec 2001 75% Feature Set is 75% complete Target is to complete in Dec 2001
FDD Sample Feature Sets Product Sale Management (PS) CP-1 CP-3 CP-1 Selling Products Shipping Products Delivering Products Invoicing Sales (22) (19) (10) (33) 99% 10% 3% Nov 2001 Dec 2001 CP-2 Dec 2001 Setting up Product Agreements (13) CP-2 Dec 2001 Inventory Mgmt (IM) CP-2 CP-3 Opening New Accounts (11) Logging Account Transactions (30) Establishing Storage Units (26) Accepting Movement Requests (18) 95% 100% 82% 100% 97% Oct 2001 Nov 2001 Work In Progress Nov 2001 Attention Completed CP-3 Evaluating Account Applications (23) KEY: Making Product Assessments (14) 75% Customer A/C Mgmt (CA) CP-2 CP-1 Progress Bar Moving Content (19) 82% Nov 2001 Not Started
FDD Plan View
FDD Feature View
FDD Weekly Summary
FDD Weekly Summary (ii)
Fitting UML into Development Where/how does it fit into s/w development practices In modern software development methodologies, there is a large degree of iterative development. Productive modeling environments automatically synchronize source code and class diagrams This implies that you take successive passes at the system, adding new information and capability along the way. Inception Iterative Elaboration Iterative Construction Transition
The Utility of UML Helps to promote standard communication But does not supplant human contact! Class Diagrams are very useful Sequence and Activity help with dynamics Use Cases Useful if your organization has meaningful way to apply them—no silver bullet Can be replaced by other means of capturing features/requirements
FDD UML Extensions Report progress to management and clients Very high level (major feature sets) • These reflect UML extensions made in Together®
FDD UML Extensions (ii) Chief Programmer Next level down (feature sets) # Features Overdue! % Complete (color too) Due Date