® University of Kansas – Principles of Software Engineering Professional Software Development...

61
® University of Kansas – Principles of Software University of Kansas – Principles of Software Engineering Engineering Professional Software Development Damian Madden Damian Madden EECS 810 EECS 810 December 11, 2008 December 11, 2008

Transcript of ® University of Kansas – Principles of Software Engineering Professional Software Development...

Page 1: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

Professional SoftwareDevelopmentProfessional SoftwareDevelopment

Damian MaddenDamian MaddenEECS 810EECS 810December 11, 2008December 11, 2008

Page 2: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

2

Telcordia Technologies Telcordia Technologies changed ~3,000 lines of changed ~3,000 lines of codecode in a in a code base of 1 million linescode base of 1 million lines..

Made the changes, going through the entire software Made the changes, going through the entire software development lifecycle, in a development lifecycle, in a total of 9 hourstotal of 9 hours..

A year later, A year later, no errors had been foundno errors had been found in operation. in operation.

An organization that committed to achieving An organization that committed to achieving outstanding quality attained:outstanding quality attained:

an average of an average of 39% reduction39% reduction in its post-release defect rate in its post-release defect rate every year for 9 yearsevery year for 9 years

a a cumulative reduction of 99%cumulative reduction of 99%..

Software Development SuccessesSoftware Development Successes

Professional Software DevelopmentProfessional Software Development

Page 3: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

3

A team developing software for the United States Air A team developing software for the United States Air Force, committed to a Force, committed to a 1 year schedule1 year schedule and a and a $2 $2 million budgetmillion budget..

Other credible bids were as high as 2 years and $10 million.Other credible bids were as high as 2 years and $10 million.

The project was The project was delivered 1 month earlydelivered 1 month early..

The project manager stated that the The project manager stated that the success was fromsuccess was from using techniques known for yearsusing techniques known for years, but rarely used in , but rarely used in practice.practice.

An aerospace company develops software for An aerospace company develops software for companies on a fixed-price basis.companies on a fixed-price basis.

Only Only 3% of its projects overrun3% of its projects overrun their budgets. their budgets.

An amazing An amazing 97% meet their targets97% meet their targets..

Software Development SuccessesSoftware Development Successes

Professional Software DevelopmentProfessional Software Development

Page 4: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

4

~25% of all projects fail outright.~25% of all projects fail outright.

At the point of cancellation, the typical project is At the point of cancellation, the typical project is already 100% over budget.already 100% over budget.

Perception that its quality problems are insurmountable.Perception that its quality problems are insurmountable.

50% of projects are:50% of projects are: delivered latedelivered late

over budgetover budget

with less functionality than desired.with less functionality than desired.

Software Development FailuresSoftware Development Failures

Professional Software DevelopmentProfessional Software Development

Page 5: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

5

The The IRS botched an $8 billion softwareIRS botched an $8 billion software modernization program.modernization program.

Cost to US taxpayers was Cost to US taxpayers was $50 billion per year in lost $50 billion per year in lost revenuerevenue..

The planned budget for the FAA’s The planned budget for the FAA’s Advanced Advanced Automation System was overrun by ~$3 billionAutomation System was overrun by ~$3 billion..

Denver International Airport’s opening was Denver International Airport’s opening was delayed for delayed for more than a yearmore than a year..

Problems with the baggage handling system.Problems with the baggage handling system.

The delay’s cost estimates were up to The delay’s cost estimates were up to $1.1 million per day$1.1 million per day..

Software Development FailuresSoftware Development Failures

Professional Software DevelopmentProfessional Software Development

Page 6: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

6

A A software error caused the Ariane 5 rocket to software error caused the Ariane 5 rocket to blow upblow up on its maiden launch. on its maiden launch.

A A software problem grounded the B-2 bombersoftware problem grounded the B-2 bomber on on its maiden flight.its maiden flight.

In Seattle, In Seattle, computer-controlled ferries caused more computer-controlled ferries caused more than a dozen dock crashesthan a dozen dock crashes..

Resulted in Resulted in damage worth more than $7 milliondamage worth more than $7 million..

Washington state recommended spending Washington state recommended spending more thanmore than $3 $3 million to change the ferries back million to change the ferries back to manual controls.to manual controls.

Software Development FailuresSoftware Development Failures

