Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Project Management

Similar presentations


Presentation on theme: "Software Project Management"— Presentation transcript:

1

2 Software Project Management

3 Course Description Catalog Strategic Objective
Process context of software development. Task decomposition. Size and schedule estimation. Risk management. Project planning and control mechanisms. Strategic Objective To study traditional and modern software project management methods and techniques. Tactical Objectives Understand the traditional process of software project management. Understand the basics for improving the traditional process. Know the disciplines for successful software project management. Look ahead to the future of software project management.

4 Topics Conventional Software Development – The Waterfall Model
Conventional Software Development Experience Typical progress profile Expenditures Risk profile Documents and Reviews Necessary Improvements to Waterfall Model Conventional Software Management Performance Barry Boehm’s “Top 10 List”

5 Typical Progress Profile – Conventional Project

6 The Software Development Experience
Development is highly unpredictable. Only 10% of projects on time and budget. Management discipline is more of a discriminator in success or failure than are technology advances. The level of software scrap and rework is indicative of an immature process.

7 Two Basic Steps

8 Classical Waterfall Model

9 Expenditures – Conventional Project
Management 5% Requirements 5% Design % Code and unit testing 30% Integration and test 40% Deployment 5% Environment 5%

10 Risk Profile – Conventional Project

11 Typical Software Project Documents and Control
The contractor prepared a draft contract-deliverable document that captured an intermediate artifact and delivered it to the customer for approval. 2. The customer was expected to provide comments {typically within 15 to 30 days). 3. The contractor incorporated these comments and submitted {typically within 15 to 30 days) a final version for approval.

12 Typical Program Experience
Early success via paper designs and thorough (often too thorough) briefings. Commitment to code late in the life cycle. Integration nightmares due to unforeseen implementation issues and inter- face ambiguities. Heavy budget and schedule pressure to get the system working. Late shoe-horning of non-optimal fixes, with no time for redesign. A very fragile, un-maintainable product delivered late

13 Summary of Problems in Conventional Practice……
1. Protracted integration and late design breakage . 2. Late risk resolution . 3. Requirements-driven functional decomposition. 4. Adversarial stakeholder relationships. 5. Focus on documents and review meetings.

14 Five Improvements for the Waterfall Model to Work
Complete program design before analysis and coding begin. Maintain current and complete documentation. Do the job twice, if possible. Plan, control, and monitor testing. Involve the customer.

15 Boehm’s Top Ten List Fixing after delivery costs 100 times as much as early fix. You can compress schedule 25%, but no more. For every $1 spent on development you will spend $2 on maintenance. Costs are primarily a function of source lines of code. Variations among people account for the biggest differences in productivity Ratio of software to hardware cost is 85:15 and still growing. Only about 15% of software development cost is due to programming. Software systems cost 3 times as much as software programs. Software system products cost 9 times as much. Walkthroughs catch 60% of the errors. 80% of the contribution comes from 20% of the contributors.

16 The 80/20 Rule 80% of the engineering is consumed by 20% of the requirements. 80% of the software cost is consumed by 20% of the components. 80% of the errors are caused by 20% of the components. 80% of software scrap and rework is caused by 20% of the errors. 80% of the resources are consumed by 20% of the components. 80% of the engineering is accomplished by 20% of the tools. 80% of the progress is made by 20% of the people.

17 Summary Conventional software development process today is unreliable and and immature. The Waterfall Method needs improvements to work satisfactorily. Conventional practices provide a benchmark for future improvements and changes to software development methods.

18 Assignment for Next Class
Read Chapter 1, Conventional Software Management, of Royce’ book. Learn the seven steps of the waterfall model. Learn the five improvements needed for the approach. Learn the expenditures figures by activity for conventional software projects. Learn Barry Boehm’s Metric “Top Ten List” for the state of software development. Read Chapter 1, “The Tar Pit”, of Brook’s book. If assigned to you, prepare the “Brook’s Chapter 1” 20 minute report (for presentation to the class).

19 Evolution of Software Economics Improving Software Economics

20 Three Generations of Software Economics

21 The Predominant Cost Estimation Process

22 Five Software Cost Model Parameters
Size of the end product Usually the number of Source Lines of Code. Process used to produce the end product. Capabilities of the personnel. The environment – tools and techniques. Required quality of the end product.

23 Cost Estimation Formula
Effort = (personnel)(Environment)(Quality)(Size)(exp(Process))

24 Formula Use Example

25 Function Points Estimation
An alternative to Source Lines of Code basis for estimation. Use “Function Points” to estimate effort External user inputs External outputs Internal logical data groups External data interfaces External inquiries

26 Accuracy Overall accuracy of current software cost estimation models has been described as “…within 20% of actuals, 70% of the time….”

27 Attributes of a Good Estimate
Estimate is conceived and supported by all. Project manager, architecture team, development team, and test team accountable for the work. Estimate is accepted by all stakeholders as ambitious but realizable. Estimate is based on well-defined cost model with a credible basis. Estimate is based on relevant project experience. Estimate is detailed and key risks areas are understood.

28 Improving Software Economics
(Royce’ Chapter 3)

29 Software Economic Improvement Trends

30 Five Economy Improvement Dimensions
Reducing the size of the software. Improving the development process. Using more-skilled personnel and better teams. Using better environments (tools) for software development. Trading off, or backing off, on quality thresholds.

31 Reducing Software Size
Languages. Object-oriented methods and Visual Modeling. Reuse. Commercial Components.

32 Language Comparison

33 Example Function Point Comparison
1,000,000 lines of assembly language code. 400,000 lines of C 220,000 lines of Ada 83. 175,000 lines of Ada 95 or C++

34 Object-Oriented Methods and Visual Modeling
Better capture of software abstractions leads to better communications and better teamwork. Continuous integration leads to earlier risk recognition and less costly corrections. Object-oriented architectures provide better separation of disparate elements of a system and help create firewalls for less costly development. Object-oriented and visual modeling create a strong architectural vision for cleaner, less-costly products.

35 Reuse of Software Common architectures. Development environments.
Operating systems. Database management systems. Networking products. Office applications.

36 Reuse Cost and Schedule

37 Commercial Components

