221 chapter 3 – improving software economics part 2 of 2

22
22 1 Chapter 3 – Chapter 3 – Improving Software Improving Software Economics Economics Part 2 of 2 Part 2 of 2

Upload: stuart-holmes

Post on 31-Dec-2015

217 views

Category:

Documents


3 download

TRANSCRIPT

22 1

Chapter 3 – Improving Chapter 3 – Improving Software EconomicsSoftware Economics

Part 2 of 2Part 2 of 2

22 2

OutlineOutline

3. Improving Team Effectiveness (5)3. Improving Team Effectiveness (5) 4. Improving Automation through 4. Improving Automation through

SoftwareSoftware

Economics (3)Economics (3) 5. Achieving Required Quality (5)5. Achieving Required Quality (5) 6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic

View (7)View (7)

22 3

3. Improving Team Effectiveness3. Improving Team Effectiveness

““It has long been understood that differences in It has long been understood that differences in personnel account for the greatest swings in personnel account for the greatest swings in productivity.”productivity.”

Great teams – all stars – not too good.Great teams – all stars – not too good. Also impossible to manage. Won’t happen.Also impossible to manage. Won’t happen. Best pragmatic approach: Best pragmatic approach:

Balance – highly talented people in key positions; Balance – highly talented people in key positions; less talented in other positionsless talented in other positions

Coverage – strong skill people in key positions.Coverage – strong skill people in key positions.

22 4

3. Improving Team Effectiveness - 3. Improving Team Effectiveness - continuedcontinued

Managing the team is the key.Managing the team is the key. A A well-managed teamwell-managed team can make up for other can make up for other

shortcomings.shortcomings. Boehm’s recommendations:Boehm’s recommendations:

1. 1. Principle of top talent: use Principle of top talent: use better and fewerbetter and fewer people.people.

Proper number of people is critical.Proper number of people is critical. 2. 2. Principle of job matching (skills and motivations) Principle of job matching (skills and motivations)

Not uncommonNot uncommon in development teams for individuals to in development teams for individuals to have a vision of promotion from programmer to project have a vision of promotion from programmer to project manager or to architect or to designer…manager or to architect or to designer…

Skill sets are NOT the sameSkill sets are NOT the same and many projects have gone and many projects have gone amuck due to poor management!amuck due to poor management!

Great programmers are not necessarily great managers Great programmers are not necessarily great managers and conversely. and conversely.

22 5

3. Improving Team Effectiveness - 3. Improving Team Effectiveness - continuedcontinued

3. 3. Principle of Career Progression – Principle of Career Progression – Organization training will pay great dividendsOrganization training will pay great dividends Posting for new jobs?Posting for new jobs? What are the prime motivators and motivation?What are the prime motivators and motivation?

4. 4. Principle of team balance – Principle of team balance – dimensions;dimensions;

balance of:balance of: raw skillsraw skills (intelligence, objectivity, creativity, (intelligence, objectivity, creativity,

analytical thinking…) analytical thinking…) psychological makeuppsychological makeup (leaders and followers; risk (leaders and followers; risk

takers and conservatives; visionaries and takers and conservatives; visionaries and nitpickers)nitpickers)

22 6

3. Improving Team Effectiveness - 3. Improving Team Effectiveness - continuedcontinued

5. Principle of Phase-out 5. Principle of Phase-out Get rid of the dead wood! Get rid of the dead wood! Disrupt team balance; horribly de-motivating. Disrupt team balance; horribly de-motivating. Get rid of this person!Get rid of this person!

22 7

3. Improving Team Effectiveness – 3. Improving Team Effectiveness – continued (last)continued (last)

Overall team guidance:Overall team guidance: Essential ingredients: a Essential ingredients: a culture of teamworkculture of teamwork vice vice

individual accomplishment.individual accomplishment. Teamwork and balance!!!Teamwork and balance!!! Top talent and phase-out are Top talent and phase-out are secondarysecondary Obsession with career progression will take care of itself in Obsession with career progression will take care of itself in