Professional Software DevelopmentProfessional Software Development

Page 7: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

Professional Software Development looks at,Professional Software Development looks at,

“…the emerging profession of software engineering - and professional software practices that support [the] economical creation of high-quality software.”

“…the emerging profession of software engineering - and professional software practices that support [the] economical creation of high-quality software.”

Steve McConnellSteve McConnell

Page 8: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

8

Steve McConnell is CEO and Chief Software Engineer of Construx Software Builders.

Authored two winners of Software Development magazine’s Jolt award for outstanding software development books.

Served as Editor in Chief of IEEE Software from 1998-2002.

About the AuthorAbout the Author

Professional Software DevelopmentProfessional Software Development

Page 9: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

9

About the AuthorAbout the Author

Professional Software DevelopmentProfessional Software Development

Page 10: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

“…how the software field got to be the way it is.”“…how the software field got to be the way it is.”

Steve McConnellSteve McConnell

The Software Tar PitThe Software Tar Pit

Page 11: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

11

Many software problems that existed 25-30 years ago Many software problems that existed 25-30 years ago still exist today.still exist today.

Excessive scheduling pressure occurs in:Excessive scheduling pressure occurs in: ~75% of all medium-sized projects~75% of all medium-sized projects

90% or more of all large projects.90% or more of all large projects.

The scope of large software projects seems daunting.The scope of large software projects seems daunting. Microsoft’s initial Windows NT project required ~1,500 staff-Microsoft’s initial Windows NT project required ~1,500 staff-

years of effort, butyears of effort, but

IBM’s OS/360, completed decades prior, required more than IBM’s OS/360, completed decades prior, required more than 3 times that effort.3 times that effort.

Problems in SoftwareProblems in Software

The Software Tar PitThe Software Tar Pit

Page 12: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

12

The most frequent causes of software project failure The most frequent causes of software project failure are due to requirements problems:are due to requirements problems:

requirements define the wrong systemrequirements define the wrong system

too ambiguous to support detailed implementationtoo ambiguous to support detailed implementation

change frequently and wreak havoc on the system design.change frequently and wreak havoc on the system design.

Web development presents challenges in:Web development presents challenges in: developers keeping up with new languagesdevelopers keeping up with new languages

shifting standardsshifting standards

vendors releasing products every few monthsvendors releasing products every few months

pressure to release upgrades quickly and inexpensively.pressure to release upgrades quickly and inexpensively.

Problems in SoftwareProblems in Software

The Software Tar PitThe Software Tar Pit

Page 13: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

13

Creating software is much less tangible than the work Creating software is much less tangible than the work of moving a stone block:of moving a stone block:

both require planning in order to make work more efficient, both require planning in order to make work more efficient, butbut

progress at the beginning of a software project can be progress at the beginning of a software project can be harder to gauge.harder to gauge.

Problems in SoftwareProblems in Software

The Software Tar PitThe Software Tar Pit

Page 14: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

14

Software projects are vulnerable to a “last minute Software projects are vulnerable to a “last minute syndrome”:syndrome”:

little sense of urgency at the beginning of the projectlittle sense of urgency at the beginning of the project

project team works itself into a desperate frenzy by the end.project team works itself into a desperate frenzy by the end.

No matter how much planning there is, eventually the No matter how much planning there is, eventually the source code must be written.source code must be written.

Involves an enormous amount of detailed work.Involves an enormous amount of detailed work.

Easy to underestimate it.Easy to underestimate it.

Problems in SoftwareProblems in Software

The Software Tar PitThe Software Tar Pit

Page 15: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

15

Jumping straight into coding, without planning or Jumping straight into coding, without planning or designing the software first.designing the software first.

~75% of software project teams begin their projects this way.~75% of software project teams begin their projects this way.

Universally ineffective on all but the tiniest projects.Universally ineffective on all but the tiniest projects. Quick start doesn’t necessarily translate to quick progress Quick start doesn’t necessarily translate to quick progress

toward the finish.toward the finish.

Typically leads to the creation of numerous defects early on.Typically leads to the creation of numerous defects early on.

Studies show that 40-80% of a typical software project’s Studies show that 40-80% of a typical software project’s budget goes into fixing defects that were created earlier in budget goes into fixing defects that were created earlier in that project.that project.