38 Summary Software estimation must be based on careful analysis and must be supported by all. Software economics improvements must come from reducing size, improving process and environments, using more- skilled personnel, and trading off software feature thresholds.

39 Assignment for Next Class
Read Chapters 2 and 3 of Royce’ book, on Software Economics. Learn the five major parameters in the software effort formula. Learn the software development effort formula. Learn the five attributes of a good software estimate. Learn the five software improvement dimensions. Read Chapter 2, “The Mythical Man-month” of Brook’s book. If assigned to you, prepare the “Brooks’ Chapter 2” 20 minute report (for presentation to the class next meeting).

40 Improving Software Economics

41 Five Economy Improvement Dimensions
Reducing the size of the software. Improving the development process. Using more-skilled personnel and better teams. Using better environments (tools) for software development. Trading off, or backing off, on quality thresholds.

42 Improving Software Development Processes
Productive activity Prototyping Modeling Coding Debugging Documentation Overhead activity Plan preparation Documentation Progress monitoring Risk assessment Financial assessment Configuration control Quality assessment Integration Testing Late scrap and rework Management Training Administration

43 Three Levels of Process

44 Three Dimensions for Schedule Improvement
In an N-step process, improve the efficiency of each step. In an N-step process, eliminate some steps to create an M-step process. In an N-step process use more currency in the activities.

45 Sequential Steps Every instance of rework introduces a sequential set of tasks. Start with analysis, design, coding, and testing of a feature. Suppose then a fault is found. Then we must repeat the analysis, design, etc… These rework task sequences are the primary obstacle to schedule compression.

46 Improving Team Effectiveness
Four Team Management Maxims. Five Project Staffing Principles. Five Attributes of Successful Software Managers.

47 Four Maxims of Team Management
A well-managed project can succeed with a nominal engineering team. A mismanaged project will fail, even with an expert team. A well-architected system can built by a nominal team. A poorly-architected system will flounder even with an expert team.

48 Five Attributes of Successful Software Project Managers
Hiring skills. Right persons in the right jobs. Customer-interface skills. Avoiding adversarial relationships. Decision-making skills. Timely decisions, objective, unbiased and reasoned. Team-building skills. Trust, motivating, nurturing, tolerant of prima-donnas, synthesizes diverse opinions into team direction. Selling skills. Sell stakeholders, decision-makers, job candidates, sell changes of status- quo to disbelievers, sell achievements toward objectives. Selling requires continuous negotiation, compromise, and empathy.

49 Five Staffing Principles
Principle of top talent. Use better and fewer people. Principle of job matching. Fit the tasks to the skills and motivations of the people. Principle of career progression. Help people to self-actualize. Principle of team balance. Select people who will complement and harmonize. Hire a mix of raw skills, intelligence, objectivity, creativity, analytical thinking, psychological makeup, leaders, followers, risk-takers, conservatives, visionaries and nitpickers, cynics and optimists, experience and youth. Principle of phase-out. Replace misfits early. Phase down without delay.