the the industry… industry… tertiarytertiary Strong, ‘aware’ Strong, ‘aware’ leadershipleadership is essential. is essential.

Keeping team together; Keeping team together; recognizing individual needs and excellent performers;recognizing individual needs and excellent performers; nurturing newbees, nurturing newbees, considering diverse opinions, considering diverse opinions, facilitating contributions from everyone; make them feel facilitating contributions from everyone; make them feel

important … important … all are all are essentialessential for an for an effectiveeffective project manager. project manager.

22 8

4. Improving Automation Through 4. Improving Automation Through Software Environments (1 of 3)Software Environments (1 of 3)

The environment (tools) can dramatically impact The environment (tools) can dramatically impact productivity and effort – and thus schedule and productivity and effort – and thus schedule and cost.cost.

HugeHuge number of available tools in marketplace number of available tools in marketplace for supporting a process.for supporting a process. Careful selection of the right combinations…Careful selection of the right combinations… Recognize that these tools are the primary delivery Recognize that these tools are the primary delivery

vehicle for process automation.vehicle for process automation. Mature software processes suggest that Mature software processes suggest that highly highly

integrated tools and environment are necessaryintegrated tools and environment are necessary to facilitate the management of the process.to facilitate the management of the process.

22 9

4. Improving Automation Through 4. Improving Automation Through Software Environments – cont. (2 of 3)Software Environments – cont. (2 of 3)

i.i. DefinitionDefinition of the development and of the development and maintenance maintenance environmentenvironment is a is a first-class first-class artifactartifact of a successful process. of a successful process.

Robust, integrated development!Robust, integrated development! Hire good people and equip them with modern Hire good people and equip them with modern

tools.tools. A prime motivatorA prime motivator: learning tools and : learning tools and

environments of our profession!environments of our profession! Yet today’s environments still fall short of what Yet today’s environments still fall short of what

they can be.they can be. So much more is coming…and coming… and…So much more is coming…and coming… and…

22 10

4. Improving Automation Through 4. Improving Automation Through Software Environments – cont. (3 of 3)Software Environments – cont. (3 of 3)

Be Be carefulcareful of tool vendor claims. of tool vendor claims. (Can prove anything with statistics!)(Can prove anything with statistics!) Remember, the tools must be Remember, the tools must be integratedintegrated

into the development environment. into the development environment. Authors suggests that in his experience, Authors suggests that in his experience,

the the combined effectcombined effect of all tools is less than of all tools is less than 40% (5% for an 40% (5% for an individual toolindividual tool) and most ) and most benefits are benefits are NOT realizedNOT realized without a without a corresponding change in the corresponding change in the processprocess that that will require their use.will require their use.

But this is substantial!!But this is substantial!!

22 11

5.5. Achieving Required Quality (1 of 5)Achieving Required Quality (1 of 5)

Many of the items we have discussed Many of the items we have discussed not only favorably affect the not only favorably affect the development processdevelopment process but impact but impact overall qualityoverall quality.. (Remember this statement for questions (Remember this statement for questions

ahead…)ahead…) Author presents a rather comprehensive Author presents a rather comprehensive

table – p. 49 – for our consideration:table – p. 49 – for our consideration: This table represents General Quality This table represents General Quality

improvements improvements realizablerealizable with a modern with a modern practice:practice:

22 12

Table 3-5. General Quality Improvements with a Modern ProcessQuality Driver Conventional Process Modern Iterative Processes

Requirements misunderstanding Discovered late Resolved early

Development risk Unknown until late Understood and resolved early

Commercial components Mostly unavailable Still a quality driver, but tradeoffs must be resolved early in the life cycle

Change management Late in life cycle; chaotic and malignant

Early in life cycle; straight-forward and benign

Design errors Discovered late Resolved early

Automation Mostly error-prone manual procedures

Mostly automated, error-free evolution of artifacts

Resource adequacy Unpredictable Predictable

Schedules Over-constrained Tunable to quality, performance, and technology

Target performance Paper-based analysis or separate simulation