Code-and-Fix DevelopmentCode-and-Fix Development

The Software Tar PitThe Software Tar Pit

Page 16: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

16

These projects end up doing as much planning as These projects end up doing as much planning as other successful projects.other successful projects.

Continues to be used because it is appealing:Continues to be used because it is appealing: allows the project team to show signs of progress earlyallows the project team to show signs of progress early

requires no training.requires no training.

Code-and-Fix DevelopmentCode-and-Fix Development

The Software Tar PitThe Software Tar Pit

Figure 2-5

Page 14

Page 17: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

17

Technologies and methodologies that are associated Technologies and methodologies that are associated with extravagant productivity claims.with extravagant productivity claims.

1960s – On-line programming1960s – On-line programming

1970s – 31970s – 3rdrd generation languages generation languages

1980s – AI and CASE tools1980s – AI and CASE tools

1990s – Object Oriented programming1990s – Object Oriented programming

2000s – Development in internet time2000s – Development in internet time

Half-hearted attempts to implement organizational Half-hearted attempts to implement organizational improvement with buzzwords:improvement with buzzwords:

TQM, QFD, TQM, QFD, SW-CMMSW-CMM, Zero Defects, Continuous Improvement, Zero Defects, Continuous Improvement

Silver BulletsSilver Bullets

The Software Tar PitThe Software Tar Pit

Page 18: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

18

Software was originally easy to change (or at least Software was originally easy to change (or at least thought to be) in small systems, hence “soft”. However, thought to be) in small systems, hence “soft”. However, more complex systems have caused this dynamic to more complex systems have caused this dynamic to change.change.

Attempts to take advantage of software’s “softness” are:Attempts to take advantage of software’s “softness” are: one of the most common sources of cost and schedule one of the most common sources of cost and schedule

overrunsoverruns

a major factor in project cancellations.a major factor in project cancellations.

Flexibility costs money now, and limiting flexibility costs Flexibility costs money now, and limiting flexibility costs disproportionately more money later.disproportionately more money later.

Is Software Really Soft?Is Software Really Soft?

The Software Tar PitThe Software Tar Pit

Page 19: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

19

Process-Oriented DevelopmentProcess-Oriented Development achieves its achieves its effectiveness through:effectiveness through:

skillful planning and use of carefully defined processesskillful planning and use of carefully defined processes

efficient use of available timeefficient use of available time

skillful application of software engineering best practices.skillful application of software engineering best practices.

Commitment-Oriented DevelopmentCommitment-Oriented Development is characterized: is characterized: by hiring the best possible peopleby hiring the best possible people

asking them for total commitment to their projectsasking them for total commitment to their projects

empowering and motivating them to extremesempowering and motivating them to extremes

seeing that they work great hours until the project is finished.seeing that they work great hours until the project is finished.

Organizational Development StylesOrganizational Development Styles

The Software Tar PitThe Software Tar Pit

Page 20: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

20

Process-oriented development succeeds because the Process-oriented development succeeds because the organization using it is constantly improving.organization using it is constantly improving.

Studies have found that individual motivation is the Studies have found that individual motivation is the largest single contributor to productivity by far.largest single contributor to productivity by far.

Commitment-oriented development derives its potency from Commitment-oriented development derives its potency from its tremendous motivational ability.its tremendous motivational ability.

Developers often go to great lengths to make their projects Developers often go to great lengths to make their projects succeed, as they have a personal commitment to them.succeed, as they have a personal commitment to them.

When used knowledgeably, either development style When used knowledgeably, either development style can produce quality software economically and quickly.can produce quality software economically and quickly.

Organizational Development StylesOrganizational Development Styles

The Software Tar PitThe Software Tar Pit

Page 21: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

21

Process look-alikes or Process look-alikes or impostorsimpostors – not very effective. – not very effective. Mimic the externals of good processes, without the substance.Mimic the externals of good processes, without the substance.

The The process-orientedprocess-oriented impostor: impostor: duplicates the many documents and meetingsduplicates the many documents and meetings

does not realize that these are side effects of a few specific does not realize that these are side effects of a few specific effective processes.effective processes.

The The commitment-orientedcommitment-oriented impostor tries to duplicate impostor tries to duplicate by generating few documents, gives incentives, and by generating few documents, gives incentives, and requires extensive overtime.requires extensive overtime.

