Introduction to Databases 6.830 Lecture 1 Sam Madden [email protected] [email protected] .
® University of Kansas – Principles of Software Engineering Professional Software Development...
-
Upload
vernon-kelly -
Category
Documents
-
view
215 -
download
0
Transcript of ® University of Kansas – Principles of Software Engineering Professional Software Development...
®
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
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
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
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
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
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
®
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
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
9
About the AuthorAbout the Author
Professional Software DevelopmentProfessional Software Development
®
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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
27
The Software Tar Pit - RecapThe Software Tar Pit - Recap
The Software Tar PitThe Software Tar Pit
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
®
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
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
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
32
Software DemographicsSoftware Demographics
Individual ProfessionalismIndividual Professionalism
Figure 7-1
Page 69
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.
34
Software DemographicsSoftware Demographics
Individual ProfessionalismIndividual Professionalism
Table 7-3
Page 72
Table 7-2
Page 71
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
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
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).
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
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.
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
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.
42
Individual Professionalism - RecapIndividual Professionalism - Recap
Individual ProfessionalismIndividual Professionalism
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
®
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
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.
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
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)
48
Better Software PracticesBetter Software Practices
Organizational ProfessionalismOrganizational Professionalism
Figure 13-1/2
Page 112/3
Table 13-1
Page 114
49
Better Software PracticesBetter Software Practices
Organizational ProfessionalismOrganizational Professionalism
Table 13-3
Page 116
Figure 13-3
Page 117
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
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.
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:
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.
54
Organizational Prof. - RecapOrganizational Prof. - Recap
Organizational ProfessionalismOrganizational Professionalism
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
®
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
57
Industry Professionalism - RecapIndustry Professionalism - Recap
Industry ProfessionalismIndustry Professionalism
58
QuizQuizIndustry ProfessionalismIndustry Professionalism
®
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
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
®
University of Kansas – Principles of Software EngineeringUniversity of Kansas – Principles of Software Engineering
Thank You
Questions /Comments?
Thank You
Questions /Comments?