50 Improving Automation through Software Environments
Tools Planning tools, requirements management tools, visual modeling tools, compilers, editors, debuggers, quality assurance analysis tools, test tools, and user interfaces, configuration management tools. Round Trip Engineering Environment Forward engineering tools (compilers, linkers, etc. are common. Round trip engineering tools are needed to support iterative development processes. Requirements management, document automation, automated regression testing, continuous and integrated change management, and feature/defect tracking.

51 Achieving Required Quality
Five Key Practices Focus on driving requirements. Use of metrics and indicators to measure progress and quality of architecture. Provision of integrated life-cycle configuration control and change management. Use of visual modeling and higher level languages. Early and continuous insight into performance issues through demonstration-based evaluations.

52 Quality Improvements with a Modern Process

53 Performance Assessment in a Typical Project
Project inception. Proposed design is asserted to be low risk with adequate performance margin. Initial Design Review. Optimistic assessment based on paper analysis or rough simulation. Operating system overhead, database management overhead, etc., all underestimated. Mid-life-cycle Design Review. Initial tests whittle away at margins. Early optimism exposed. Integration and Test. Serious problems uncovered. Margins exceeded. Fundamental changes in software architecture needed. Additional hardware or reduced functionality often required.

54 Peer Inspections Inspections accelerate transferring skills and knowledge to junior programmers. Inspections are a good vehicle for holding authors accountable for quality projects. Inspections are usually less helpful than primary quality mechanisms. Major milestone demonstrations. Environment tools (compilers, analyzers, automated test suites) that ensure representation rigor, consistency, completeness, and change control. Inspections should focus on critical components only. Inspections usually do NOT uncover three types of serious problems. Performance bottlenecks. Serious control issues - deadlocks, races, resource contention. Architectural flaws – scalability, reliability, interoperability.

55 The Old Way and the New Way

56 Topics The Principles of Conventional Software Management
The Principles of Modern Software Management Transitioning to an Iterative Process

57 Review - Quality Improvements with a Modern Process

58 Thirty Principles for Conventional Process (Davis)
1. Make quality #1 Understand early the tradeoffs among features, quality, cost and schedule. 2. High quality software IS possible. Prototype, simplify, involve the customer. 3. Give products to the customer EARLY. Determines the REAL requirements. Use prototypes, demonstrators, alpha/beta releases.

59 Thirty Principles for Conventional Process – cont’d
4. Determine the problem BEFORE writing the requirements. Resist jumping to solution. 5. Evaluate design alternatives. Decouple architecture from requirements. 6. Use an APPRORIATE process model. Considerations include corporate culture, risk tolerance, and volatility of requirements.

60 Thirty Principles for Conventional Process – cont’d
7. Use different languages for different phases. 8. Minimize intellectual distance. Use real-world structures. 9. Put techniques before tools. 10. Get it right before you make it faster. It is far easier to make a working program run faster than it is to make a fast program work.

61 Thirty Principles for Conventional Process – cont’d
11. Inspect the detailed design and code early. 12. Good management is more important than good technology. The best technology will not compensate for poor management. 13. People are the key to success. The right people, even with insufficient tools, languages and processes will succeed. 14. Follow with care.

62 Thirty Principles for Conventional Process – cont’d
15. Take responsibility. It takes more than good tools, methods and components. It also takes good people and good management. 16. Understand the customer’s priorities. Although the customer may not always be right, the customer is always ready to understand. 17. The more the customer sees, the more the customer needs. Software manager needs to have objective data to argue change requests – to balance affordability, features, and risk.

63 Thirty Principles for Conventional Process – cont’d
18. “Plan to throw one away.” Rather, plan to evolve from prototypes to final product. 19. Design for change. Architecture must accommodate change. Think ahead! 20. Design without documentation is not design! However, engineering work should be largely self- documenting.

64 Thirty Principles for Conventional Process – cont’d
21. Use tools, but be realistic. Modern, iterative development methods require extensive automation. 22. Avoid tricks. However, be mindful and responsive to innovation. 23. Encapsulate. Think in terms of component-based and object-oriented design. 24. Use coupling and cohesion. Cohesive components with minimal coupling are easier to maintain and adapt to changes.

65 Thirty Principles for Conventional Process – cont’d
25. Use complexity measures. Royce recommends McCabe. 26. Don’t rely on testing your own software. 27. Analyze causes for failures. 28. Realize that software entropy increases. Software grows more complex and more disorganized over time.

66 Thirty Principles for Conventional Process – cont’d
29. People and time and NOT interchangeable. Read the Mythical Man-Month. 30. Expect excellence.

67 Modern Software Management

68 The First Top Five Principles for a Modern Process

69 First Five Improvement Principles
Architecture first approach. Balance driving requirements, architecture and design decisions, and life-cycle plans. Iterative life-cycle process to confront risk early. Refine problem and solutions over several iterations. Use component-based development. Move from “line-of-code” mentality to “component” mentality. Establish a change management environment. Important for iterative development. Use round-trip engineering. Automation of change management, documentation and testing across requirements, specifications, design models, source code, executable code, and test cases.

70 Remaining Five Improvement Principles
Capture design artifacts with model-based notation. Far more objective process than using human review and inspection processes. Use objective quality control and progress assessment. Assessment should be integrated with the development process, not ah- hoc when difficulties occur. Use a demonstration-based approach to assess intermediate artifacts. Apply to early prototypes, baseline architectures, early releases. Plan on intermediate releases with evolving levels of detail. Make early and continuous releases with realistic use cases and scenarios. Establish a good configurable process. Must be economy of scale and be scalable across a range of projects.

71 Modern Approaches for Solving Conventional Problems

72 Transitioning to a Modern Process
Modern process features – Early development of an initial version. High risk areas are addressed early. Several iterations are developed (called spirals, increments, generations, releases). Modern process characteristics- Extensive use of domain experience. Process flexibility and change management. Architecture risk resolution. Team cohesion. Software process maturity.

73 Summary – The Old Way and the New Way
Many “old way” principles still apply – make quality #1, determine the problem before writing the requirements, understand the customer’s priorities, etc… The “new way” principles feature architecture- first approaches, iterative development, and integrated change management. Transition from the “old” to the “new” requires early initial versions, addressing high risk areas early, evolving and refining the requirements, design and production, and involvement of the customer.

74 Framework for a Software Management Process –
Life Cycle Phases

75 Topics Engineering and Production Stages Inception Phase
Elaboration Phase Construction Phase Transition Phase

76 Review - The First Top Five Principles for a Modern Process

77 Review - First Five Improvement Principles
Architecture first approach. Balance driving requirements, architecture and design decisions, and life-cycle plans. Iterative life-cycle process to confront risk early. Refine problem and solutions over several iterations. Use component-based development. Move from “line-of-code” mentality to “component” mentality. Establish a change management environment. Important for iterative development. Use round-trip engineering. Automation of change management, documentation and testing across requirements, specifications, design models, source code, executable code, and test cases.

78 Review - Transitioning to a Modern Process
Modern process features – Early development of an initial version. High risk areas are addressed early. Several iterations are developed (called spirals, increments, generations, releases). Modern process characteristics- Extensive use of domain experience. Process flexibility and change management. Architecture risk resolution. Team cohesion. Software process maturity.

79 Development Activities
Two basic activities in software development - Research and development Production Unsuccessful projects mostly fail for one of two reasons – Overemphasis on research and development. Too many analyses and studies. Typical of conventional software development methods. Overemphasis on production. Too much “rush-to-design”, premature work by overeager coders, and much hacking.

80 Successful Projects Have a well-defined milestone that transitions from a research attitude to a production attitude. Early phases focus on functionality; later phases focus on a deliverable product (with robustness, performance, fit, and finish). Life-cycle balance is maintained throughout.

81 Modern Software Development Process
A modern process supports evolution of plans, requirements, architecture and design. A modern process supports pro-active risk management and objective measurement of progress and quality. A modern process supports evolution of system capabilities through demonstrations of increasing functionality.

82 Engineering and Production Stages
To achieve more economic software development we must move toward a software manufacturing mentality. Process automation. Component-based development. To achieve more economic benefits, w should use a two-stage life cycle process for development. Engineering stage, with smaller teams doing design and synthesis activities. Production stage, with larger teams doing construction, test and deployment activities.

83 Differences in Emphasis for Engineering and Production Stages

84 Four Phases for Development - Royce
Engineering Stage Inception phase Elaboration phase Production Stage Construction phase Transition phase

85 Phases of the Life-cycle Process

86 Inception Phase Objectives Activities
Establishing software scope, boundary conditions, operational concept, acceptance criteria. Critical use cases, scenarios. Demonstrating candidate architecture. Cost and schedule. Potential risks. Activities Formulating project scope. Capturing requirements Synthesizing architecture. Design tradeoffs, initial baseline for make/buy. Planning. Risk assessments, staffing, iteration plans, budgeting and scheduling, infrastructure tools selection.

87 Elaboration Phase Objectives Activities
Stable requirements, architecture, and plans. Executable architecture prototype(s). Baseline architecture, vision and plans. Completion of engineering for the project. Activities Elaborating the vision. Establishing the critical use cases. Elaborating the process and infrastructure. The construction process, the tools and automation support, and the intermediate milestones and evaluation criteria. Elaborating the architecture and selecting components. Complete component make/buy, component integration. Assessment against primary scenarios.

88 Construction Phase Activities Objectives
Transition from engineering to production mindset. Objective is to produce a product rather than developing intellectual property. Emphasis is on managing resources and controlling operations. Achieve quality as rapidly as practical. Achieve useful versions as rapidly as practical. Activities Complete component development and test. Assessment of product releases. Resource management, control and process optimization. Initiation of spawning activities.

89 Transition Phase Objectives Activities Deployment of a baseline.
Beta test completion. Conversion of operational databases. Training of users and maintenance personnel. Product acceptance by customer. Activities Synchronization of construction and integration of final increments. Deployment Cutover, commercial packaging, sales rollout, field personnel training. Assessment of deployment baselines.

90 Summary for A Framework for Software Project Management – Life-cycle Phases
Software development should move more toward a manufacturing type process. Engineering and Production Stages should be recognized and planned. Iterative development methods should be used. Inception, Elaboration, Construction and Transition Phases can be used to provide for modern software development.

91 Framework for a Software Management Process – Artifacts of the Process

92 Topics Artifact Sets Management Artifacts Engineering Artifacts
Pragmatic Artifacts

93 Review - Phases of the Life-cycle Process

94 Overview of the Artifact Sets

95 The Five Artifact Sets Requirements Set Design Set Implementation Set
Deployment Set Management Set

96 Management Set Captures “contracts” among project personnel.
Management, architects, designers, testers, marketers, administrators, …. Funding authorities, other management, regulators, customers, … Contains plans, resource requirements, budgets, costs, schedules, milestones, releases, ……

97 Requirements Set Forms the basis for evaluating the other three engineering artifact sets (design, implementation, deployment sets). Forms the basis for test cases.

98 Design Set Contain Future automation should support: Design model
Test model Architecture description Future automation should support: Complexity analysis Style analysis Consistency analysis

99 Implementation Set Contains Source code
Executables for stand-alone testing Custom components Application program interfaces Data files

100 Deployment Set Contains User deliverables Executable code
Target-specific data Run-time files User manual

101 Artifact Set Tools Management Set tools.
Scheduling, work flow, defect tracking, change management, documentation, resource management, presentation tools. Requirements Set tools. Requirements management tools. Design Set tools. Visual modeling tools. Implementation Set tools. Compiler/debugger tools, code analysis tools, test coverage analysis tools, and test management tool. Deployment Set tools. Test automation tools, network management, commercial components (operating systems, GUI’s DBMS’s, networks, middleware, and installation tools.

102 Life-cycle Focus on Artifact Sets

103 Life-cycle Evolution of the Sets

104 Management Artifacts Work Breakdown Structure (WBS) Business Case
Transforms the vision into economic terms. Release Specifications Includes evaluation criteria for intermediate and final releases. Software Development Plan (SDP) Schedules, releases, processes, resources, environments, organization, key personnel, manning, change management, quality control, standards and procedures.

105 Management Artifacts (cont’d)
Release Descriptions Functions, performance evaluations, test results, issues, follow-up action needs. Status Assessments Include review of resources, personnel/staffing actions, financial data, top issues, action items, technical progress, major milestone plans and results, customer issues, look-ahead.

106 Management Artifacts (cont’d)
Software Change Orders Software Problem Reports and Tracking Deployment Document Transition plans, marketing plans, sales plans, and training course plans. Environment Defines the development and maintenance environments. Includes requirements management, visual modeling, document automation, host and target programming tools, automated regression testing, integrated change management and defect tracking.

107 Artifact Sequences

108 Engineering Artifacts
Vision Document The source for capturing the expectations among stakeholders. Written from the users’ perspective. Focus is on essential features of the system, and the acceptable levels of quality. Includes the operational concept. Architecture Description Software Users Manual Contains installation procedures, usage procedures and guidance, operational constraints, and a user interface description. Written by the test team.

109 Artifacts Summary Artifacts of modern software development may be divided into five sets Management, Requirements, Design, Implementation and Deployment. Emphasis changes from the Engineering Stage to the Production Stage, but all artifacts should evolve as work progresses. Artifacts provide the basis for managing development of the products of the software project.

110 Model-based Software Architectures

111 Review - Overview of the Artifact Sets

112 Review - Life-cycle Evolution of the Sets

113 Review - Artifact Sequences

114 Topics Software Architectures Software Architecture Descriptions
Management perspective. Technical perspective. Software Architecture Descriptions Five views. Software Architecture Baselines

115 Software Architecture
“An architecture is the software system design”. But, unlike the architecture of a building, there are… No irrefutable first principles for developing the architecture. No stable laws of physics to rely on. There are only heuristic and fuzzy guidelines. However, like a building, your project will rise or fall on the quality of the architecture. So….emphasize and promote architecture evolution through prototyping and demonstrations.

116 Architecture: A Management Perspective (Royce)
Intangible design concept, system design as opposed to component design. Architecture Baseline Tangible artifacts across all engineering artifact sets that capture vision and basic design. Architecture Description Basic information extracted from the design models. Communicates how the intangible concept is realized in the tangible artifacts.

117 Architecture: A Management Perspective (cont’d)
A stable architecture represents a major milestone – the transition from engineering to production. A mature and demonstrable architecture forms the basis for predictable planning for project completion.

118 Architecture: A Technical Perspective
Software architecture encompasses: The elements and components of a system. Their collection into subsystems. Their functions. Their behavior. Their interactions. The overall control of the system.

119 Engineering Models Requirements Model Design Model
Addresses behavior of the system as seen by end users, analysts, and tester. Design Model Addresses architecture of the system and design of the components within the architecture Includes functional structure, concurrency structure, implementation structure, and execution structure. Design model shows the system as seen by the developers.

120 Architecture

121 Five Views of the System
Use Case view Shows how the system’s critical use cases are realized by elements of the design model. Design view Addresses basic structure and functionality. Process view Shows run-time interactions among elements, control, inter- process communication, and state management. Component view Describes the elements of the software system. Uses the perspective of the integrators and release management personnel. Deployment view Addresses the executable realization of the system. Shows the physical resources and physical topology.

122 Architectural Baseline
Conventional process Architectural baseline is same as architecture description. Realized as document, without rigorous design notation.no representation in other engineering design sets to validate the integrity of the description. Modern process Architecture evolves in iterative fashion. Baseline contains executable prototypes to demonstrate evolving capabilities. Stable, demonstrable architecture is transition point to production stage.

123 Architectural Baseline Contents
Requirements Critical use cases, system- level quality objectives, priority relationships among features and qualities. Design Names, attributes, structures, behaviors, groupings, and relationships of classes and components. Implementation Source component inventory and bill of materials of all primary components. Deployment Executable components sufficient to demonstrate the critical use cases and the risks in the project.

124 Workflows of the Process

125 Topics Software Process Workflows Iteration Workflows

126 Key Principles Revisited
Architecture-first approach Requirements, analysis, design, implementation and assessment activities performed before construction phase. Downstream focus on completeness and quality. Iterative life-cycle process Two or more iterations each workflow. Round-trip engineering Environment activities raised to a first-class workflow. Demonstration-based approach Implementation and assessment activities are initiated early, reflecting emphasis on constructing executable subsets of the evolving architecture.

127 Seven Software Process Workflows
Management Controlling the process. Environment Automating the process. Requirements Analysis and evolving requirements artifacts. Design Modeling and evolving the architectures and design artifacts. Implementation Programming and evolving the implementation and deployment artifacts. Assessment Assessing trends in process and product quality. Deployment Transitioning the end products to the use.

128 Activity Levels Across Phases

129 Artifacts Associated with Workflows

130 Not Carried Over from Conventional Process (Royce)
Documentation emphasis Most documentation should be a by-product. Quality assurance Quality assurance is worked into all activities, not accomplished as a separate workflow.

131 Management Workflows Environment Workflows

132 Iteration Workflows

133 Iterations An iteration is defined in terms of a set of allocated usage scenarios. Needed components are developed and integrated. Demonstrations are made. Assessments are made. Results are prepared for next iteration. Activities are carried on currently. An iteration workflow includes a sequence of seven elements.

134 Iteration Emphasis Inception and Elaboration Phases Construction Phase
Emphasis is on management, requirements, and design activities. Construction Phase Emphasis of in design, implementation, and assessment. Transition Phase Emphasis is on assessment and deployment.

135 Iteration Workflow Design
Evolving the architecture and baseline design, design and test models, updating design set artifacts. Implementation Developing and acquiring new components, integration and testing. Assessment Evaluating the results of the iteration: compliance, quality, performance. Change decisions. Deployment Transitioning the release to users, IV&V contractor, customer, regulators. Management element Planning for the release, use case selection, detail assignments. Environment Evolving the change order database for new baselines for product, test and environment components. Requirements Analyzing the requirements artifact set, elaborate use cases and evaluation criteria.

136 Iteration Workflow

137 Iteration Emphasis Across the Life Cycle

138 Iteration versus Increment
An iteration represents the state of the overall architecture and the complete deliverable system. An increment represents the current work in progress that will be combined with the preceding iteration to form the next iteration.

139 Typical Build Sequence

140 General Comments The preceding material is somewhat simplistic in three basic ways. Releases There is not just one basic release for an iteration. Also you may have different releases for the software development laboratory, possibly for different developmental hardware configurations, one for the hardware integration laboratory, one for the project test and evaluation laboratory, one for quality control or manufacturing organization, one for the customer’s evaluation and demonstration laboratory, etc… Hardware Development Support The hardware group may make almost insatiable demands on the software group for ancillary software – drivers, I/O routines, instrumentation programs, debuggers, small test programs, analyzers, etc… Environment, Test, and other Support Software The customer may require delivery also for development tools, design models, and test tools and cases. Releases of these software elements will also have to be managed and controlled, concurrently with the basic project software.

141 In Summary….. The Conventional Software Development Process
Uses Waterfall Model (sequential steps). Is relatively easy to understand and control, at least for a while early in project development. Generally doesn’t work very well in real life. The Modern Software Development Process Uses much concurrency and multiple iterations. Can be chaotic if not monitored and controlled very carefully. Requires very competent configuration management. Can be made to work well if the project is very well managed.

142 Checkpoints of the Process

143 Topics Major Milestones Minor Milestones Periodic Status Assessments

144 Review - Seven Software Process Workflows
Management Controlling the process. Environment Automating the process. Requirements Analysis and evolving requirements artifacts. Design Modeling and evolving the architectures and design artifacts. Implementation Programming and evolving the implementation and deployment artifacts. Assessment Assessing trends in process and product quality. Deployment Transitioning the end products to the use.

145 Review - Artifacts Associated with Workflows

146 Review - Iteration Workflow
Design Evolving the architecture and baseline design, design and test models, updating design set artifacts. Implementation Developing and acquiring new components, integration and testing. Assessment Evaluating the results of the iteration: compliance, quality, performance. Change decisions. Deployment Transitioning the release to users, IV&V contractor, customer, regulators. Management element Planning for the release, use case selection, detail assignments. Environment Evolving the change order database for new baselines for product, test and environment components. Requirements Analyzing the requirements artifact set, elaborate use cases and evaluation criteria.

147 Review - Typical Build Sequence

148 Management Reviews Major milestones Minor milestones
System-wide reviews at end of each of the four phases. Minor milestones Iteration-focused events to review iterations. Includes a release specification (release plan and evaluation criteria), and release description (results of the evaluation of the release.) Status assessments Periodic events to assess progress.

149 Checkpoints

150 Major Milestones Reviewers
Customers Schedules, budgets, feasibility, risk assessment, requirements, progress, compatibility. Users Requirements, usage scenarios, growth, quality. Architects Requirements changes, tradeoffs, completeness, balance. Developers Requirements details, consistency, resolution of risks, environment. Maintainers Sufficiency of product and documentation artifacts, understandibility, interoperability, environment. Others Regulators, IV&V contractor, subcontractors, associate contractors, sales, marketing.

151 Status Across Major Milestones

152 Life-Cycle Objectives Milestone
Occurs at end of Inception Phase. Includes: Plan, estimated cost and schedule, expected benefits, vision statement andcritical issues, operational concept. Contains draft architecture document. Contains a prototype architecture demonstration. Goal: Authorization to proceed to Elaboration Phase.

153 Life-Cycle Architecture Milestone
Goal: Demonstrate an executable architecture. Authorization to Proceed with the construction phase. Includes: Detailed plan for the construction phase, critical issues regarding requirements and the operational concept, baseline architecture, baseline vision, baseline software development plan, evaluation criteria for the initial operational capability milestone.

154 Readiness for Architecture Milestone
Critical use cases defined and scenarios prepared for evaluating architecture Stable architecture baselined and demonstrated. Risk profile is well understood. Common understanding of outstanding risks, and mitigation plans fully elaborated. Development plans for remaining phases are defined.

155 Architecture Milestone Contents
Presentation and Overview of the current state of the software project. A configuration-controlled set of all engineering data for the engineering artifacts. An executable demonstration of capability.

156 Architecture Milestone Artifacts

157 Architecture Milestone Agenda

158 Initial Operational Capability Milestone
Goals Assess readiness to begin transition into customer and user sites. Authorize beginning of acceptance tests. Items for Milestone Installation instructions and issues, software version descriptions, user and operator manuals, support for user sites, test environment, and test software.

159 Product Release Milestone
Goal Assess the completion of software and its transition. Milestone contents Results of acceptance testing, open issues, installation issues, support issues.

160 Minor Milestones Primarily, iteration readiness reviews and iteration assessment reviews. Early iteration focus Design and analysis, discovery, experimentations, risk assessment. Later iteration focus Completeness, consistency, usage, and change management. Other minor milestones. Test readiness reviews, test results, special issues.

161 Typical Minor Milestones

162 Periodic Status Assessments
Assessments are crucial for focusing management attention on the health of the project. Generally status assessments are held each month or each quarter during the project. Preparations ideally should include no more than one day’s effort by the software project manager. (Use day-to-day material to prepare the presentation.) Assessments also can be used for project-to- project comparisons, and dissemination of best practices within the organization.

163 Status Assessment Reviews

164 Summary for Checkpoints of the Process
Checkpoints provide for control of the development process. Major Milestones are the Objectives, Architecture, Initial Operational Capability, and the Product Release Milestones. Minor Milestones are for iteration readiness and iteration results reviews. Periodic Assessment Reviews are for focusing management attention on the health of the project.

165 Software Management Disciplines Iterative Process Planning

166 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

167 Software Management Disciplines Iterative Process Planning

168 Review - Typical Minor Milestones

169 Review - Checkpoints

170 Review - Summary for Checkpoints of the Process
Checkpoints provide for control of the development process. Major Milestones are the Objectives, Architecture, Initial Operational Capability, and the Product Release Milestones. Minor Milestones are for iteration readiness and iteration results reviews. Periodic Assessment Reviews are for focusing management attention on the health of the project.

171 Part III – Software Management Disciplines
Planning Organization Automation Process control and instrumentation Tailoring

172 Topics Iterative Process Planning
Work Breakdown Structures (WBS) Planning Guidelines The Cost and Schedule Estimating Process The Iterative Planning Process Pragmatic Planning

173 Conventional WBS

174 Problems With Conventional WBS
No way to track ratio of productive activities to overhead activities. No tracking of percentage of effort expended in rework. No tracking of percentage of cost expended in software capital equipment. Noo tracking of productive testing versus unproductive integration. No tracking of cost of release N as a basis for planning release N+1.

175 Recommended WBS First Level Second Level Third Level
Workflows for WBS elements. Can be allocated to single teams. Second Level Defined for each phase of the life cycle. Third Level Focus on the activities that produce the artifacts of each phase.

176 Work Breakdown Structure

177 WBS (cont’d)

178 Tailoring of the WBS Scale Larger projects have more levels.
Organizational Structure Subcontractors or associate contractors require additional management subelements. Degree of Custom Development Fully custom requires more in design and implementation to manage risks. Business Context Large contractual projects generally require additional levels for management and accounting purposes. Precedent Experience Projects should exploit existing work and WBS development.

179 WBS Budgeting

180 Effort and Schedule By Phase

181 Iterations Inception stage Elaboration stage Construction stage
Prototypes, critical use cases, existing components, custom component prototypes. Elaboration stage Architecture, initialization, scenarios, peak load conditions, worst case control flow, fault tolerance. Construction stage Alpha and beta releases, execution of all critical cases, 95% of capabilities demonstrated. Transition stage Resolve all defects, incorporate beta feedback, incorporate performance improvements.

182 Evolution of Planning

183 Cost and Schedule Estimating Steps – Top Down
1. Software project manager characterizes overall size, process, environment, people and quality. 2. Software manager makes a macro-level estimate of effort and schedule using software cost estimation model. 3. Software manager partitions the effort in top- level WBS. 4. Subproject managers decompose each WBS elemnt into lower levels.

184 Cost and Schedule Estimating Steps – Bottom Up
Lower level WBS elements are elaborating into detailed tasks by responsible WBS element managers. Estimates are combined and integrated into higher level WBS elements. Comparisons are made with the top down budgets and schedule milestones. Large differences are reconciled to converge on agreements.

185 Planning Balance Across Life-Cycle

186 General Observations Top down budgets and schedules tend to be overly optimistic. Bottom up budgets and schedules tend to be overly pessimistic. During Engineering Stages, top down estimates dominate. During Production Stages, bottom up estimates dominate.

187 Final Comments on Planning
The book emphasizes three perspectives: Planning, requirements, architecture. The end products with these perspectives are a software development plan, a requirements specification, and an architecture description document. On most successful projects, these thhree products are not very important once they have been produced. Rarely used by performers on a day-to-day basis, they are not very interesting to the end user, and the paper is just the tip of the iceberg with respect to the details that underlie them.

188 Topics Line-Of-Business Organizations Project Organizations
Evolution of Organizations

189 Final Comments on Planning (cont’d)
HOWEVER, The act of planning is extremely important to project success. It provides a framework and forcing function for making decisions. It ensures buy-in by stakeholders and performers. It transforms subjective, generic process frameworks into objective processes. Finally, plans are not just for managers. An open and visible planning process results in more ownership among all team members who execute the plan.

190 Software Management Disciplines
Project Organization and Responsibilities

191 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

192 Topics Line-Of-Business Organizations Project Organizations
Evolution of Organizations

193 Organization Line-of-Business Project both
Organize for return on investment, new business discriminators, market diversification, and profitability. Project Organize for cost, schedule and quality of specific deliverables. both Organize for career growth, job satisfaction, and opportunity for employees

194 Line of-Business Organization

195 Project Organization and Responsibilities

196 Infrastructure Project administration Engineering skill centers
Time accounting systems, contracts, pricing, terms and conditions, corporate information systems integration. Engineering skill centers Custom tools repository, bid and proposal support, research and development. Professional development Internal training, personnel recruitment, personnel skills database, library, technical publications.

197 Software Management Team Activities

198 Software Management Team
Primary concern: Balance for delivering to stakeholders – customers, higher management, users, developers. Main responsibilities: Planning, execution, adaptation, resource management, setting priorities, controlling, taking responsibility for quality.

199 Software Architecture Team Activities

200 Architecture Team Domain experience Software technology
To produce an architecture and design and a use case view. Software technology To produce a process view (concurrency and control, and component and deployment views.

201 Software Development Team Activities

202 Development Team Skill Set
Commercial component Specialists with detailed knowledge of commercial components. Database specialists Graphical user interfaces Display organization, user interactions, outputs, control needs. Operating systems and networking Specialists in execution of multiple software objects on a network of hardware resources; control issues for initialization, synchronization, resource sharing, and inter-object communications. Domain applications

203 Software Assessment Team Activities

204 Software Project Team Evolution

205 Team Emphasis Inception team Elaboration team Construction team
Planning. Elaboration team Architecture. Construction team Software development and assessment. Deployment team Customer focus

206 Software Management Disciplines
Process Automation

207 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

208 Topics Automation building blocks The project environment
Round-trip engineering Change management Infrastructures Stakeholder environments

209 Levels of Automation Meta-process Macro-process Micro-process
Organization’s policies, procedures, and practices for the line of business Inventory of preferred tools, artifact templates, guidelines, project repositories, skill sets, library. Macro-process Project’s policies, procedures, practices, project environment and collection of tools to produce artifacts. Micro-process Project team’s policies, etc., for achieving an artifact. Tools.

210 Topics Automation building blocks The project environment
Round-trip engineering Change management Infrastructures Stakeholder environments

211 Automation and Tools

212 Workflow Tools Management Environment Requirements Design
Project planning and control, on-line status assessments. Environment Configuration management and change control Requirements Integrate documents and visual representations for specifications and use cases. Design Visual modeling Implementation Integration of programming environment with change management tools, visual modeling tools, and test automation tools. Assessment and deployment Test automation, test management, and defect tracking tools.

213 The Three Project Environments
The Prototype Environment Architecture testbed Performance trade-offs Technical risk analysis Make/buy tradeoffs Fault tolerance trades Transitioning risks Test scenarios The Development Environment Development tools Round-trip engineering tools The Maintenance Environment Mature version of the development environment

214 Four Important Environment Disciplines
Integration of tools to support round-trip engineering for iterative development. Change management automation to manage multiple iterations AND change freedom. Infrastructure to enable environments derived from a common base. Promotes inter-project consistency, reuse of training, and reuse of lessons learned. Stakeholder environment extensions Provides cost savings for information exchange and approvals for engineering artifacts.

215 Round-trip Engineering
Primary reason: allow freedom in changing software engineering data sources. New needs for automation: Heterogeneous components, platforms, languages, complexity of building, controlling and maintaining large-scale webs of components.

216 Round-trip Engineering

217 Change Management Change management is more critical in modern processes. Artifacts are begun early, use rigor, and evolve over time. Software Change Orders (SCO) are used to create, modify, or obsolesce components. Change Orders are used to track status and performance.

218 Software Change Order

219 Configuration Control
Configuration Control Board Manages releases Makes change decisions Membership Software manager(s), system engineer (sometimes), key software architect (sometimes), customer representatives. General comment It’s never dull! Can be the most fun and exciting software management job of all.

220 Release History

221 Representative Changes

222 Infrastructure Organizational Policy Three Levels
Process definition – major milestones, intermediate artifacts, engineering repositories, metrics, roles and responsibilities. What gets done, when does it get done, who does it, how do we know that it is adequate (checkpoints, metrics and standards of performance. Three Levels Highest: long-term process improvement, general technology, education, mandatory quality control. Intermediate: domain- specific technology, reuse of components, processes, training, tools, and personnel. Lowest: efficiency items, project-specific training, compliance with customer requirements and business unit standards.

223 Organization Environment
Provides answers as to how things get done. Provide tools and techniques to automate the process. Standardized tool selections. Standard notations for artifacts. Tool adjuncts such as artifact templates (architecture description, evaluation criteria, release descriptions, status assessments Activity templates (iteration planning, major milestones, configuration control boards.

224 Organization Environment (cont’d)
Additional components Reference library for planning, etc. Existing case studies Project artifacts library Audit and compliance traceability frameworks.

225 Stakeholder Environment
Stakeholders will participate. Participation should be constructive and value-added to the development. On-line extension to stakeholder environment enables hands-on evaluations, use of same tools to manage and monitor the project, and minimizes customer travel and paper exchanges.

226 Extension to Stakeholder Domain

227 Software Management Disciplines Project Control and Process Automation

228 Extension Issues How much access freedom is supported?
Who pays for the environment and tool investments. How secure is the information exchange. How is change management synchronized. How to avoid abuse by customer. How to avoid disruption to the development.

229 Software Management Disciplines Project Control and Process Automation

230 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

231 Topics Seven Core Metrics Management Indicators Quality Indicators
Life Cycle Expectations Pragmatic Software Metrics Metrics Automation

232 Basic Themes for Modern Software Management
Getting design right by architecture first. Managing risk through iterative development. Reducing complexity with components-based techniques. Making progress and quality tangible through instrumented change management. Automating overhead and bookkeeping through use of round-trip engineering and integrated environment.

233 Goals of Software Metrics
An accurate assessment of progress to date. Insight into the quality of the evolving software product. A basis for estimating the cost and schedule for completion with increasing accuracy over time.

234 Seven Core Metrics

235 Metrics Characteristics
They are simple, objective, easy to collect, easy to interpret, and hard to misinterpret. Collection can be automated and non- intrusive. Assessment is continuous and non-subjective. They are useful to both management and engineering personnel for communicating progress and quality in a consistent format. Their fidelity improves across the life cycle.

236 Three Basic Management Metrics
Technical progress Financial status Staffing progress Financial and staffing metrics are easy. They always have been easy. The real problem is to measure technical progress with objectivity.

237 Typical Project Progress

238 Three Progress Metrics
Software architecture team: number of use cases demonstrated. Software development team: number of source lines of code under configuration management number of change orders closed Software assessment team: Number of change orders opened Test hours executed Evaluation criteria met Software management team: Milestones completed.

239 Earned Value System

240 Staffing Profile

241 Staffing and Team Dynamics
Metric: percent staffed. Metric: staffing momentum additions versus attrition. Glaring indicator of future trouble: Unplanned attrition. Usually due to personnel dissatisfaction with management, lack of teamwork, or high probability of failure to meet objectives.

242 Typical Project Progress

243 Four Quality Indicators
Change traffic and stability Provides insight into stability, convergence toward stability, predictability of completion Breakage and Modularity Breakage: extent of change needed. Modularity: average breakage trend over time. Rework and Adaptability Rework: amount of effort needed to fix. Adaptability: rework trend over time. Maturity Average time between faults.

244 Stability over Product Life Cycle

245 Modularity over Life Cycle

246 Adaptability over Life Cycle

247 Maturity over Life Cycle

248 Quality Indicator Characteristics
They are derived from the evolving products, not other artifacts. They provide insight into waste. They are dynamic for an iterative process. Focus is on trends and changes in time. Combination of current value and trends provide tangible indicators for effective management action.

249 Metrics Evolution over Life Cycle

250 Metrics Classes

251 Comment on Metrics Metrics usually display the effects of problems, not the underlying causes of problems. Reasoning and synthesis are required for solution. Although measuring is useful, it doesn’t do any thinking for the decision makers. Value judgments can not be make by metrics; they must be left to smarter entities such as software project managers. However, metrics can provide data to help ask the right questions, understand the context, and make objective decisions.

252 Metrics Automation – the Software Project Control Panel
On-line version of status of artifacts. Display panel that integrates data. A “dashboard”. Display for – project manager (overall values) test manager (status of an upcoming release) Configuration Manager (change traffic) etc.

253 Software Project Control Panel

254 Summary for Project Control and Instrumentation
Progress toward project goals and quality of products must be measurable. The most useful metrics are extracted from the evolving artifacts. Management and quality indicators must be used continuously as project proceeds. Trends and status measures must be used together. Technical progress is the most difficult item to measure.

255 Tailoring the Process

256 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

257 Topics Process Discriminants for Tailoring
Small-Scale Project versus Large-Scale Project

258 Two Primary Dimensions of Process Variability

259 Priorities for Tailoring

260 Project Scale Management is more important in the large projects than in the small projects. Large projects have numerous mundane jobs, especially in the overhead workflows, and more communications. The probability of recruiting, maintaining, and retaining a large number of exceptional people is small. The number of people needed is more important than the project cost for tailoring the project. Size is the most important parameter in the effort formula (generally, lines of source code) and in determining project scale and the number of people needed.

261 Process Discriminators – Project Size

262 Process Discriminators – Stakeholder Cohesion

263 Process Discriminators - Flexibility

264 Process Maturity

265 Architecture Risk

266 Domain Experience

267 Small Versus Large Projects

268 Workflow

269 Key Discriminators for Success
Design is key for both small and large projects. Small commercial projects – good design provides good marketability and good profits. Large projects – good design provides for predictable, cost-efficient construction. Management. Most important for large projects where consequences of planning and resource errors can be catastrophic. Deployment. Most important in small projects where there is a large and diverse customer base.

270 Artifacts

271 Review - Looking Forward

272 Review –The Four Parts of the Course
Software Management Renaissance The conventional software management process. Five improvements to make the waterfall process work. A Software Management Process Framework Phases Artifacts Workflows Checkpoints Software Management Disciplines Planning Organization Automation Process control and instrumentation Tailoring Looking Ahead Modern project profiles Next-generation software economics Modern process transitions

273 Topics Continuous Integration Early Risk Resolution
Evolutionary Requirements Teamwork Among Stakeholders Top Ten Software Management Principles

274 Modern Practice – Resolve These Issues
Protracted integration and late design changes. Late risk resolution. Analysis paralysis due to requirements- driven design. Adversarial stakeholder relationships. Focus on documents rather than product.

275 Basic Solution Continuous integration. Early risk resolution.
Evolutionary requirements. Teamwork among stakeholders.

276 Modern Project Profile

277 Conventional versus Modern Workflows

278 The 80/20 Rule 80% of engineering for 20% of requirements.
Understand the 20% before committing full resources. 80% of cost due to 20% of components. Do the 20% components first. 80% of errors caused by 20% of components. 80% of scrap and rework caused by 20% of changes. Do change-critical 20% first. 80% of resources for 20% components. Do 20% components first. 80% of progress by 20% of people. Make best possible initial team.

279 Risk Exposure

280 Evolutionary Requirements
Old Way Requirements were further subdivided, and again, until very lowest level. Then, the design was accomplished by making components to match the low level requirements. This leads to functional design which is traceable to requirements, but is brittle and non- optimal. New Way Use top-level requirements to derive an architecture first. Then develop design. Finally, do requirements traceability.

281 Software Component Organization

282 Teamwork Among Stakeholders
Old Way Distrust, lack of understanding regarding requirements and impact. Non-optimal products. New Way An iterative process, collaborative with stakeholders, so that balance between requirements and development is achieved. Depends on demonstrations, extension to stakeholder domains.

283 Major Milestone Results

284 Royce’ Top Ten Principles for a Modern Process
1. Architecture first. Iterative process. Component-based development. Change management environment. 5. Round-trip engineering. Use model-based notation for artifacts. Instrument the process for objective quality control. Demonstration-based approach. Release iterations with evolving level of detail. 10. Use a configuration process that is scalable for improved ROI.

285 Balanced Application of Modern Principles


Download ppt "Software Project Management"

Similar presentations


Ads by Google