Does not realize that overtime is not Does not realize that overtime is not requiredrequired..

Cargo Cult Software EngineeringCargo Cult Software Engineering

The Software Tar PitThe Software Tar Pit

Page 22: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

22

Scientists learn what is Scientists learn what is true, how to test true, how to test hypotheses, and how to hypotheses, and how to extend knowledge in extend knowledge in their field.their field.

Scientists must keep up Scientists must keep up to date with the latest to date with the latest research.research.

CS vs. Software EngineeringCS vs. Software Engineering

The Software Tar PitThe Software Tar Pit

Engineers learn what is true, Engineers learn what is true, what is useful, and how to what is useful, and how to apply well-understood apply well-understood knowledge to solve practical knowledge to solve practical problems.problems.

Engineers must be familiar Engineers must be familiar with knowledge that has with knowledge that has already proven to be reliable already proven to be reliable and effective.and effective.

Page 23: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

23

Scientists can afford to Scientists can afford to be narrow and be narrow and specialized.specialized.

Don’t have to be Don’t have to be regulated because they regulated because they are chiefly accountable are chiefly accountable to other scientists.to other scientists.

Undergraduate science Undergraduate science education prepares education prepares students to continue students to continue their studies.their studies.

The Software Tar PitThe Software Tar Pit

Need a broad understanding Need a broad understanding of all factors that affect the of all factors that affect the product being designed.product being designed.

Engineers Have to be Engineers Have to be regulated because they are regulated because they are chiefly accountable to the chiefly accountable to the public.public.

Undergraduate engineering Undergraduate engineering education prepares students education prepares students to enter the workforce to enter the workforce immediately after completion immediately after completion of studies.of studies.

CS vs. Software EngineeringCS vs. Software Engineering

Page 24: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

24

SSoftoftWWare are EEngineering ngineering BBody ody OOf f KKnowledge.nowledge. Started with the 1968 NATO Conference on SW Engineering.Started with the 1968 NATO Conference on SW Engineering.

Stable Core represents about 50% as of 2003.Stable Core represents about 50% as of 2003.

Half-life is around 30 years.Half-life is around 30 years.

Stabilization puts SW engineering on an educational footing.Stabilization puts SW engineering on an educational footing.

SWEBOKSWEBOK

The Software Tar PitThe Software Tar Pit

Figure 5-2

Page 42

Page 25: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

25

SW Engineering as a ProfessionSW Engineering as a Profession

The Software Tar PitThe Software Tar Pit

Figure 6-2

Page 53

Many professions Many professions exhibit a ninth exhibit a ninth characteristic, characteristic, Organizational Organizational CertificationCertification, which , which applies to applies to organizations, organizations, rather than specific rather than specific workers.workers.

Page 26: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

26

Software engineering does not fully meet the definition Software engineering does not fully meet the definition of a profession.of a profession.

Widely available initial education is just emerging.Widely available initial education is just emerging.

Certification only became available in 2002.Certification only became available in 2002.

Licensing is available only to a small portion of current Licensing is available only to a small portion of current workers.workers.

The existing code of ethics is not enforced.The existing code of ethics is not enforced.

3 steps for software engineering to reach maturity:3 steps for software engineering to reach maturity: Purge your mind of prejudices.Purge your mind of prejudices.

Collect observations and experiences systematically.Collect observations and experiences systematically.

Stop, survey what you have seen, and draw initial Stop, survey what you have seen, and draw initial conclusions.conclusions.

SW Engineering as a ProfessionSW Engineering as a Profession

The Software Tar PitThe Software Tar Pit

Page 27: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

27

The Software Tar Pit - RecapThe Software Tar Pit - Recap

The Software Tar PitThe Software Tar Pit

Page 28: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

28

QuizQuiz1.1. Two Organizational Development Styles are:Two Organizational Development Styles are:

The Software Tar PitThe Software Tar Pit

a)a)Commitment and Goal oriented.Commitment and Goal oriented.

b)b)Goal and Process oriented.Goal and Process oriented.

c)c) Commitment and Process oriented.Commitment and Process oriented.

d)d) Incentive and Goal oriented.Incentive and Goal oriented.

