Top Banner
Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)
16

Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Dec 31, 2015

Download

Documents

Norah Gray
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Third Hour Lecture10:30 – 11:20 am September 8

Improving Software Economics(continuing from Chapter 3 of Royce’ book)

Page 2: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Five Economy ImprovementDimensions

• 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.

Page 3: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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

Page 4: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Three Levels of Process

Page 5: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 6: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 7: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Improving Team Effectiveness

• Four Team Management Maxims.

• Five Project Staffing Principles.

• Five Attributes of Successful Software Managers.

Page 8: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 9: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 10: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 11: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 12: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 13: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Quality Improvements with a Modern Process

Page 14: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 15: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

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.

Page 16: Third Hour Lecture 10:30 – 11:20 am September 8 Improving Software Economics (continuing from Chapter 3 of Royce’ book)

Assignment for Next Class Meeting

• Finish reading Chapter 3 of Royce’ book, on Software Economics.– Learn the three schedule improvement dimensions. – Learn the four maxims of team management.– Learn the five staffing principles.– Learn the five successful software manager attributes.– Learn the five key practices for software quality.– Learn the four stages of typical project performance

assessment.– Learn the three major problem area failures of peer

inspections.