Executing prototypes, early performance feedback, quantitative understanding

Software process rigor Document-based managed, measured, and tool-supported

22 13

5. Achieving Required Quality – 5. Achieving Required Quality – continued (3 of5 )continued (3 of5 )

Additional overall quality factorsAdditional overall quality factors:: 1. Focus on 1. Focus on requirements drivingrequirements driving the the

process – namely: process – namely: address critical use cases address critical use cases earlyearly and and traceability latetraceability late in the life cycle. in the life cycle.

BalanceBalance requirements, development and plan requirements, development and plan evolutionevolution

2. 2. Use metrics / indicatorsUse metrics / indicators to measure to measure progressprogress and qualityand quality of the architecture as it evolves of the architecture as it evolves from a high-level prototype to a from a high-level prototype to a fully compliant fully compliant productproduct

Remember: the architecture drives much of the Remember: the architecture drives much of the process! Discuss. What does it drive?process! Discuss. What does it drive?

How do you think we measure this progress??How do you think we measure this progress??

22 14

5. Achieving Required Quality – 5. Achieving Required Quality – continued (4 of 5)continued (4 of 5)

Additional overall quality factorsAdditional overall quality factors 3. 3. Provide Provide integrated life-cycle integrated life-cycle

environmentsenvironments that support early and that support early and continuous configuration control, change continuous configuration control, change management, rigorous design methods, management, rigorous design methods, document automation, and regression test document automation, and regression test automationautomation

4. 4. Use Use visual modelingvisual modeling and HLL that and HLL that support architectural control, abstraction, support architectural control, abstraction, design reuse…design reuse…

5. Continually look into 5. Continually look into performanceperformance issues. issues. Require demonstration-based evaluations.Require demonstration-based evaluations.

Think: Think: HOWHOW are these so? Can you answer?? are these so? Can you answer??

22 15

5. Achieving Required Quality – 5. Achieving Required Quality – continued (last)continued (last)

Performance issues:Performance issues: Be Be carefulcareful with commercial components with commercial components

and custom-built componentsand custom-built components Assessment of performance can Assessment of performance can

degradedegrade as we progress through our as we progress through our process.process.

Planned, managed demonstration-Planned, managed demonstration-based assessments – the way to go.based assessments – the way to go.

WHY do you think this is so???WHY do you think this is so??? Particularly true to demonstrate EARLY Particularly true to demonstrate EARLY

architectural flaws or weaknesses in architectural flaws or weaknesses in commercial components where there is time commercial components where there is time to make adjustments…to make adjustments…

22 16

6. Peer Inspections: A Pragmatic View6. Peer Inspections: A Pragmatic View

An old way ‘asserted’ to yield super An old way ‘asserted’ to yield super results. -> Just don’t provide the results. -> Just don’t provide the return desired in today’s complex return desired in today’s complex systems.systems. Good in some cases such as to nurture Good in some cases such as to nurture

less-experienced team membersless-experienced team members Catch the real bad blunders early.Catch the real bad blunders early.

Inspections can be applied at various Inspections can be applied at various times during a cycle. Consider:times during a cycle. Consider:

22 17

6. Peer Inspections: A Pragmatic View 6. Peer Inspections: A Pragmatic View – continued (2 of 7)– continued (2 of 7)

1. INSPECTIONS FOR: 1. INSPECTIONS FOR: TransitioningTransitioning engineering info from one engineering info from one artifact setartifact set to to another, thereby assessing the consistency, another, thereby assessing the consistency, feasibility, understandability, and technology feasibility, understandability, and technology constraints inherent in the engineering constraints inherent in the engineering artifacts.artifacts. Example: analysis classes will morph into design Example: analysis classes will morph into design

classes which will typically become part of classes which will typically become part of packages or components… In doing so, packages or components… In doing so, have we have we lostlost, for example, the desired functionality?, for example, the desired functionality?

If the functionality is accommodated by a number If the functionality is accommodated by a number of design model elements, of design model elements, can you ensure that can you ensure that the functionality is NOT lostthe functionality is NOT lost? Can you TRACE ? Can you TRACE it?it?