2.2. The typical software project is 50% over budget The typical software project is 50% over budget at the time of cancellation.at the time of cancellation.

TrueTrue

FalseFalse

Page 29: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

“…the steps individuals can take on their own to achieve higher levels of software professionalism.”

“…the steps individuals can take on their own to achieve higher levels of software professionalism.”

Steve McConnellSteve McConnell

Individual ProfessionalismIndividual Professionalism

Page 30: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

30

The MBTI is a common means of categorizing The MBTI is a common means of categorizing personality.personality.

Developed by Katherine Briggs and Isabel Briggs Developed by Katherine Briggs and Isabel Briggs Meyers, it categorizes personality types in 4 ways:Meyers, it categorizes personality types in 4 ways:

ExtroversionExtroversion (E)(E) oror IntroversionIntroversion (I)(I)

SensingSensing (S)(S) oror IntuitionIntuition (N)(N)

ThinkingThinking (T)(T) oror FeelingFeeling (F)(F)

PerceivingPerceiving (P)(P) oror JudgingJudging (J)(J)

A person takes a test that assigns 1 letter from each of A person takes a test that assigns 1 letter from each of the 4 categories, resulting in a designation (e.g. ENTJ).the 4 categories, resulting in a designation (e.g. ENTJ).

Meyers-Briggs Type IndicatorMeyers-Briggs Type Indicator

Individual ProfessionalismIndividual Professionalism

Page 31: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

31

Studies have found the most common personality type Studies have found the most common personality type for software developers is ISTJ.for software developers is ISTJ.

Tend to be serious and quiet, practical, orderly and logical.Tend to be serious and quiet, practical, orderly and logical.

Successful through concentration and thoroughness.Successful through concentration and thoroughness.

Comprise from 25-40% of software developers.Comprise from 25-40% of software developers.

One important group of software development skills is One important group of software development skills is software design skills, and many programmers aspire software design skills, and many programmers aspire to be great designers.to be great designers.

One study found that most creative human problem One study found that most creative human problem solvers seem to move easily between the S/N, T/F, solvers seem to move easily between the S/N, T/F, and P/J ends of the continuum.and P/J ends of the continuum.

Meyers-Briggs Type IndicatorMeyers-Briggs Type Indicator

Individual ProfessionalismIndividual Professionalism

Page 32: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

32

Software DemographicsSoftware Demographics

Individual ProfessionalismIndividual Professionalism

Figure 7-1

Page 69

Page 33: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

33

Software DemographicsSoftware Demographics

Individual ProfessionalismIndividual Professionalism

Table 7-1

Page 70

Many software developers have not received any Many software developers have not received any systematic training in CS, let alone SW engineering.systematic training in CS, let alone SW engineering.

Education acquired through self-study and on-the-job training.Education acquired through self-study and on-the-job training.

Providing more consistent education in software Providing more consistent education in software engineering represents a significant opportunity to engineering represents a significant opportunity to improve the level of software development practices.improve the level of software development practices.

Page 34: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

34

Software DemographicsSoftware Demographics

Individual ProfessionalismIndividual Professionalism

Table 7-3

Page 72

Table 7-2

Page 71

Page 35: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

35

Some engineers are seen as “Programming Heroes”.Some engineers are seen as “Programming Heroes”. Take on challenging assignments and write tons of code.Take on challenging assignments and write tons of code.

Work vast amounts of overtime.Work vast amounts of overtime.

Become indispensable to their projects.Become indispensable to their projects.

For every hero, there are other “Ball Hogs”.For every hero, there are other “Ball Hogs”. Don’t know how to work well with others.Don’t know how to work well with others.

Hoard design information and source code.Hoard design information and source code.

Refuse to participate in technical reviews.Refuse to participate in technical reviews.

Refuse to follow standards set by the team.Refuse to follow standards set by the team.

Sum total of their actions prevent other team members from Sum total of their actions prevent other team members from making potentially valuable contributions.making potentially valuable contributions.

Individual vs. TeamIndividual vs. Team

Individual ProfessionalismIndividual Professionalism

Page 36: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

36

A significant number of programming heroes actually A significant number of programming heroes actually turn out to be programming ball hogs.turn out to be programming ball hogs.

Teamwork generally contributes more than individual Teamwork generally contributes more than individual accomplishment does.accomplishment does.

A study of 31 software projects found that the greatest A study of 31 software projects found that the greatest single contributor to overall productivity was team single contributor to overall productivity was team cohesiveness.cohesiveness.

Individual vs. TeamIndividual vs. Team

Individual ProfessionalismIndividual Professionalism

Page 37: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

37

Software ConsciousnessSoftware Consciousness

Individual ProfessionalismIndividual Professionalism

Con ICon I – associated with a focus on – associated with a focus on self-relianceself-reliance.. Engineers operating at this level known as mavericks or Lone Engineers operating at this level known as mavericks or Lone

Rangers.Rangers.

Tend to have little tolerance for other people’s ideas.Tend to have little tolerance for other people’s ideas.

Like to work alone – don’t like following standards.Like to work alone – don’t like following standards.

Con IICon II – associated with a focus on – associated with a focus on rulesrules.. Many developers eventually discover the limitations of Con I Many developers eventually discover the limitations of Con I

and see the advantages of working in groups.and see the advantages of working in groups.

Learn rules that allow coordination of work with others.Learn rules that allow coordination of work with others.

Create informal rules, purchase, or use rules from books (e.g. Create informal rules, purchase, or use rules from books (e.g. RUP and XP).RUP and XP).

Page 38: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

38

Con IIICon III – associated with a focus on – associated with a focus on principlesprinciples.. Developers understand that the rules of any prepackaged Developers understand that the rules of any prepackaged

methodology are, at best, approximations of principle.methodology are, at best, approximations of principle.

Approximations might apply most of the time, but won’t apply Approximations might apply most of the time, but won’t apply every time.every time.

Extensive education and training are required to get here.Extensive education and training are required to get here.

Con II methodologies are “one size fits all”, which does Con II methodologies are “one size fits all”, which does not work in every situation, because of software’s not work in every situation, because of software’s varied nature.varied nature.

Most software engineers begin their careers at Con I Most software engineers begin their careers at Con I and eventually migrate to Con II.and eventually migrate to Con II.

Software ConsciousnessSoftware Consciousness

Individual ProfessionalismIndividual Professionalism

Page 39: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

39

The Software CommunityThe Software Community

Individual ProfessionalismIndividual Professionalism

Professional associations such as the IEEE Computer Professional associations such as the IEEE Computer Society are an important part of any mature profession.Society are an important part of any mature profession.

Provide opportunities for like-minded professionals to Provide opportunities for like-minded professionals to congregate and exchange ideas:congregate and exchange ideas:

• in personin person ● ● in interest groupsin interest groups

• in booksin books ● ● at conferencesat conferences

• in articlesin articles

Needs to cater to the needs of the varying educational or Needs to cater to the needs of the varying educational or professional levels of the members.professional levels of the members.

Professional organizations support numerous Professional organizations support numerous structured ways of exchanging valuable tips and tricks structured ways of exchanging valuable tips and tricks of the trade that are very useful to software engineers.of the trade that are very useful to software engineers.

Page 40: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

40

Stratification and SpecializationStratification and Specialization

Individual ProfessionalismIndividual Professionalism

Important elements of a mature profession.Important elements of a mature profession.

The software development field is stratifying into The software development field is stratifying into different levels of professional standing.different levels of professional standing.

Specialization is beginning to occur in software Specialization is beginning to occur in software engineering practices; an important trend.engineering practices; an important trend.

Figure 10-1

Page 88

Figure 10-2

Page 90

Page 41: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

41

Programmer WritingProgrammer Writing

Individual ProfessionalismIndividual Professionalism

Most software development books are written by:Most software development books are written by: Recent retireesRecent retirees ►►ConsultantsConsultants

University professorsUniversity professors ►►Think-tank developersThink-tank developers

Seminar instructorsSeminar instructors ►►Developers working on product. s/w.Developers working on product. s/w.

Developers working on production software should Developers working on production software should shoulder the primary burden of creating the handbooks.shoulder the primary burden of creating the handbooks.

The best software handbooks will be based on the work of The best software handbooks will be based on the work of software developers who have recently lived through software developers who have recently lived through production software projects.production software projects.

Write about your insights if actively developing software.Write about your insights if actively developing software.

Page 42: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

42

Individual Professionalism - RecapIndividual Professionalism - Recap