Discuss. Discuss.

22 18

6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic View – (3 of 7)View – (3 of 7)

2. INSPECTIONS: Major 2. INSPECTIONS: Major milestone milestone demonstrationsdemonstrations Force artifact assessment against tangible Force artifact assessment against tangible

criteria for relevant use cases…criteria for relevant use cases… 3. INSPECTIONS using Environment 3. INSPECTIONS using Environment

tools tools 4. 4. Life-cycle testingLife-cycle testing – provides insight – provides insight

into requirements compliance…into requirements compliance… 5. INSPECTIONS: Study Change 5. INSPECTIONS: Study Change

Management Management metricsmetrics – must manage – must manage Change and how change requests might Change and how change requests might impact both quality and progress goals.impact both quality and progress goals.

22 19

6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic View – (4 of 7) View – (4 of 7)

OverallOverall:: Ensure that critical components are Ensure that critical components are

really looked at by the primary really looked at by the primary stakeholders. stakeholders. Cannot really look at Cannot really look at allall artifacts. artifacts. Inspecting ‘too many artifacts’ will Inspecting ‘too many artifacts’ will not be not be

cost-effectivecost-effective – on the contrary! – on the contrary! Many artifacts don’t deserve / merit close Many artifacts don’t deserve / merit close

scrutinyscrutiny – and most inspections tend to be – and most inspections tend to be quite superficial.,quite superficial.,

22 20

6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic View – (5 of 7)View – (5 of 7)

Love thisLove this: Many highly complex : Many highly complex applications have demanding dimensions applications have demanding dimensions of complexity which include innumerable of complexity which include innumerable components, concurrent execution, components, concurrent execution, distributed resources, and more.distributed resources, and more.

Most inspections thus end up looking at Most inspections thus end up looking at stylestyle and ‘first-order’ semantic issues and ‘first-order’ semantic issues rather than real issues of substance.rather than real issues of substance.

Discuss technical / managerial reviewsDiscuss technical / managerial reviews

22 21

6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic View – (6 of 7)View – (6 of 7)

Most major difficulties such as Most major difficulties such as performance, performance, concurrency, distributionconcurrency, distribution, etc. are , etc. are discovered through activities such as: discovered through activities such as: Analysis, Analysis, prototyping, and experimentationprototyping, and experimentation Constructing design models (can see requirements Constructing design models (can see requirements

missing; can see architectural constraints missing; can see architectural constraints unaccounted…)unaccounted…)

Committing the current state of the Committing the current state of the designdesign to an to an executable implementationexecutable implementation

Demonstrating the current Demonstrating the current implementationimplementation strengths and weaknesses in the context of strengths and weaknesses in the context of critical critical subsetssubsets of use cases and scenarios of use cases and scenarios

Incorporating lessons learned back into the models, Incorporating lessons learned back into the models, use cases, implementations, and plans.use cases, implementations, and plans.

22 22

6. Peer Inspections: A Pragmatic 6. Peer Inspections: A Pragmatic View - lastView - last

Remember: the RUP is (among other things) architecture-centric, Remember: the RUP is (among other things) architecture-centric, use-case driven, iterative development use-case driven, iterative development processprocess..

Iterations are Iterations are plannedplanned to address (decreasing) priorities: risk and to address (decreasing) priorities: risk and core functionalities as identified in core functionalities as identified in Use Cases and Supplementary Use Cases and Supplementary Specifications (=SRS) Specifications (=SRS)

This This iterative processiterative process evolvesevolves the the architecturearchitecture through the phases through the phases especiallyespecially and and mainlymainly elaboration. elaboration.

Each phase has milestones and focus on inspecting critically-Each phase has milestones and focus on inspecting critically-important issues.important issues.

Overall there is very questionable ROI on meetings, inspections, or Overall there is very questionable ROI on meetings, inspections, or documents.documents.

Quality assurance is every stakeholder’s responsibility. Quality assurance is every stakeholder’s responsibility.