Individual ProfessionalismIndividual Professionalism

Page 43: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

43

QuizQuiz4.4. Which of the following is Which of the following is notnot an MBTI type? an MBTI type?

Individual ProfessionalismIndividual Professionalism

a)a)ExtroversionExtroversion

c)c) SensingSensing

b)b)PessimismPessimism

d)d)JudgingJudging

3.3. The greatest single contributor to overall The greatest single contributor to overall productivity is individual effort.productivity is individual effort.

TrueTrue

FalseFalse

Page 44: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

“…the organizational practices needed to support more professional software projects.”

“…the organizational practices needed to support more professional software projects.”

Steve McConnellSteve McConnell

Organizational ProfessionalismOrganizational Professionalism

Page 45: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

45

Software Gold RushSoftware Gold Rush

Individual ProfessionalismIndividual Professionalism

Begins due to the advent of a major new technology.Begins due to the advent of a major new technology. Companies and individuals rush into new technology areas.Companies and individuals rush into new technology areas.

Hope that hard work will produce a money-making product.Hope that hard work will produce a money-making product.

Characterized by high-risk, high reward dev. practices.Characterized by high-risk, high reward dev. practices. Hero-based code-and-fix development.Hero-based code-and-fix development.

1 huge success, but hundreds of other unheard of failures.1 huge success, but hundreds of other unheard of failures.

Software is not highly reliable or documented, and Software is not highly reliable or documented, and developed using hacking practices.developed using hacking practices.

Require little training and low overhead.Require little training and low overhead.

Expose projects to a high risk of failure.Expose projects to a high risk of failure.

Page 46: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

46

Post-gold rush software is characterized by more Post-gold rush software is characterized by more methodical, lower-risk, more capital and labor intensive methodical, lower-risk, more capital and labor intensive development practices.development practices.

Projects use larger teams.Projects use larger teams.

Rely and adhere to more formal processes and standards.Rely and adhere to more formal processes and standards.

Work with much larger code bases.Work with much larger code bases.

After a gold rush, you have to be more disciplined and After a gold rush, you have to be more disciplined and more skilled just to break even.more skilled just to break even.

Systematic approaches to software engineering are Systematic approaches to software engineering are necessary for post-gold rush projects to succeed.necessary for post-gold rush projects to succeed.

Software Gold RushSoftware Gold Rush

Organizational ProfessionalismOrganizational Professionalism

Page 47: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

47

Better Software PracticesBetter Software Practices

Organizational ProfessionalismOrganizational Professionalism

Companies that invest in post-gold rush development Companies that invest in post-gold rush development practices have found that their investments pay off.practices have found that their investments pay off.

Organizations that have taken on systematic Organizations that have taken on systematic improvement programs, significant investments in improvement programs, significant investments in staffing, training, work environment, and/or process staffing, training, work environment, and/or process improvement, experience the following ROI:improvement, experience the following ROI:

500-900% - James Herbsleb on 13 organizations (1994)500-900% - James Herbsleb on 13 organizations (1994)

~Same – Neil C. Olsen (1995)~Same – Neil C. Olsen (1995)

700-1900% - Rini van Solingen (1997)700-1900% - Rini van Solingen (1997)

Could be >1000% - Capers Jones (2000)Could be >1000% - Capers Jones (2000)

Could be 500% or more – Watts Humphrey (~2003)Could be 500% or more – Watts Humphrey (~2003)

Page 48: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

48

Better Software PracticesBetter Software Practices

Organizational ProfessionalismOrganizational Professionalism

Figure 13-1/2

Page 112/3

Table 13-1

Page 114

Page 49: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

49

Better Software PracticesBetter Software Practices

Organizational ProfessionalismOrganizational Professionalism

Table 13-3

Page 116

Figure 13-3

Page 117

Page 50: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

50

Organizations that use systematic estimation practices Organizations that use systematic estimation practices use formulas like COCOMO to estimate their software use formulas like COCOMO to estimate their software project effort.project effort.

These levels of returns are unprecedented in business.These levels of returns are unprecedented in business.

Improved practices have been available for decades, Improved practices have been available for decades, but most organizations are not taking advantage of but most organizations are not taking advantage of them.them.

Adoption risk is low – payoff is high.Adoption risk is low – payoff is high.

Better Software PracticesBetter Software Practices

Organizational ProfessionalismOrganizational Professionalism

Page 51: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

51

SW-CMMSW-CMM

Organizational ProfessionalismOrganizational Professionalism

Capability Maturity Model for Software.Capability Maturity Model for Software. Developed by the Software Engineering Institute (SEI) in 1987Developed by the Software Engineering Institute (SEI) in 1987

Classifies software organizations into 5 levels:Classifies software organizations into 5 levels:

• Level 1: InitialLevel 1: Initial ●● Level 4: Managed Level 4: Managed

• Level 2: RepeatableLevel 2: Repeatable ●● Level 5: Optimizing Level 5: Optimizing

• Level 3: DefinedLevel 3: Defined

~75% of all organizations are still operating at Level 1.~75% of all organizations are still operating at Level 1.

Organizations that make a serious commitment to SW-Organizations that make a serious commitment to SW-CMM-style improvement typically improve substantially, CMM-style improvement typically improve substantially, and quickly too.and quickly too.

Page 52: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

52

SW-CMMSW-CMM

Organizational ProfessionalismOrganizational Professionalism

Of more than 300 organizations studied by the SEI:Of more than 300 organizations studied by the SEI: 75% improved from Level 1 to Level 2 in 3½ years or less.75% improved from Level 1 to Level 2 in 3½ years or less.

75% improved from Level 2 to Level 3 in 2½ years or less.75% improved from Level 2 to Level 3 in 2½ years or less.

Organizations participating in SW-CMM improvement:Organizations participating in SW-CMM improvement:

Page 53: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

53

SW-CMMSW-CMM

Organizational ProfessionalismOrganizational Professionalism

Research has shown that creativity and morale of staff Research has shown that creativity and morale of staff in organizations that have focused on organizational in organizations that have focused on organizational improvement have seen increases in the “good” or improvement have seen increases in the “good” or “excellent” categories.“excellent” categories.

Success at SW-CMM improvement depends on:Success at SW-CMM improvement depends on: Commitment from top management.Commitment from top management.

Establishing a Software Engineering Process Group (SEPG).Establishing a Software Engineering Process Group (SEPG).

Appropriate training for middle management and technical Appropriate training for middle management and technical staff, along with performance rewards.staff, along with performance rewards.

SW-CMM is akin to accreditations in other industries, SW-CMM is akin to accreditations in other industries, and is an effective model for organizational assessment.and is an effective model for organizational assessment.

Page 54: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

54

Organizational Prof. - RecapOrganizational Prof. - Recap

Organizational ProfessionalismOrganizational Professionalism

Page 55: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

55

QuizQuiz6.6. Which level is known as Which level is known as DefinedDefined in the SW-CMM? in the SW-CMM?

Organizational ProfessionalismOrganizational Professionalism

a)a)22

c)c) 44

b)b)33

d)d)55

Page 56: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

“…steps that must be taken by the software industry at large to support professionalism at the individual and organizational levels.”

“…steps that must be taken by the software industry at large to support professionalism at the individual and organizational levels.”

Steve McConnellSteve McConnell

Industry ProfessionalismIndustry Professionalism

Page 57: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

57

Industry Professionalism - RecapIndustry Professionalism - Recap

Industry ProfessionalismIndustry Professionalism

Page 58: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

58

QuizQuizIndustry ProfessionalismIndustry Professionalism

Page 59: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

Interview ExcerptInterview Excerpt

Copyright © 2008 Microsoft CorporationAll Rights Reserved

http://msdn.microsoft.com/en-us/cc540029.aspx

Steve McConnellSteve McConnellCEO – Construx Software BuildersCEO – Construx Software BuildersAuthor – Professional Software DevelopmentAuthor – Professional Software Development

Page 60: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

60

McConnell, S., McConnell, S., Professional Software DevelopmentProfessional Software Development, , Addison-Wesley, 2004, Boston, Massachusetts. Addison-Wesley, 2004, Boston, Massachusetts.

ReferencesReferences

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

Page 61: ® University of Kansas – Principles of Software Engineering Professional Software Development Damian Madden EECS 810 December 11, 2008.

®

University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering

Thank You

Questions /Comments?

Thank You

Questions /Comments?