+ All Categories
Home > Documents > Professional Software Development Shorter Schedules, Higher Quality Products, More Successful...

Professional Software Development Shorter Schedules, Higher Quality Products, More Successful...

Date post: 22-Dec-2015
Category:
View: 222 times
Download: 0 times
Share this document with a friend
Popular Tags:
130
Professional Software Professional Software Development Development Shorter Schedules, Higher Quality Shorter Schedules, Higher Quality Products, More Successful Products, More Successful Projects, Enhanced Careers Projects, Enhanced Careers by Steve McConnell by Steve McConnell Matt Sawka Matt Sawka
Transcript
Page 1: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Professional Software Professional Software DevelopmentDevelopment

Shorter Schedules, Higher Shorter Schedules, Higher Quality Products, More Quality Products, More

Successful Projects, Successful Projects, Enhanced CareersEnhanced Careers

by Steve McConnellby Steve McConnell

Matt SawkaMatt Sawka

Page 2: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

About the AuthorAbout the Author► Steve McConnell is has a bachelor's degree Whitman Steve McConnell is has a bachelor's degree Whitman

College and a master’s degree in Software College and a master’s degree in Software Engineering from Seattle University.Engineering from Seattle University.

► He has been working in the Software industry since He has been working in the Software industry since 1984, including being a consultant for Microsoft.1984, including being a consultant for Microsoft.

► From 1998-2002, he was Editor and Chief of From 1998-2002, he was Editor and Chief of IEEE IEEE SoftwareSoftware magazine. magazine.

► He is currently on a panel of experts that advises the He is currently on a panel of experts that advises the Software Engineering Body of Knowledge project and Software Engineering Body of Knowledge project and is a Vice Chair of the IEEE Professional Practices is a Vice Chair of the IEEE Professional Practices Committee.Committee.

► Currently the CEO and Chief Software Engineer of Currently the CEO and Chief Software Engineer of Contrux Software. Contrux Software.

► http://www.stevemcconnell.com/http://www.stevemcconnell.com/► http://www.contrux.com/http://www.contrux.com/

Page 3: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

PurposePurpose► What is software engineering?What is software engineering?► How does software engineering relate to computer science?How does software engineering relate to computer science?► Why isn’t regular computer programming good enough?Why isn’t regular computer programming good enough?► Why do we need a profession of software engineering?Why do we need a profession of software engineering?► Why is engineering the best model for a software Why is engineering the best model for a software

development profession?development profession?► In what ways do effective practices vary from project to In what ways do effective practices vary from project to

project (or company to company), and in what ways are they project (or company to company), and in what ways are they usually the same?usually the same?

► What can organizations do to support a professional approach What can organizations do to support a professional approach to software development?to software development?

► What can individual software developers do to become full-What can individual software developers do to become full-fledged professionals?fledged professionals?

► What can the software industry as a whole do to create a true What can the software industry as a whole do to create a true profession of software engineering?profession of software engineering?

Page 4: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

OrganizationOrganizationThe Software TarpitThe Software Tarpit

Wrestling with DinosaursWrestling with DinosaursFool’s GoldFool’s GoldCargo Cult Software Cargo Cult Software

EngineeringEngineeringBody of KnowledgeBody of KnowledgeNovum OrganumNovum Organum

Individual ProfessionalismIndividual ProfessionalismOrphans PreferredOrphans Preferred Raising Your Software Raising Your Software

ConsciousnessConsciousnessBuilding the Community      Building the Community      Programmer Writing Programmer Writing

Organizational ProfessionalismOrganizational ProfessionalismSoftware Gold RushesSoftware Gold RushesBusiness Case for Better Business Case for Better Software Software

Practices Practices Ptolemaic ReasoningPtolemaic ReasoningQuantifying Personnel FactorsQuantifying Personnel FactorsConstrux’s Professional Construx’s Professional

Development ProgramDevelopment ProgramIndustry ProfessionalismIndustry Professionalism

Engineering a ProfessionEngineering a ProfessionHard KnocksHard KnocksStinking BadgesStinking BadgesThe Professional’s CodeThe Professional’s CodeAlchemyAlchemy

Page 5: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Part OnePart One

The Software Tar PitThe Software Tar Pit

Page 6: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 1:Chapter 1:Wrestling with DinosaursWrestling with Dinosaurs

““He that will not apply new remedies He that will not apply new remedies

must expect new evils, must expect new evils,

for time is the greatest innovator.” for time is the greatest innovator.”

––Francis Bacon Francis Bacon

Page 7: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Wrestling with DinosaursWrestling with Dinosaurs► ““No scene from prehistory is quite so vivid as that of the moral No scene from prehistory is quite so vivid as that of the moral

struggles of great beasts in the tar pits. In the mind’s eye one struggles of great beasts in the tar pits. In the mind’s eye one sees dinosaurs, mammoths, and sabertoothed tigers struggling sees dinosaurs, mammoths, and sabertoothed tigers struggling against the grip of the tar. The fiercer the struggle, the more against the grip of the tar. The fiercer the struggle, the more entangling the tar, and no beast is so strong and so skillfully but entangling the tar, and no beast is so strong and so skillfully but that he ultimately sinks. that he ultimately sinks.

Large-system programming has over the past decade been Large-system programming has over the past decade been such a tar pit, and many great and powerful beasts have such a tar pit, and many great and powerful beasts have thrashed violently in it Most have emerged with running thrashed violently in it Most have emerged with running systems – few have met goals, schedules, and budgets Large systems – few have met goals, schedules, and budgets Large and small, massive or wiry, team after team has become and small, massive or wiry, team after team has become entangled in the tar No one thing seems to cause the difficulty entangled in the tar No one thing seems to cause the difficulty – any particular paw can be pulled away. But the accumulation – any particular paw can be pulled away. But the accumulation of simultaneous and interacting factors brings slower and of simultaneous and interacting factors brings slower and slower motion. Everyone seems to have been surprised by the slower motion. Everyone seems to have been surprised by the stickiness of the problem, and it is hard to discern the nature of stickiness of the problem, and it is hard to discern the nature of it But we must try to understand it if we are to solve it. it But we must try to understand it if we are to solve it.

--The Mythical Man-MonthThe Mythical Man-Month (p. 3), Fred Brooks. 1975 (p. 3), Fred Brooks. 1975

Page 8: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Wrestling with DinosaursWrestling with Dinosaurs

► Has anything changed?Has anything changed? ~75% of all medium-sized projects and 90% of or more of ~75% of all medium-sized projects and 90% of or more of

large projects are subject to excessive schedule pressure.large projects are subject to excessive schedule pressure. Overtime is the standard.Overtime is the standard.

► ““In many companies, programmers faced with deadlines have In many companies, programmers faced with deadlines have been known to spend nights in the offices.” – been known to spend nights in the offices.” – FortuneFortune, 1967, 1967

Windows NT was projected to take 1500 staff-years to Windows NT was projected to take 1500 staff-years to complete.complete.► OS/360 took more than 3 times this amount in 1966.OS/360 took more than 3 times this amount in 1966.

The advent of web-development poses the question is The advent of web-development poses the question is delivering software quickly better than delivering quality delivering software quickly better than delivering quality software? McConnell argues that this is not a new software? McConnell argues that this is not a new phenomena. phenomena.

Page 9: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 2:Chapter 2:Fool’s GoldFool’s Gold

““Hope is a good breakfast, Hope is a good breakfast,

but it is a bad supper.” but it is a bad supper.”

––Francis Bacon Francis Bacon

Page 10: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

► During the California Gold Rush of the late During the California Gold Rush of the late 1800s, many were deceived by fool’s gold – 1800s, many were deceived by fool’s gold – iron pyrite, which has the same appearance as iron pyrite, which has the same appearance as Gold. Gold.

► The last fifty years in software development The last fifty years in software development has produced similar results. Software has produced similar results. Software Engineers seeking solid processes and Engineers seeking solid processes and standards have mostly found fool’s gold, standards have mostly found fool’s gold, software practices that appear useless on first software practices that appear useless on first glance, but are actually flaky, brittle, and glance, but are actually flaky, brittle, and virtually valueless.virtually valueless.

Page 11: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

► Problem: Looking back further in history, Problem: Looking back further in history, how could we build one of the ancient how could we build one of the ancient pyramids from ancient Egypt?pyramids from ancient Egypt? The stone blocks need to be moved 10,000 The stone blocks need to be moved 10,000

meters from the river to their final resting place.meters from the river to their final resting place. You have 100 days to move the blocks.You have 100 days to move the blocks. You have 20 people to move the blocks.You have 20 people to move the blocks. You are allowed to use any method you’d like.You are allowed to use any method you’d like.

►On average, you must move the blocks 100 On average, you must move the blocks 100 meters a day (or have a method that will meters a day (or have a method that will speed up the process later on). speed up the process later on).

►How would you accomplish this?How would you accomplish this?

Page 12: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

►Option 1:Option 1: Immediately start pushing the blocks with brute Immediately start pushing the blocks with brute

force.force. Result: You move the block 10 meters a day and Result: You move the block 10 meters a day and

fall 90 meters/day behind.fall 90 meters/day behind.

Page 13: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

► Option 2:Option 2: Analyze the problem. You decide to cut down several trees Analyze the problem. You decide to cut down several trees

and use them as rollers to move the block. Create a and use them as rollers to move the block. Create a smooth, level roadway to push forward.smooth, level roadway to push forward.

Result: Although there is an initial investment to find the Result: Although there is an initial investment to find the trees, it still will pay off. trees, it still will pay off.

Page 14: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

► Option 3:Option 3: Implement option 2, but balance the pushers with pullers Implement option 2, but balance the pushers with pullers

and add log-movers, so that a group is always moving and add log-movers, so that a group is always moving extra logs in front of the block. extra logs in front of the block.

Result: An improvement on option 2, the block will be Result: An improvement on option 2, the block will be continuously moving. continuously moving.

Page 15: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

►How does software development relate to How does software development relate to ancient Egyptian pyramids?ancient Egyptian pyramids? Change the pyramid block to a software Change the pyramid block to a software

development project.development project.►You have 100 days to complete a project. This means You have 100 days to complete a project. This means

you either have to complete 1/100 of the source code you either have to complete 1/100 of the source code each day or you need to schedule some parts taking each day or you need to schedule some parts taking less time than others.less time than others.

Avoid “last-minute” syndrome (Option 1)Avoid “last-minute” syndrome (Option 1)►The development team has little concern near the The development team has little concern near the

beginning of the project, but has a frenzied push at the beginning of the project, but has a frenzied push at the end of the development cycle.end of the development cycle.

Page 16: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold► How does software development relate to ancient How does software development relate to ancient

Egyptian pyramids?Egyptian pyramids? Also avoid “code-and-fix” development (Option 2)Also avoid “code-and-fix” development (Option 2)

► Put a brute force of programmers on the project without Put a brute force of programmers on the project without properly planning or design of the software. The project team properly planning or design of the software. The project team will show initial progress but will be unable to finish strong. will show initial progress but will be unable to finish strong. Most effort will go into defects.Most effort will go into defects.

Page 17: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold► The Silver Bullet SyndromeThe Silver Bullet Syndrome

An elephant could be capture to pull block. However, An elephant could be capture to pull block. However, after it is captured, it tramples 2 workers and runs off. after it is captured, it tramples 2 workers and runs off. The managers then think they should’ve spent time The managers then think they should’ve spent time learning to handle the elephant.learning to handle the elephant.

Page 18: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold► As project planning matures, the amount of effort As project planning matures, the amount of effort

spent on later stages should be manageable.spent on later stages should be manageable.► Despite the downfalls, “code-and-fix” is still Despite the downfalls, “code-and-fix” is still

heavily used today for two reasons:heavily used today for two reasons: It provides initial signs of progressIt provides initial signs of progress It requires no trainingIt requires no training

Page 19: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold► Focusing on QualityFocusing on Quality

If an organization can remove ~95% of their If an organization can remove ~95% of their defects before a release, they can minimize the defects before a release, they can minimize the amount of effort spent on correcting them later.amount of effort spent on correcting them later.

Page 20: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold►Software isn’t “soft”.Software isn’t “soft”.► Let’s suppose you are designing a system to Let’s suppose you are designing a system to

print a set of 5 reports, and eventually 10 print a set of 5 reports, and eventually 10 reports.reports. How the reports can be “soft”:How the reports can be “soft”:

► Is ten an upper limit on thee number of reports?Is ten an upper limit on thee number of reports?►Will the future reports be similar to the initial five reports?Will the future reports be similar to the initial five reports?►Will all of the reports always be printed?Will all of the reports always be printed?►Will they always be printed in the same order?Will they always be printed in the same order?►To what extent will the user be able to customize the To what extent will the user be able to customize the

reports?reports?►Will users be allowed to define their own reports?Will users be allowed to define their own reports?►Will the reports be customizable and definable on the fly?Will the reports be customizable and definable on the fly?►Will the repots be translate to other languages?Will the repots be translate to other languages?

Page 21: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Fool’s GoldFool’s Gold

How the reports can be “hard”:How the reports can be “hard”:► Defining more than 10 reports.Defining more than 10 reports.► Defining a new report that is different form the initial set of Defining a new report that is different form the initial set of

reports.reports.► Printing a subset of the reports.Printing a subset of the reports.► Printing the reports in a user-defined order.Printing the reports in a user-defined order.► Allowing the user to customize reports.Allowing the user to customize reports.► Translating the repots to another language that users the Latin Translating the repots to another language that users the Latin

alphabet.alphabet.► Translating the reports to a another language that uses a non-Translating the reports to a another language that uses a non-

Latin alphabet or reads right-to-left.Latin alphabet or reads right-to-left.

► Bottom Line: Flexibility costs money. Limiting Bottom Line: Flexibility costs money. Limiting flexibility can save money in the short term, but can flexibility can save money in the short term, but can incur higher costs later on the development life-incur higher costs later on the development life-cycle.cycle.

Page 22: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 3:Chapter 3:Cargo Cult Software EngineeringCargo Cult Software Engineering

““In the South seas there is a cargo cult of people. During the In the South seas there is a cargo cult of people. During the war they saw airplanes with lots of good materials, and they war they saw airplanes with lots of good materials, and they want the same thing to happen now. So they’ve arranged to want the same thing to happen now. So they’ve arranged to

make things like runaways, to put fires along the sides of make things like runaways, to put fires along the sides of runways to make a wooden hut for a man to sit in, with two runways to make a wooden hut for a man to sit in, with two

wooden pieces on his head for headphones and bars of wooden pieces on his head for headphones and bars of bamboo sticking out like antennas – he’s the controller – and bamboo sticking out like antennas – he’s the controller – and they wait for the airplanes to land They’re doing everything they wait for the airplanes to land They’re doing everything right. The form is perfect. It looks exactly the way it looked right. The form is perfect. It looks exactly the way it looked

before. But it doesn’t work. No airplanes land. So I call these before. But it doesn’t work. No airplanes land. So I call these things cargo cult science, because they follow all the apparent things cargo cult science, because they follow all the apparent

precepts and forms of scientific investigation, but they’re precepts and forms of scientific investigation, but they’re missing something essential, because the planes don’t land.” missing something essential, because the planes don’t land.”

––Richard FeynmanRichard Feynman

Page 23: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Cargo Cult Software Cargo Cult Software EngineeringEngineering

► Process-oriented vs. Commitment-oriented Process-oriented vs. Commitment-oriented Development stylesDevelopment styles Process-orientedProcess-oriented

►Relies on a carefully defined process, planning, Relies on a carefully defined process, planning, scheduling, and directly application of Software scheduling, and directly application of Software Engineering best-practices.Engineering best-practices.

►This succeeds because the organization is constantly This succeeds because the organization is constantly improving on their best practices.improving on their best practices.

Commitment-orientedCommitment-oriented►Also known as “hero-oriented” or “individual Also known as “hero-oriented” or “individual

empowerment”, this style relies on hiring the best empowerment”, this style relies on hiring the best people and asking them for total commitment to a people and asking them for total commitment to a project. They work with completely autonomy project. They work with completely autonomy something work 60-100 hours a week until a project is something work 60-100 hours a week until a project is completed.completed.

►This style succeeds because it utilizes individual This style succeeds because it utilizes individual motivation.motivation.

Page 24: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Cargo Cult Software Cargo Cult Software EngineeringEngineering

► Imposters:Imposters: Process-oriented imposter (Bureaucratic)Process-oriented imposter (Bureaucratic)

►Observes successful companies using best-practices Observes successful companies using best-practices (such as NASA’s Software Engineering Laboratory), (such as NASA’s Software Engineering Laboratory), see that they have many meetings and documents see that they have many meetings and documents and emulate the deliverables only.and emulate the deliverables only.

Commitment-oriented imposterCommitment-oriented imposter►Observe successful companies like Microsoft, and Observe successful companies like Microsoft, and

emphasize the long hours and large compensation emphasize the long hours and large compensation packages, not the fact that the employees of packages, not the fact that the employees of Microsoft love to create software.Microsoft love to create software.

► Cargo-cult engineering is simply using a Cargo-cult engineering is simply using a development style “just because” or development style “just because” or “because the company requires it”, rather “because the company requires it”, rather than using the style advantageously.than using the style advantageously.

Page 25: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 4:Chapter 4:Software Engineering, Not Software Engineering, Not

Computer ScienceComputer Science

““A scientist builds in order to learn; an A scientist builds in order to learn; an engineer learns in order to build.” engineer learns in order to build.”

––Fred BrooksFred Brooks

Page 26: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

SE not CSSE not CS► Like other engineering disciplines, Software Like other engineering disciplines, Software

Engineering can be tailored for several objectives:Engineering can be tailored for several objectives: Minimal defectsMinimal defects Maximum user satisfactionMaximum user satisfaction Minimal response timeMinimal response time Good maintainabilityGood maintainability Good extendibilityGood extendibility High robustnessHigh robustness High correctness.High correctness.

► Unlike other disciplines in which risk relies on the Unlike other disciplines in which risk relies on the physical materials, Software Engineering carries physical materials, Software Engineering carries risk in optimizing the project goals.risk in optimizing the project goals. Short scheduleShort schedule Predictable delivery datePredictable delivery date Low costLow cost Small team sizeSmall team size Flexibility to make mid-project feature-set changes.Flexibility to make mid-project feature-set changes.

Page 27: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

SE not CSSE not CS►What is the best way to think of software What is the best way to think of software

development? Is it a science? Art? Craft? development? Is it a science? Art? Craft? Something else?Something else? ~40% of developers today have degrees in ~40% of developers today have degrees in

Computer Science.Computer Science. Scientists learn what is true, how to test Scientists learn what is true, how to test

hypotheses, and how to extend their hypotheses, and how to extend their knowledge.knowledge.

Engineers learn what is true, useful, and how to Engineers learn what is true, useful, and how to apply their knowledge to solve a problem.apply their knowledge to solve a problem.

► Is Software Engineering just a buzzword?Is Software Engineering just a buzzword? Some object to Software development being Some object to Software development being

classified as engineering because the classified as engineering because the commercial market doesn’t allow for the commercial market doesn’t allow for the careful, time-consuming engineering process to careful, time-consuming engineering process to be completed.be completed.

Page 28: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 5:Chapter 5:Body of KnowledgeBody of Knowledge

““Truth will sooner come out of error Truth will sooner come out of error than from confusion.” than from confusion.”

––Francis BaconFrancis Bacon

Page 29: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge► To be an expert in a field, a person needs to To be an expert in a field, a person needs to

know around 50,000 pieces of information.know around 50,000 pieces of information.► But with software engineering evolving, But with software engineering evolving,

how can anyone know enough to be how can anyone know enough to be considered an expert?considered an expert?

► Essence vs. AccidentEssence vs. Accident No Silver Bullet – Essence and Accidents of No Silver Bullet – Essence and Accidents of

Software EngineeringSoftware Engineering – Fred Brooks, 1987. – Fred Brooks, 1987. Essence – properties that something must have.Essence – properties that something must have.

►Wheels on a carWheels on a car►Software engineering: Specification, Design, and Software engineering: Specification, Design, and

Verification.Verification. Accident – optional properties.Accident – optional properties.

►Air-ConditioningAir-Conditioning►Software Engineering: Coding and testing.Software Engineering: Coding and testing.

Page 30: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge► Computer programs are complex.Computer programs are complex.

At the center, the goal is to define underlying At the center, the goal is to define underlying real-world concepts and debugging that real-world concepts and debugging that understanding.understanding.

► Software must be flexible and have the Software must be flexible and have the ability to change.ability to change. If a program is successful, more people will use If a program is successful, more people will use

it and it will be adapted to be used outside of it and it will be adapted to be used outside of its original scope.its original scope.

► Software is “invisible.”Software is “invisible.” It’s not possible to create a 2-d or 3-d It’s not possible to create a 2-d or 3-d

geometric model of the system.geometric model of the system.

Page 31: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge

► In 1968, NATO held In 1968, NATO held its first conference its first conference on Software on Software Engineering.Engineering.

►McConnell estimates McConnell estimates that in 1968, the that in 1968, the average half-life of average half-life of knowledge was knowledge was about 10 years, with about 10 years, with only about 20% of only about 20% of that knowledge at that knowledge at the Stable Core.the Stable Core.

Page 32: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge

►By 2003, By 2003, McConnell McConnell estimates that the estimates that the average half-life average half-life of knowledge was of knowledge was about 30 years, about 30 years, with about 50% of with about 50% of that knowledge at that knowledge at the Stable Core.the Stable Core.

Page 33: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge

►How can we categorize the Software How can we categorize the Software Engineering “body of knowledge” Engineering “body of knowledge” (SWEBOK)?(SWEBOK)?

Page 34: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge

►What sources contribute to the What sources contribute to the SWEBOK?SWEBOK?

Page 35: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge►What information is contained within What information is contained within

SWEBOK?SWEBOK?► SWEBOK Knowledge AreasSWEBOK Knowledge Areas

Software RequirementsSoftware Requirements►The discovery, documentation, and analysis of the The discovery, documentation, and analysis of the

functions to be implemented in software.functions to be implemented in software. Software DesignSoftware Design

►Definition of the basic structure of the system at the Definition of the basic structure of the system at the architectural and detailed levels, division into modules, architectural and detailed levels, division into modules, definition of interfaces for modules, and choice of definition of interfaces for modules, and choice of algorithms within modules.algorithms within modules.

Software ConstructionSoftware Construction► Implementation of the software including detailed design, Implementation of the software including detailed design,

coding, debugging, unit testing, technical reviews, and coding, debugging, unit testing, technical reviews, and performance optimization. This area overlaps somewhat performance optimization. This area overlaps somewhat with Software Design and Software Testing.with Software Design and Software Testing.

Page 36: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge► SWEBOK Knowledge AreasSWEBOK Knowledge Areas

Software TestingSoftware Testing►All activities associated with executing software to All activities associated with executing software to

detect defects and evaluate features. This includes detect defects and evaluate features. This includes planning, test-case design as well as the tests planning, test-case design as well as the tests themselves: development, unit, component, themselves: development, unit, component, integration, system, regression, stress, and integration, system, regression, stress, and acceptance.acceptance.

Software MaintenanceSoftware Maintenance►Revision and enhancement of existing software, Revision and enhancement of existing software,

related documentation, and tests.related documentation, and tests. Software Configuration ManagementSoftware Configuration Management

► Identification, documentation, change control of all Identification, documentation, change control of all deliverables generated on a project (source code, deliverables generated on a project (source code, content, requirements, etc…).content, requirements, etc…).

Software QualitySoftware Quality►All activities associated with providing confidence that All activities associated with providing confidence that

a software item conforms or will conform to technical a software item conforms or will conform to technical requirements.requirements.

Page 37: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Body of KnowledgeBody of Knowledge►SWEBOK Knowledge AreasSWEBOK Knowledge Areas

Software Engineering Management PlanSoftware Engineering Management Plan►Planning, tracking and controlling of software Planning, tracking and controlling of software

projects, work, and organizations.projects, work, and organizations.

Software Engineering Tools and MethodsSoftware Engineering Tools and Methods►Tolls and methodologies support (CASE tools, Tolls and methodologies support (CASE tools,

reusable libraries, formal methods and reusable libraries, formal methods and practices, etc…).practices, etc…).

Software Engineering ProcessSoftware Engineering Process►Activities related to improving development Activities related to improving development

quality, timeliness, productivity, and other quality, timeliness, productivity, and other characteristics.characteristics.

http://www.swebok.org/http://www.swebok.org/

Page 38: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 6:Chapter 6:Novum OrganumNovum Organum

““A prudent question is one-half of A prudent question is one-half of wisdom.” wisdom.”

––Francis BaconFrancis Bacon

Page 39: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum► In the 1620s, Francis Bacon In the 1620s, Francis Bacon

published Instauratio Magna published Instauratio Magna which attempted to redefine which attempted to redefine scientific inquiry. Within this scientific inquiry. Within this work is an essay, work is an essay, Novum Novum OrganumOrganum which challenges which challenges his colleagues to focus on his colleagues to focus on scientific methodologies scientific methodologies rather than deductive rather than deductive reasoning when studying the reasoning when studying the world. His view of the world. His view of the scientific method had three scientific method had three steps:steps: Purge your mind of prejudices Purge your mind of prejudices

(superstition)(superstition) Collect observations and Collect observations and

experiences systematically.experiences systematically. Stop, survey what you’ve seen, Stop, survey what you’ve seen,

and draw an initial conclusion.and draw an initial conclusion.

Page 40: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum►What does it mean to have a Software What does it mean to have a Software

Engineering “profession”?Engineering “profession”? According to the Code of Federal Regulations, a According to the Code of Federal Regulations, a

profession has:profession has:►A requirement for extensive learning and trainingA requirement for extensive learning and training►A code of ethics imposing standards higher than those A code of ethics imposing standards higher than those

normally tolerated in the marketplace.normally tolerated in the marketplace.►A disciplinary system for professionals who breach the A disciplinary system for professionals who breach the

codecode►A primary emphasis on social responsibility over strictly A primary emphasis on social responsibility over strictly

individual gain, and a corresponding duty of its individual gain, and a corresponding duty of its members to behave as members f a disciplined and members to behave as members f a disciplined and honorable profession.honorable profession.

►A prerequisite of a license priori to admission to A prerequisite of a license priori to admission to practice. practice.

Page 41: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

► Is Software Is Software Engineering a Engineering a profession?profession? The Software The Software

Engineering Institute Engineering Institute (SEI) has identified 8 (SEI) has identified 8 elements of a elements of a mature profession. mature profession.

Page 42: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

► Elements to a mature profession:Elements to a mature profession: Initial Professional EducationInitial Professional Education

►Completing a university program in their field.Completing a university program in their field. AccreditationAccreditation

►The university program is accredited by an oversight body The university program is accredited by an oversight body that determines if the program provides adequate that determines if the program provides adequate education. Accreditation Board for Engineering and education. Accreditation Board for Engineering and Technology (ABET) oversees American engineering Technology (ABET) oversees American engineering programs.programs.

Skills DevelopmentSkills Development►Education is not enough to develop full professional Education is not enough to develop full professional

capabilities, some type of further experience is needed to capabilities, some type of further experience is needed to perform the job individually with a satisfactory level of perform the job individually with a satisfactory level of competence.competence.

Page 43: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

► Elements to a mature profession:Elements to a mature profession: CertificationCertification

►A professional is requirements to pass one or more A professional is requirements to pass one or more exams that ensures they have a minimum level of exams that ensures they have a minimum level of knowledge.knowledge.

LicensingLicensing►Similar to certification, this is a mandatory exam Similar to certification, this is a mandatory exam

administered by a overrunning authority.administered by a overrunning authority.

Professional DevelopmentProfessional Development►Ongoing professional education to maintain or improve a Ongoing professional education to maintain or improve a

worker’s knowledge and skills.worker’s knowledge and skills.

Page 44: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

► Elements to a mature profession:Elements to a mature profession: Professional SocietiesProfessional Societies

►A Community of like-minded individuals who put their A Community of like-minded individuals who put their professional standards above their self-interest.professional standards above their self-interest.

Code of EthicsCode of Ethics►Ensures that a profession’s practitioners behave Ensures that a profession’s practitioners behave

responsibly. responsibly.

*Organizational Certification*Organizational Certification►Organizations must also be certified. Organizations must also be certified.

Page 45: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

►Maturity Levels for the elementsMaturity Levels for the elements Nonexistence Nonexistence

►The element simply doesn’t exist.The element simply doesn’t exist.

Ad HocAd Hoc►The element exists, but only in isolated instancesThe element exists, but only in isolated instances

EstablishedEstablished►The element exists and is clearly identifiable.The element exists and is clearly identifiable.

MaturingMaturing►The element has existed for many years and is being The element has existed for many years and is being

maintained and improved.maintained and improved.

Page 46: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Novum OrganumNovum Organum

►How does Software Engineering rank?How does Software Engineering rank? Initial Professional Education – Ad Hoc to Initial Professional Education – Ad Hoc to

EstablishedEstablished Accreditation – EstablishedAccreditation – Established Skills Development – EstablishedSkills Development – Established Licensing – Ad HocLicensing – Ad Hoc Professional Development – Ad HocProfessional Development – Ad Hoc Professional Societies – EstablishedProfessional Societies – Established Code of Ethics – EstablishedCode of Ethics – Established Organizational Certification - EstablishedOrganizational Certification - Established

Page 47: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

The Software Tar Pit SummaryThe Software Tar Pit Summary► Wrestling with DinosaursWrestling with Dinosaurs

Has anything changed?Has anything changed?► Fool’s GoldFool’s Gold

Building the Egyptian PyramidsBuilding the Egyptian Pyramids Code-And-Fix, Last-Minute, Silver-BulletCode-And-Fix, Last-Minute, Silver-Bullet Software isn’t “soft.”Software isn’t “soft.”

► Cargo Cult Software EngineeringCargo Cult Software Engineering Process-Oriented vs. Commitment-orientedProcess-Oriented vs. Commitment-oriented

► Software Engineering Not Computer ScienceSoftware Engineering Not Computer Science► Body of KnowledgeBody of Knowledge

SWEBOKSWEBOK► Novum OrganumNovum Organum

What is a profession?What is a profession?

Page 48: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Part TwoPart Two

Individual ProfessionalismIndividual Professionalism

Page 49: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 7:Chapter 7:Orphans PreferredOrphans Preferred

““Wanted: Young, skinny, wirey fellows not over 18. Wanted: Young, skinny, wirey fellows not over 18. Must be expert riders willing to risk death daily. Must be expert riders willing to risk death daily.

Orphans preferred. Wages $25/week.”Orphans preferred. Wages $25/week.”-Pony Express, 1860 -Pony Express, 1860

““We realize the skills, intellect, and personality we We realize the skills, intellect, and personality we seek are rare, and our compensation plan reflects seek are rare, and our compensation plan reflects that. In return, we expect TOTAL AND ABSOLUTE that. In return, we expect TOTAL AND ABSOLUTE COMMITMENT to project success – overcoming all COMMITMENT to project success – overcoming all

obstacles to create applications on time and within obstacles to create applications on time and within budget.”budget.”

––Jobs Rated AlmanacJobs Rated Almanac, 1995 for an SE posting., 1995 for an SE posting.

Page 50: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

► ““The stereotypical programmer is a shy young man who works The stereotypical programmer is a shy young man who works in a darkened room, intensely concentrating on magical in a darkened room, intensely concentrating on magical incantations that make the computer do his bidding. He can incantations that make the computer do his bidding. He can concentrate for 12 to 16 hours at a time, often working through concentrate for 12 to 16 hours at a time, often working through the night to make his artistic vision a reality. He subsists on the night to make his artistic vision a reality. He subsists on pizza and Twinkies. When interrupted, the programming pizza and Twinkies. When interrupted, the programming creature responds violently, hurling strings of cryptic acronyms creature responds violently, hurling strings of cryptic acronyms at his interrupter – “TCP/IP, RPC, RCS, ACM, and IEEE!” he yells. at his interrupter – “TCP/IP, RPC, RCS, ACM, and IEEE!” he yells. The programmer breaks his intense concentration only to The programmer breaks his intense concentration only to attend Star Trek conventions and watch Monty Python reruns. attend Star Trek conventions and watch Monty Python reruns. He is sometimes regarded as an indispensable genius, He is sometimes regarded as an indispensable genius, sometimes as an eccentric artist. Vital information is stored in sometimes as an eccentric artist. Vital information is stored in his head and his head alone. He is secure in his job, knowing his head and his head alone. He is secure in his job, knowing that, valuable as he is, precious few people compete for his that, valuable as he is, precious few people compete for his job.”job.”

Page 51: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

► Meyers-Briggs Type IndicatorMeyers-Briggs Type Indicator Extroversion (E) vs. Introversion (I)Extroversion (E) vs. Introversion (I)

► Extroverts are focused on the outside world, people. Introverts Extroverts are focused on the outside world, people. Introverts focus on the world of ideas.focus on the world of ideas.

Sensing (S) vs. Intuition (N)Sensing (S) vs. Intuition (N)► How a person deals with decision-making data. Sensing How a person deals with decision-making data. Sensing

persons focus on facts, concrete data and experience. Intuitive persons focus on facts, concrete data and experience. Intuitive people look for possibilities and focus on conceptual theories.people look for possibilities and focus on conceptual theories.

Thinking (T) vs. Feeling (F)Thinking (T) vs. Feeling (F)► How a person makes a decision. The thinkers make objective, How a person makes a decision. The thinkers make objective,

analytic decisions, where as feelers rely on emotions and analytic decisions, where as feelers rely on emotions and feelings.feelings.

Perceiving (P) vs. Judging (J)Perceiving (P) vs. Judging (J)► The perceiving person is flexible and likes open-ended The perceiving person is flexible and likes open-ended

possibilities, where as the judging person prefers control and possibilities, where as the judging person prefers control and order.order.

Page 52: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

►Meyers-Briggs and Software DevelopersMeyers-Briggs and Software Developers Most Software Developers (25-40%) are ISTJ.Most Software Developers (25-40%) are ISTJ.

►50-75% of programmers are introverts, compared to 50-75% of programmers are introverts, compared to 25% in the general population.25% in the general population.

About 60% of software developers have at least a About 60% of software developers have at least a Bachelors, compared to 30% of the general population.Bachelors, compared to 30% of the general population.

►80-90% of programmers are Thinking (T) compared to 80-90% of programmers are Thinking (T) compared to 50% of the general population.50% of the general population.

►There’s a 50-50% split of programmers between There’s a 50-50% split of programmers between Sensing (S) and Intuition (N).Sensing (S) and Intuition (N).

Page 53: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

►Meyers-Briggs and DesignersMeyers-Briggs and Designers Great Designers…Great Designers…

► can general move in-between categories. can general move in-between categories. ►have a mastery of common tools.have a mastery of common tools.►aren’t afraid of complexity.aren’t afraid of complexity.►seek out constructive criticism.seek out constructive criticism.►have experienced failed projects.have experienced failed projects.►are not afraid of the brute-force approach.are not afraid of the brute-force approach.►must be creative.must be creative.►have a restless desire to create.have a restless desire to create.

Page 54: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

► Total and Absolute CommitmentTotal and Absolute Commitment Although working 12 to 16 hours may seem Although working 12 to 16 hours may seem

extreme, it’s not out of the realm of possibility. extreme, it’s not out of the realm of possibility. Many Microsoft programmers working this or more Many Microsoft programmers working this or more during the development of Windows NT. during the development of Windows NT. ► ““Work pervades their existence. Friends fade into the Work pervades their existence. Friends fade into the

background. The ties of marriage fray or rip apart. background. The ties of marriage fray or rip apart. Children are neglected or deferred. Hobbies wither. Children are neglected or deferred. Hobbies wither. Computer code comes to mean everything. If private Computer code comes to mean everything. If private dreams are nursed at al, it is only to ease the pain of dreams are nursed at al, it is only to ease the pain of creating NT.” – P. Zacharycreating NT.” – P. Zachary

Programmers tend to show a loyalty to the project, Programmers tend to show a loyalty to the project, even if their loyalty to the company is waning. even if their loyalty to the company is waning.

Some programmers aim to be “hero” programmers, Some programmers aim to be “hero” programmers, who take on mountains of work and hours.who take on mountains of work and hours.

Page 55: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred

► DemographicsDemographics The average The average

programmer age peaks programmer age peaks between 30-35 years old between 30-35 years old (which is about 10 years (which is about 10 years younger than most younger than most professions).professions).

72% of computer and 72% of computer and information science BSs information science BSs and 83% of Ph. D’s were and 83% of Ph. D’s were men. men.

Only 17% of high-Only 17% of high-schoolers taking the AP schoolers taking the AP Computer Science test Computer Science test were female. This is the were female. This is the lowest % of all AP tests.lowest % of all AP tests.

Highest level Highest level of Educationof Education

% of % of developerdeveloperss

High school or High school or lessless

11.8%11.8%

Some college, Some college,

no degreeno degree17.2%17.2%

Associate’s Associate’s degreedegree

11.0%11.0%

Bachelor’s Bachelor’s degreedegree

47.4%47.4%

Graduate degreeGraduate degree 12.8%12.8%

Page 56: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Orphans PreferredOrphans Preferred► Job ProspectsJob Prospects

Job breakdown for software workersJob breakdown for software workers Current Software prsnl in Current Software prsnl in USUS

Computer and information scientists, Computer and information scientists, researchresearch

28,00028,000

Computer programmersComputer programmers 585,000585,000

Computer software engineers, Computer software engineers, applicationsapplications

380,000380,000

Computer software engineers, systems Computer software engineers, systems softwaresoftware

317,000317,000

Computer systems analystsComputer systems analysts 431,000431,000

Network systems and data comm. Network systems and data comm. analystsanalysts

119,000119,000

Other computer specialistsOther computer specialists 203,000203,000

TotalTotal 2,063,0002,063,000

Page 57: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 8:Chapter 8:Raising Your Software Raising Your Software

ConsciousnessConsciousness““If a man will begin with certainties, he If a man will begin with certainties, he

shall end in doubts; but if he will be shall end in doubts; but if he will be content to begin with doubts, he shall content to begin with doubts, he shall

end in certainties”end in certainties”

-Francis Bacon -Francis Bacon

Page 58: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Raising Your Software Raising Your Software ConsciousnessConsciousness

► In the 1970s, Charles Reich published, In the 1970s, Charles Reich published, The The Greening of AmericaGreening of America, which identified 3 types , which identified 3 types of awarenessof awareness Consciousness I (Con I): Pioneer mentalityConsciousness I (Con I): Pioneer mentality

►Great emphasis on independence and self-satisfactionGreat emphasis on independence and self-satisfaction

Consciousness II (Con II): Gray flannel suit Consciousness II (Con II): Gray flannel suit mentalitymentality►The corporate man. Knowing how to get along with other The corporate man. Knowing how to get along with other

and playing by the rulesand playing by the rules

Consciousness III (Con III): Enlightened Consciousness III (Con III): Enlightened IndependenceIndependence►Operates on the basis of principles, with little regard for Operates on the basis of principles, with little regard for

the rules of Con II and without the selfishness of Con I. the rules of Con II and without the selfishness of Con I.

Page 59: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Raising Your Software Raising Your Software ConsciousnessConsciousness

► In the 1970s, Charles Reich published, In the 1970s, Charles Reich published, The The Greening of AmericaGreening of America, which identified 3 types , which identified 3 types of awarenessof awareness Consciousness I (Con I): Pioneer mentalityConsciousness I (Con I): Pioneer mentality

►Great emphasis on independence and self-satisfactionGreat emphasis on independence and self-satisfaction

Consciousness II (Con II): Gray flannel suit Consciousness II (Con II): Gray flannel suit mentalitymentality►The corporate man. Knowing how to get along with other The corporate man. Knowing how to get along with other

and playing by the rulesand playing by the rules

Consciousness III (Con III): Enlightened Consciousness III (Con III): Enlightened IndependenceIndependence►Operates on the basis of principles, with little regard for Operates on the basis of principles, with little regard for

the rules of Con II and without the selfishness of Con I. the rules of Con II and without the selfishness of Con I.

Page 60: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Raising Your Software Raising Your Software ConsciousnessConsciousness

► Consciousness and Software DevelopmentConsciousness and Software Development Con I – Self RelianceCon I – Self Reliance

►Software developers who are “Lone Rangers”. They Software developers who are “Lone Rangers”. They have little tolerance for other ideas.have little tolerance for other ideas.

►Little training is needed. This approach works Little training is needed. This approach works adequately in small projects.adequately in small projects.

Con II – RulesCon II – Rules►Rules allow programmers to work with others. Rules allow programmers to work with others.

Con III – PrinciplesCon III – Principles►Programmers understand that the rules from Con II are Programmers understand that the rules from Con II are

based on principle. Programmers focus on the based on principle. Programmers focus on the underlying effective of their actions on software underlying effective of their actions on software development. development.

Page 61: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 9:Chapter 9:Building the CommunityBuilding the Community

““If any human being earnestly desires to push If any human being earnestly desires to push on the new discoveries instead of just on the new discoveries instead of just

retaining and using the old; to win victories retaining and using the old; to win victories over Nature as a worker rather than over over Nature as a worker rather than over

hostile critics as a disputant; to attain, in fact, hostile critics as a disputant; to attain, in fact, clear and demonstrative knowledge instead of clear and demonstrative knowledge instead of attractive and probable theory; we invite him attractive and probable theory; we invite him

as a true son of Science to join our ranks.”as a true son of Science to join our ranks.”

-Francis Bacon -Francis Bacon

Page 62: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Building the CommunityBuilding the Community

► It’s important to remember that we’re not It’s important to remember that we’re not simply lone-ranger programmers, or even simply lone-ranger programmers, or even programmers for one company, but rather a programmers for one company, but rather a community of professionals.community of professionals. IEEEIEEE ACMACM

► These organizations can provide solutions to These organizations can provide solutions to common problems or articles to further your common problems or articles to further your understanding of the field.understanding of the field.

Page 63: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 10:Chapter 10:Architects and CarpentersArchitects and Carpenters

““Engineers produce plans Builders Engineers produce plans Builders implement the plans to produce a implement the plans to produce a

product.”product.”

-Terri Maginnis-Terri Maginnis

Page 64: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Architects and CarpentersArchitects and Carpenters

► As Software Engineering continues to develop, a As Software Engineering continues to develop, a wider range of abilities will begin to distinguish wider range of abilities will begin to distinguish itself.itself. Average software developersAverage software developers Highly skilled software developersHighly skilled software developers Unlicensed software engineers/certified software Unlicensed software engineers/certified software

technologists (coders).technologists (coders). Professional Software EngineersProfessional Software Engineers

► The average person who earns a professional The average person who earns a professional degree earns 50% more than someone without.degree earns 50% more than someone without.

► The average person who earns a master’s degree The average person who earns a master’s degree will earn 25% more than someone without.will earn 25% more than someone without.

Page 65: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Architects and CarpentersArchitects and Carpenters

► Job Job SpecializationSpecialization The Surgical The Surgical

Team, proposed Team, proposed by Fred Brooks by Fred Brooks in in The Mythical The Mythical Man-MonthMan-Month

Page 66: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Architects and CarpentersArchitects and Carpenters

► Job specializations todayJob specializations today TechnologyTechnology

►Software TechnologistSoftware Technologist Knowledge of specific technologies (Microsoft, Novell, Knowledge of specific technologies (Microsoft, Novell,

Oracle, Apple)Oracle, Apple)

Software EngineeringSoftware Engineering►Software EngineersSoftware Engineers

Architecture, configuration control, cost estimation, Architecture, configuration control, cost estimation, customer support, database administration, education and customer support, database administration, education and training, function point counting, human factors, information training, function point counting, human factors, information systems, integration, maintenance and enhancement, systems, integration, maintenance and enhancement, measurement, network, package acquisition, performance, measurement, network, package acquisition, performance, planning, process improvement, quality assurance, planning, process improvement, quality assurance, requirements, reusability, standards, systems software requirements, reusability, standards, systems software support, technical writing, testing, tools development.support, technical writing, testing, tools development.

Page 67: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Architects and CarpentersArchitects and Carpenters

► Team SpecializationsTeam Specializations Construction leadConstruction lead Design leadDesign lead Planning and tracking leadPlanning and tracking lead Project business managerProject business manager Quality assurance leadQuality assurance lead Requirements leadRequirements lead

Page 68: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 11:Chapter 11:Programmer WritingProgrammer Writing

““Read not to contradict and confute, nor Read not to contradict and confute, nor to believe and tae for granted, nor to to believe and tae for granted, nor to find talk and discourse, but to weigh find talk and discourse, but to weigh

and consider.”and consider.”

-Francis Bacon-Francis Bacon

Page 69: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Programmer WritingProgrammer Writing

► ““The gap between the best software engineering The gap between the best software engineering practice and the average practice is very wide – practice and the average practice is very wide – perhaps wider than in any other engineering discipline. perhaps wider than in any other engineering discipline. A tool that disseminates good practice would be A tool that disseminates good practice would be important.”important.”

– – No Silver BulletNo Silver Bullet, Fred Brooks, Fred Brooks► According to McConnell, there are six types of authors:According to McConnell, there are six types of authors:

Recent retireesRecent retirees University professorsUniversity professors Seminar instructorsSeminar instructors ConsultantsConsultants Think-tank developersThink-tank developers Developers working on production software.Developers working on production software.

► Who should be writing our documentation?Who should be writing our documentation?

Page 70: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Programmer WritingProgrammer Writing► ““In this distribution of functions, the scholar is the delegated In this distribution of functions, the scholar is the delegated

intellect. In the right state, he is, intellect. In the right state, he is, Man ThinkingMan Thinking. In the . In the degenerate state, when the victim of society, he tends to degenerate state, when the victim of society, he tends to become a mere thinker, or, still worse, the parrot of other become a mere thinker, or, still worse, the parrot of other men's thinking. men's thinking.

……I learn immediately from any speaker how much he has I learn immediately from any speaker how much he has already lived, through the poverty or the splendor of his already lived, through the poverty or the splendor of his speech. Life lies behind us as the quarry from whence we get speech. Life lies behind us as the quarry from whence we get tiles and copestones for the masonry of today. This is the way tiles and copestones for the masonry of today. This is the way to learn grammar. Colleges and books only copy the language to learn grammar. Colleges and books only copy the language which the field and the work-yard made.“which the field and the work-yard made.“

-Excepts from ’The American Scholar’ by Ralph Waldo -Excepts from ’The American Scholar’ by Ralph Waldo Emerson (1837), Emerson (1837),

http://www.emersoncentral.com/amscholar.htmhttp://www.emersoncentral.com/amscholar.htm

► Is there a disconnect between academia and the work-force? Is there a disconnect between academia and the work-force? Are we still thinking for ourselves? Or merely “thinking” of Are we still thinking for ourselves? Or merely “thinking” of what others have thought through?what others have thought through?

Page 71: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Programmer WritingProgrammer Writing

► ““James Fenimore Cooper syndrome”James Fenimore Cooper syndrome” In In The DeerslayerThe Deerslayer, Cooper writes that 6 Indians climbed , Cooper writes that 6 Indians climbed

onto sapling to board a scow coming downstream.onto sapling to board a scow coming downstream. Mark Twain described this as a fantasy situation. Because Mark Twain described this as a fantasy situation. Because

of his knowledge of riverboat piloting, he knew this of his knowledge of riverboat piloting, he knew this situation was not plausible with the sapling or with the situation was not plausible with the sapling or with the dimensions of the scow.dimensions of the scow.

This syndrome represents a practitioner calling into the This syndrome represents a practitioner calling into the question the writings of a scholar.question the writings of a scholar.

► Does the Software Engineering literature suffer Does the Software Engineering literature suffer from James Fenimore Cooper Syndrome?from James Fenimore Cooper Syndrome?

Page 72: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Individual ProfessionalismIndividual Professionalism► Orphans PreferredOrphans Preferred

Meyers Briggs and Software Engineering demographicsMeyers Briggs and Software Engineering demographics

► Raising your Software ConsciousnessRaising your Software Consciousness The Greening of AmericaThe Greening of America

► Building the CommunityBuilding the Community IEEE and ACMIEEE and ACM

► Architects and CarpentersArchitects and Carpenters SpecializationsSpecializations

► Programmer WritingProgrammer Writing ‘‘The American Scholar’The American Scholar’ James Fenimore Cooper SyndromeJames Fenimore Cooper Syndrome

Page 73: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Part ThreePart Three

Organizational ProfessionalismOrganizational Professionalism

Page 74: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 12:Chapter 12:Software Gold RushesSoftware Gold Rushes

““Prosperity doth best discover vice, but Prosperity doth best discover vice, but adversity doth best discover virtue.”adversity doth best discover virtue.”

-Francis Bacon-Francis Bacon

““The root of all superstition is that men The root of all superstition is that men observe when a thing hits, observe when a thing hits, but not when it misses.”but not when it misses.”

-Francis Bacon-Francis Bacon

Page 75: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Software Gold Rushes Software Gold Rushes ► In 1848, gold was discovered in riverbeds in In 1848, gold was discovered in riverbeds in

California. Many self-proclaimed entrepreneurs set California. Many self-proclaimed entrepreneurs set out to make their fortune. This made up the out to make their fortune. This made up the California Gold Rush. But, by mid-1849, the majority California Gold Rush. But, by mid-1849, the majority of the easily found gold was collected. Many miners of the easily found gold was collected. Many miners would spent hours a day digging through freezing would spent hours a day digging through freezing water looking for any traces of the metal. By the water looking for any traces of the metal. By the 1850s, most miners had joined corporations to 1850s, most miners had joined corporations to continue their hunts.continue their hunts.

► Software development experienced a similar Software development experienced a similar phenomena. There are a few success stories (Bill phenomena. There are a few success stories (Bill Gates and Paul Allen of Microsoft; Steve Jobs and Gates and Paul Allen of Microsoft; Steve Jobs and Steve Wozniak of Apple, Bob Frankston and Dan Steve Wozniak of Apple, Bob Frankston and Dan Bricklin of VisiCalc), but many failures as well.Bricklin of VisiCalc), but many failures as well.

Page 76: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Software Gold Rushes Software Gold Rushes ► Much of the “software gold rush” is characterized by Much of the “software gold rush” is characterized by

high-risk projects, long hours, hacking, informal or no high-risk projects, long hours, hacking, informal or no processes, little-to-no documentation, and very little processes, little-to-no documentation, and very little quality assurance.quality assurance.

► Post-gold rush development has en emphasis on Post-gold rush development has en emphasis on lower-risk, high capital projects, larger teams, formal lower-risk, high capital projects, larger teams, formal processes, and general standards. There isn’t an processes, and general standards. There isn’t an effort to rush projects out the door, but rather do effort to rush projects out the door, but rather do thorough testing.thorough testing.

► Post-gold rush consumers are generally more Post-gold rush consumers are generally more demanding on the products that they are looking to demanding on the products that they are looking to buy. buy.

► Many companies that survive a gold-rush would not be Many companies that survive a gold-rush would not be able to survive a second.able to survive a second.

Page 77: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 13:Chapter 13:Business Case for Better Software Business Case for Better Software

PracticesPractices

““When you can measure what you are When you can measure what you are speaking about, and express it in speaking about, and express it in

numbers, you know something about numbers, you know something about it; but when you cannot measure it, it; but when you cannot measure it,

when you cannot express it in when you cannot express it in numbers, your knowledge is of a numbers, your knowledge is of a meager and unsatisfactory kind.”meager and unsatisfactory kind.”

-Lord Kelvin, 1893-Lord Kelvin, 1893

Page 78: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

►Development practices pay offDevelopment practices pay off In 1994 James Herbsleb prepared a study of 13 In 1994 James Herbsleb prepared a study of 13

organizations’ “business value” (similar to Return organizations’ “business value” (similar to Return On Investment).On Investment).► In 1995, systemic improvements increased the ROI In 1995, systemic improvements increased the ROI

anywhere from 500-900%.anywhere from 500-900%.

In 1997, Rini van Solingen found an increase In 1997, Rini van Solingen found an increase ranging from 700-1900%.ranging from 700-1900%.

In 2000, Caspers Jones found that the ROI could In 2000, Caspers Jones found that the ROI could easily be in the double digits (over 1000%).easily be in the double digits (over 1000%).

In 2001, Watts Humphrey found an ROI increase of In 2001, Watts Humphrey found an ROI increase of 500%.500%.

Page 79: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

► Current organizational effectivenessCurrent organizational effectiveness A study funded by the SEI found that those organizations who implemented a change to their development practice found an average of 35% gain in productivity, 19% A study funded by the SEI found that those organizations who implemented a change to their development practice found an average of 35% gain in productivity, 19%

schedule reduction, and post-release defects were reduced by 39%.schedule reduction, and post-release defects were reduced by 39%. The same study found that for the best-case scenarios, 58% productivity could be gained over 4 years, a compounded gain of 500% was achieved, a 23%/year schedule The same study found that for the best-case scenarios, 58% productivity could be gained over 4 years, a compounded gain of 500% was achieved, a 23%/year schedule

reduction (with a 91% reduction over 6 years), and post-release defects were reduced by 99%.reduction (with a 91% reduction over 6 years), and post-release defects were reduced by 99%.

Page 80: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

OrganizationOrganization ResultsResults

BDN InternationalBDN International ROI 300%ROI 300%

Boeing Information SystemBoeing Information System Estimates within ~20%, $5.5 million Estimates within ~20%, $5.5 million saved in 1 year, ROI 775%saved in 1 year, ROI 775%

Computer Sciences CorporationComputer Sciences Corporation 65% reduction in error rate65% reduction in error rate

General Dynamics Decision General Dynamics Decision SystemsSystems

70% reduction in rework; 94% defect 70% reduction in rework; 94% defect rate reduction (drr), 2.9*productivity rate reduction (drr), 2.9*productivity gaingain

Harris ISD DPLHarris ISD DPL 90% drr, 2.5*productivity gain, ROI 90% drr, 2.5*productivity gain, ROI 900%900%

HughesHughes $2 million reduction in costs, ROI 500%$2 million reduction in costs, ROI 500%

IBM TorontoIBM Toronto 90% drr, 80% reduction in rework90% drr, 80% reduction in rework

Motorola GEDMotorola GED 2-3*productivity gain, 2-7*cycle 2-3*productivity gain, 2-7*cycle reduction time, ROI 677%reduction time, ROI 677%

PhilipsPhilips ROI 750%ROI 750%

RaytheonRaytheon ROI 770%ROI 770%

SchlumbergerSchlumberger 4*reduction in released defects4*reduction in released defects

Page 81: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

OrganizationOrganization ResultsResults

SiemensSiemens 90% reduction in released defects90% reduction in released defects

TelcoridaTelcorida Defect 1/10 industry aver, customer Defect 1/10 industry aver, customer satisfaction up from 60% to 91%satisfaction up from 60% to 91%

Texas Instruments – SystemsTexas Instruments – Systems 90% reduction in delivered defects90% reduction in delivered defects

Thomson CSFThomson CSF ROI 360%ROI 360%

U.S. NavyU.S. Navy ROI 410%ROI 410%

USAF Ogden Air Logistics CenterUSAF Ogden Air Logistics Center ROI 1,900%ROI 1,900%

USAF Oklahoma City Air USAF Oklahoma City Air LogisticsLogistics

ROI 635%ROI 635%

USAF Tinker Air Force BaseUSAF Tinker Air Force Base ROI 600%ROI 600%

Page 82: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

PracticePractice 12-month ROI12-month ROI 36-month 36-month ROIROI

Formal code inspectionsFormal code inspections 250%250% 1,200%1,200%

Formal design inspectionsFormal design inspections 350%350% 1,000%1,000%

Long-range technology planningLong-range technology planning 100%100% 1,000%1,000%

Cost and quality estimation toolsCost and quality estimation tools 250%250% 1,200%1,200%

Productivity measurementsProductivity measurements 150%150% 600%600%

Process assessmentsProcess assessments 150%150% 600%600%

Management trainingManagement training 120%120% 550%550%

Technical staff trainingTechnical staff training 90%90% 550%550%

Page 83: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

► Performance improvements with the Capability Maturity Performance improvements with the Capability Maturity Model (CMM)Model (CMM)

Page 84: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

► Performance improvements with the Capability Maturity Model (CMM)Performance improvements with the Capability Maturity Model (CMM) In general for average organizations, In general for average organizations,

Effort = 2.94 * (KLOC)^1.10Effort = 2.94 * (KLOC)^1.10 NASA’s Software Engineering Laboratory’s (SEL) effort calculation hasNASA’s Software Engineering Laboratory’s (SEL) effort calculation has

Effort = 1.27 * (KLOC)^.986Effort = 1.27 * (KLOC)^.986 The .986 is especially important because it means they are achieving a slight economy of scale.The .986 is especially important because it means they are achieving a slight economy of scale.

► COCOMO IICOCOMO II Only three of the 22 factors used to calculate effort were changeable at the individual project management level: Level of Documentation, Architecture and Risk Resolution, and Development for Reuse. Most of these factors are at the organizational level and cannot be easily changed.Only three of the 22 factors used to calculate effort were changeable at the individual project management level: Level of Documentation, Architecture and Risk Resolution, and Development for Reuse. Most of these factors are at the organizational level and cannot be easily changed.

Page 85: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Business Case for Better Software Business Case for Better Software PracticesPractices

10 questions to ask about software activities10 questions to ask about software activities1.1. How much are you spending on software development?How much are you spending on software development?

2.2. What percentage of your projects are currently on time and on What percentage of your projects are currently on time and on budget?budget?

3.3. What is the average schedule and budget overrun for your projects?What is the average schedule and budget overrun for your projects?

4.4. Which of your current projects are most likely to fail outright?Which of your current projects are most likely to fail outright?

5.5. What percentage of your project costs arises from avoidable What percentage of your project costs arises from avoidable rework?rework?

6.6. How satisfied (quantitatively) are users of your software?How satisfied (quantitatively) are users of your software?

7.7. How do the skills of your staff compare to the industry averages?How do the skills of your staff compare to the industry averages?

8.8. How do the capabilities of your organization compare to similar How do the capabilities of your organization compare to similar organizations?organizations?

9.9. How much (quantitatively) has your productivity improved in the How much (quantitatively) has your productivity improved in the past 12 months?past 12 months?

10.10. What is your plan for improving the skills of your staff and the What is your plan for improving the skills of your staff and the effectiveness of your organization?effectiveness of your organization?

Page 86: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 14:Chapter 14:Ptolemaic ReasoningPtolemaic Reasoning

““All models are wrong; All models are wrong;

some models are useful.”some models are useful.”

-George Box-George Box

““Knowledge itself is power.”Knowledge itself is power.”

-Francis Bacon-Francis Bacon

Page 87: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

► Ptolemy was an astronomer who lived Ptolemy was an astronomer who lived around A.D. 100 and theorized that the sun around A.D. 100 and theorized that the sun revolved around the earth. revolved around the earth.

►His theory was eventually replaced by His theory was eventually replaced by Copernicus when his data showed findings Copernicus when his data showed findings that contradicted Ptolemy. that contradicted Ptolemy.

► In the same way, real-world data supports In the same way, real-world data supports an object-oriented development process.an object-oriented development process.

Page 88: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

► Capability Maturity ModelCapability Maturity Model Developed by the Software Engineering Developed by the Software Engineering

Institute.Institute. There are five software levels:There are five software levels:

►Level 1: InitialLevel 1: Initial Software development is chaotic. This is the default Software development is chaotic. This is the default

level where the organization generally relies on the level where the organization generally relies on the “code-and-fix development” model. “code-and-fix development” model.

►Level 2: RepeatableLevel 2: Repeatable Basic project management practices are established on Basic project management practices are established on

a project-by-project basis. The strength of the a project-by-project basis. The strength of the organization lies on its ability to repeated experiences.organization lies on its ability to repeated experiences.

Page 89: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

► Capability Maturity ModelCapability Maturity Model►Level 3: DefinedLevel 3: Defined

The organization adopts standardized technical and The organization adopts standardized technical and management processes across the organization. A group is management processes across the organization. A group is assigned to monitor the software process. assigned to monitor the software process.

►Level 4: ManagedLevel 4: Managed Project outcomes become highly predictable. A standard Project outcomes become highly predictable. A standard

process is identified and variations can be detected. process is identified and variations can be detected. ►Level 5: OptimizingLevel 5: Optimizing

The focus of the organization is on proactive identification of The focus of the organization is on proactive identification of process improvements. It has the ability to measure changes process improvements. It has the ability to measure changes to the process and identify their strengths and weaknesses.to the process and identify their strengths and weaknesses.

Conway’s Law: The structure of a computer Conway’s Law: The structure of a computer program reflects the structure of the organization program reflects the structure of the organization that built it.that built it.

Page 90: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

►Navigating the Capability Maturity ModelNavigating the Capability Maturity Model

19911991 20022002

Page 91: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

►Navigating the Capability Maturity ModelNavigating the Capability Maturity Model

Page 92: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

► CMM and Risk ManagementCMM and Risk Management Cheyenne Mountain ATAMS projectCheyenne Mountain ATAMS project

► The project team was able to…The project team was able to… complete the project in 1/5complete the project in 1/5thth of the projected time. of the projected time. complete the project in ½ of the estimated time.complete the project in ½ of the estimated time.

► Overall, they were able to deliver the software one month Overall, they were able to deliver the software one month ahead of schedule and within budget.ahead of schedule and within budget.

► Eighteen months after release, only two defects were Eighteen months after release, only two defects were discovered. discovered.

► Would developers like CMM?Would developers like CMM? In a survey of 50 organizations, 20% of level 1 In a survey of 50 organizations, 20% of level 1

organization rated staff morale as “good” or “excellent”.organization rated staff morale as “good” or “excellent”. At Level 2, 50% of the staff rated morale as “good” or At Level 2, 50% of the staff rated morale as “good” or

“excellent”.“excellent”. At Level 3, 60% of the staff rated morale as “good” or At Level 3, 60% of the staff rated morale as “good” or

“excellent”.“excellent”. Most developers working in a level 5 environment don’t Most developers working in a level 5 environment don’t

want to work for an organization that is less than level 5.want to work for an organization that is less than level 5.

Page 93: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Ptolemaic ReasoningPtolemaic Reasoning

►What does it take to implement CMM?What does it take to implement CMM? Commitment from top management (and Commitment from top management (and

follow-through)follow-through) Establishment of a Software Engineering Establishment of a Software Engineering

process group (sometimes multiple groups).process group (sometimes multiple groups). Appropriate training in middle management Appropriate training in middle management

and various technical positions. and various technical positions.

►What is success?What is success? Success = Planning * ExecutionSuccess = Planning * Execution As an organization moves up CMM levels, they As an organization moves up CMM levels, they

will find that lower levels seem valuable and will find that lower levels seem valuable and less effective.less effective.

Page 94: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 15:Chapter 15:Quantifying Personnel FactorsQuantifying Personnel Factors

““Personnel attributes and human Personnel attributes and human relations activities provide by far the relations activities provide by far the

largest source of opportunity for largest source of opportunity for improving software productivity.improving software productivity.

-Barry W. Boehm-Barry W. Boehm

Page 95: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Quantifying Personnel Quantifying Personnel FactorsFactors

► Personnel ExperiencePersonnel Experience In a study conducted by Sackman, Eriskon, and Grant, In a study conducted by Sackman, Eriskon, and Grant,

they found that the variance in time-to-completion for a they found that the variance in time-to-completion for a programming problem varied almost 20-to-1 among a programming problem varied almost 20-to-1 among a programmers with 7+ years of experience.programmers with 7+ years of experience.

Other studies have found similar findings ranging Other studies have found similar findings ranging anywhere from 5-to-1 to 10-to-1. anywhere from 5-to-1 to 10-to-1.

In some cases, the programmers were unable to In some cases, the programmers were unable to complete the problem.complete the problem.

In a group of 7 random programmers, there’s a 50/50 In a group of 7 random programmers, there’s a 50/50 change that at least one of the programmers will produce change that at least one of the programmers will produce negative productivity.negative productivity.

► COCOMO II COCOMO II There are 7 factors that are influenced by experience: There are 7 factors that are influenced by experience:

Application experience (1.51), Communications factors Application experience (1.51), Communications factors (1.53), Language and tool experience (1.43), Personnel (1.53), Language and tool experience (1.43), Personnel continuity (1.51), Platform experience (1.40), continuity (1.51), Platform experience (1.40), Programmer capability (1.76), Analyst capability (2.00).Programmer capability (1.76), Analyst capability (2.00).

Page 96: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Quantifying Personnel Quantifying Personnel FactorsFactors

► Physical EnvironmentPhysical Environment In these war-games, the environment played a factor. Of In these war-games, the environment played a factor. Of

the top 25% of programmers, most have bigger, private the top 25% of programmers, most have bigger, private offices (~78 ftoffices (~78 ft22) with fewer interruptions) with fewer interruptions

► MotivationMotivation Microsoft provides each group with a “morale budget” Microsoft provides each group with a “morale budget”

which the team can spend on anything from plaques, to which the team can spend on anything from plaques, to t-shirts, to dinner and movies.t-shirts, to dinner and movies.

Microsoft allows programmers to accommodate family Microsoft allows programmers to accommodate family situations.situations.

► SenioritySeniority Because programming experience plays such a large Because programming experience plays such a large

factor in development, many companies have found factor in development, many companies have found success in have senior personnel help with each project.success in have senior personnel help with each project.

Page 97: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 16:Chapter 16:

Construx’s Professional Development Construx’s Professional Development ProgramProgram

Page 98: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Construx’s Professional Development Construx’s Professional Development ProgramProgram

► Construx’s Software Development objectivesConstrux’s Software Development objectives Skills enhancementSkills enhancement

► Improve the skills of the employeesImprove the skills of the employees Career pathingCareer pathing

►Provides a structured path for improvement and career Provides a structured path for improvement and career choice.choice.

Support for common software job titlesSupport for common software job titles►Have a full list of titles: software developers, testers, Have a full list of titles: software developers, testers,

business analysts, project managers, architects, etc…business analysts, project managers, architects, etc… ConsistencyConsistency

►Provide a consistent means for evaluationProvide a consistent means for evaluation Generlizability beyond ContruxGenerlizability beyond Contrux

►Provide a generic framework for other companies to model.Provide a generic framework for other companies to model.

Page 99: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Construx’s Professional Development Construx’s Professional Development ProgramProgram

► Construx’s Knowledge Areas (SWEBOK)Construx’s Knowledge Areas (SWEBOK) Software RequirementsSoftware Requirements Software DesignSoftware Design Software ConstructionSoftware Construction Software TestingSoftware Testing Software MaintenanceSoftware Maintenance Software Configuration ManagementSoftware Configuration Management Software QualitySoftware Quality Software Engineering ManagementSoftware Engineering Management Software Engineering Tools and MethodsSoftware Engineering Tools and Methods Software Engineering ProcessSoftware Engineering Process

Page 100: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Construx’s Professional Development Construx’s Professional Development ProgramProgram

► Construx’s Capability LevelsConstrux’s Capability Levels IntroductoryIntroductory

►Employee can perform basic functions in an area under Employee can perform basic functions in an area under supervision. Professional development is occurring.supervision. Professional development is occurring.

CompetencyCompetency►Employ can perform effective, independent work and serve Employ can perform effective, independent work and serve

as a role model for the less experienced. Occasionally as a role model for the less experienced. Occasionally mentorsmentors

LeadershipLeadership►Employee performs exemplary work and regularly coaches Employee performs exemplary work and regularly coaches

employees and provides some leadership direction.employees and provides some leadership direction. MasteryMastery

►Employee can perform reference work and has deep Employee can perform reference work and has deep experience. Usually, the employee has taught classes or experience. Usually, the employee has taught classes or written papers. They are recognized outside of Construx.written papers. They are recognized outside of Construx.

Page 101: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Construx’s Professional Development Construx’s Professional Development ProgramProgram

► Construx’s Capability LevelsConstrux’s Capability Levels

IntroductorIntroductoryy

CompetenCompetencycy

LeadershipLeadership MasteryMastery

IntroductorIntroductoryy

IntroductorIntroductoryy

CompetenCompetencycy

CompetencCompetencyy

--

CompetencCompetencyy

CompetenCompetencycy

CompetenCompetencycy

CompetencCompetencyy

--

LeadershipLeadership CompetenCompetencycy

CompetenCompetencycy

LeadershipLeadership MasteryMastery

MasteryMastery -- -- MasteryMastery MasteryMastery

Experience

Knowledge

Page 102: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Construx’s Professional Development Construx’s Professional Development ProgramProgram

► Construx’s Professional Development LadderConstrux’s Professional Development Ladder Each engineer is giving a rating between 9-15, Each engineer is giving a rating between 9-15,

based on their knowledge and experience. A 12 based on their knowledge and experience. A 12 is considered to by a full professional.is considered to by a full professional.

Most engineers don’t go beyond because it Most engineers don’t go beyond because it requires career-long commitments to the requires career-long commitments to the company to the Software Engineering field.company to the Software Engineering field.

► Construx’s CultureConstrux’s Culture Professional Development Plan, Mentoring Professional Development Plan, Mentoring

Program, Professional Development Plaques, Program, Professional Development Plaques, Training Program, Salary Structure, SE Discussion Training Program, Salary Structure, SE Discussion groups, Level-12 recognition.groups, Level-12 recognition.

Page 103: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Organizational ProfessionalismOrganizational Professionalism► Software Gold RushesSoftware Gold Rushes

Gold Rush vs. Post-Gold Rush softwareGold Rush vs. Post-Gold Rush software

► Business Case for Better Software PracticesBusiness Case for Better Software Practices Process improvements and their effect on businessProcess improvements and their effect on business

► Ptolemaic ReasoningPtolemaic Reasoning CMMCMM

► Quantifying Personnel FactorsQuantifying Personnel Factors COCOMO IICOCOMO II Environment, Motivation, etc…Environment, Motivation, etc…

► Contrux’s Professional Development ProgramContrux’s Professional Development Program Development objectivesDevelopment objectives CKAsCKAs Capability LevelsCapability Levels Ladder-based CareersLadder-based Careers

Page 104: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Part FourPart Four

Industry ProfessionalismIndustry Professionalism

Page 105: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 17:Chapter 17:Engineering a ProfessionEngineering a Profession

““Engineering can provide a life of Engineering can provide a life of genuine satisfaction in many ways, genuine satisfaction in many ways, especially through ministering in a especially through ministering in a practical manner to the needs and practical manner to the needs and

welfare of mankind.”welfare of mankind.”

-Vannevar Bush -Vannevar Bush

Page 106: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Engineering a ProfessionEngineering a Profession

► Engineering feats of the pastEngineering feats of the past

Reims CathedralReims Cathedral

Sydney Opera Sydney Opera HouseHouse

Page 107: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Engineering a ProfessionEngineering a Profession

► Maturation Cycle of an Engineering DisciplineMaturation Cycle of an Engineering Discipline There are 3 stages in the development of a disciplineThere are 3 stages in the development of a discipline

► CraftCraft Work is performed by talented amateurs. There is little-to-no Work is performed by talented amateurs. There is little-to-no

concept of scalability.concept of scalability.

► CommercialCommercial Workers are more economically driven. The focus is on quality in Workers are more economically driven. The focus is on quality in

the products and production processes.the products and production processes.

► Professional EngineeringProfessional Engineering A corresponding science is developed to better understand the A corresponding science is developed to better understand the

engineering problem and this science is then applied on a wider engineering problem and this science is then applied on a wider scale to many of the common engineering problems of the scale to many of the common engineering problems of the discipline.discipline.

As a discipline matures, solutions to common problems are As a discipline matures, solutions to common problems are codified (equations, models, components) so that they can codified (equations, models, components) so that they can be reused.be reused.

Page 108: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Engineering a ProfessionEngineering a Profession

► The science behind softwareThe science behind software Unlike Physics, the science behind the Civil Engineering Unlike Physics, the science behind the Civil Engineering

that built the Reims Cathedral, Software Engineering that built the Reims Cathedral, Software Engineering doesn’t have an exact science behind it.doesn’t have an exact science behind it.

Software Engineering artifactsSoftware Engineering artifacts► Architectures, software design proceduresArchitectures, software design procedures► Design patternsDesign patterns► RequirementsRequirements► User Interface elements and proceduresUser Interface elements and procedures► EstimatesEstimates► Planning data (project plans, procedures)Planning data (project plans, procedures)► Test plans, cases, data, proceduresTest plans, cases, data, procedures► Technical review proceduresTechnical review procedures► Source code, construction procedures, integration proceduresSource code, construction procedures, integration procedures► Software configuration management proceduresSoftware configuration management procedures► Post-project reportsPost-project reports► Organizational structuresOrganizational structures

Page 109: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 18:Chapter 18:Hard KnocksHard Knocks

““Natural abilities like natural plants, that Natural abilities like natural plants, that need pruning by study; and studies need pruning by study; and studies

themselves do give forth directions too themselves do give forth directions too much at large, except they be much at large, except they be

bounded in by experience.”bounded in by experience.”

-Francis Bacon-Francis Bacon

Page 110: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Hard KnocksHard Knocks

Page 111: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Hard KnocksHard Knocks

► Is Computer Science relevant to Software Is Computer Science relevant to Software Engineering?Engineering? Notice the decline of Computer Science and IS Notice the decline of Computer Science and IS

degrees from 1985-1997.degrees from 1985-1997.►The decline was due to Computer Science curriculum's The decline was due to Computer Science curriculum's

becoming irrelevant to the workplace.becoming irrelevant to the workplace.

There’s an upsurge from 1998-2000.There’s an upsurge from 1998-2000.►The Gold Rush and dot-com booms fueled a resurgence The Gold Rush and dot-com booms fueled a resurgence

interested for incoming freshmen.interested for incoming freshmen.

Page 112: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Hard KnocksHard Knocks

► Should Software Engineering follow the Should Software Engineering follow the same path as other engineering disciplines?same path as other engineering disciplines?

Page 113: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Hard KnocksHard Knocks► Academic development of Software EngineeringAcademic development of Software Engineering

The first Master’s degree in Software Engineering was offered The first Master’s degree in Software Engineering was offered by Seattle University in 1982.by Seattle University in 1982.

University of Sheffield’s Computer Science department (UK) University of Sheffield’s Computer Science department (UK) offered an undergraduate Software Engineering degree in offered an undergraduate Software Engineering degree in 1988.1988.

Rochester Institute of Technology offered the first US Rochester Institute of Technology offered the first US undergraduate course in 1996.undergraduate course in 1996.

25% of Software Engineering programs are offered in the US.25% of Software Engineering programs are offered in the US. In 2003, ~24 institutions offered an undergraduate Software In 2003, ~24 institutions offered an undergraduate Software

Engineering degree.Engineering degree. Should Software Engineering focus on software or Should Software Engineering focus on software or

engineering?engineering?► AccreditationAccreditation

The Computer Science accrediting board requires that their The Computer Science accrediting board requires that their students make a ”scholarly contribution” to computer students make a ”scholarly contribution” to computer science, but no industry experience.science, but no industry experience.

ABET requires “non-academic engineering experience.”ABET requires “non-academic engineering experience.”

Page 114: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 19:Chapter 19:Stinking BadgesStinking Badges

““Badges? We ain’t got no badges. We Badges? We ain’t got no badges. We don’t need no badges. I don’t have to don’t need no badges. I don’t have to

show you any stinking badges.”show you any stinking badges.”

-Gold Hat Bandito,-Gold Hat Bandito,

The Treasure of the Sierra MadreThe Treasure of the Sierra Madre

Page 115: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Stinking BadgesStinking Badges

► CertificationCertification A voluntary process culminating in an exam that is A voluntary process culminating in an exam that is

administered by a professional society.administered by a professional society. Typically, both education and experience are Typically, both education and experience are

required.required. There are some certifications that are available.There are some certifications that are available.

► Institute for Certification of Computing Professionals’ Institute for Certification of Computing Professionals’ Associate Computing Professional and Certified Computing Associate Computing Professional and Certified Computing ProfessionalProfessional

►Microsoft’s Microsoft Certified ProfessionalMicrosoft’s Microsoft Certified Professional►Novel’s Certified Network EngineerNovel’s Certified Network Engineer►Oracle’s Oracle Certified ProfessionalOracle’s Oracle Certified Professional►Apple’s Apple Certified Server EngineerApple’s Apple Certified Server Engineer► IEEE’s Certified Software Development Professional.IEEE’s Certified Software Development Professional.

Page 116: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Stinking BadgesStinking Badges

► LicensingLicensing A mandatory legal process culminating in an exam that is A mandatory legal process culminating in an exam that is

administered by a governing agency.administered by a governing agency. Typically, this is required to protect the public (doctors, Typically, this is required to protect the public (doctors,

architects, lawyers).architects, lawyers).

► Can Software Engineering be licensed?Can Software Engineering be licensed? ‘‘There is no generally agreed upon body of knowledge for There is no generally agreed upon body of knowledge for

software engineering.’software engineering.’► SWEBOKSWEBOK

‘‘Knowledge is software engineering changes so quickly that Knowledge is software engineering changes so quickly that exams will be out of date by the time they’re offered.’exams will be out of date by the time they’re offered.’► Review the contents of SWEBOK.Review the contents of SWEBOK.

Page 117: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Stinking BadgesStinking Badges

► Can Software Engineering be licensed?Can Software Engineering be licensed? ‘‘No reasonable test for software engineering skill could be put No reasonable test for software engineering skill could be put

into a multiple-choice format. Indeed, no exam-based practices into a multiple-choice format. Indeed, no exam-based practices could adequately ensure competency of software engineers.’could adequately ensure competency of software engineers.’► Other complex disciplines already have exams (medicine, law, Other complex disciplines already have exams (medicine, law,

etc…). Why is this any different?etc…). Why is this any different? ‘‘The breadth of sub-disciplines involved in software would make The breadth of sub-disciplines involved in software would make

licensing all of the sub-disciplines impractical.’licensing all of the sub-disciplines impractical.’► The medical profession has several exams for different specialties. The medical profession has several exams for different specialties.

Only software development that will impact the public’s health Only software development that will impact the public’s health and/or welfare would need to be explicitly licensed.and/or welfare would need to be explicitly licensed.

‘‘The fundamentals of Engineering Exam required for licensing The fundamentals of Engineering Exam required for licensing existing professional engineers is inappropriate for those existing professional engineers is inappropriate for those receiving a computer science degree.’receiving a computer science degree.’► Some undergraduate degree programs focus on the engineering Some undergraduate degree programs focus on the engineering

discipline, but more work would need to be done to adopt this exam.discipline, but more work would need to be done to adopt this exam.

Page 118: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Stinking BadgesStinking Badges

► Is licensing a bad idea?Is licensing a bad idea? ‘‘Licenses would unduly restrict the number of people who Licenses would unduly restrict the number of people who

could practice software engineering at a time when could practice software engineering at a time when demand for software engineers is increasing.’demand for software engineers is increasing.’► Not all Software Engineers would be required to have a Not all Software Engineers would be required to have a

license.license. ‘‘When an engineer receives a license, it will be good for When an engineer receives a license, it will be good for

life, which is inappropriate considering that software life, which is inappropriate considering that software engineering’s body of knowledge is changing so rapidly.’engineering’s body of knowledge is changing so rapidly.’► Review SWEBOK and note that other licenses help keep Review SWEBOK and note that other licenses help keep

professionals up-to-date.professionals up-to-date. ‘‘Licensing can’t guarantee that every individual who’s Licensing can’t guarantee that every individual who’s

licensed will actually be competent. Licensing will give the licensed will actually be competent. Licensing will give the public a false sense of security.’public a false sense of security.’► Like other disciplines, only certain Software Engineers would Like other disciplines, only certain Software Engineers would

need to be licensed.need to be licensed.

Page 119: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Stinking BadgesStinking Badges

► More on LicensingMore on Licensing Texas currently offers a “bootstrap” Professional Texas currently offers a “bootstrap” Professional

Engineering license for Software Engineers.Engineering license for Software Engineers. One side-effect of being licensed is that you’re legally One side-effect of being licensed is that you’re legally

accountable for your work.accountable for your work. Licensed engineers would have the final say on Licensed engineers would have the final say on

methodology choices.methodology choices. 3 paths to general licensing3 paths to general licensing

► Specialty in engineering that focus on softwareSpecialty in engineering that focus on software► Create a software engineering specialty examCreate a software engineering specialty exam► Create a Professional Software Engineering credential.Create a Professional Software Engineering credential.

► Engineering students in Canada receive an iron ring Engineering students in Canada receive an iron ring to symbolize their commitment to society.to symbolize their commitment to society.

Page 120: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 20:Chapter 20:The Professional’s CodeThe Professional’s Code

““Although there is a little bit of Peter Pan Although there is a little bit of Peter Pan in each of us, maturity brings with it the in each of us, maturity brings with it the

desire to contribute to the communal desire to contribute to the communal welfare. The fulfillment of this yearning, welfare. The fulfillment of this yearning, I repeat, provides the engineer with his I repeat, provides the engineer with his

primary existential pleasure.”primary existential pleasure.”

-Samuel C. Florman-Samuel C. Florman

Page 121: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

The Professional’s CodeThe Professional’s Code

► A code of ethics is required for all professions.A code of ethics is required for all professions.► Software Engineering Code of Ethics and Software Engineering Code of Ethics and

Professional Practice (joint venture with Professional Practice (joint venture with ACM/IEEE)ACM/IEEE) http://www.acm.org/serving/se/code.htmhttp://www.acm.org/serving/se/code.htm There are two guiding philosophies…There are two guiding philosophies…

► ““Software engineers shall commit themselves to making Software engineers shall commit themselves to making the analysis, specification, design, development, testing the analysis, specification, design, development, testing and maintenance of software a beneficial and respected and maintenance of software a beneficial and respected profession. In accordance with their commitment to the profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles: “ (Preamble shall adhere to the following Eight Principles: “ (Preamble short-version)short-version)

Page 122: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

The Professional’s CodeThe Professional’s Code

► Software Engineering Code of Ethics and Software Engineering Code of Ethics and Professional PracticeProfessional Practice There are eight guiding principles…There are eight guiding principles…

1.1. Public: Software engineers shall act consistently with Public: Software engineers shall act consistently with the the public interest. public interest.

2.2. Client and Employer: Software engineers shall act in a Client and Employer: Software engineers shall act in a manner that is in the best interests of their client and manner that is in the best interests of their client and employer, consistent with the public interest. employer, consistent with the public interest.

3.3. Product: Software engineers shall ensure that their Product: Software engineers shall ensure that their products and related modifications meet the highest products and related modifications meet the highest professional standards possible. professional standards possible.

4.4. Judgment: Software engineers shall maintain integrity Judgment: Software engineers shall maintain integrity and independence in their professional judgment. and independence in their professional judgment.

Page 123: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

The Professional’s CodeThe Professional’s Code

► Software Engineering Code of Ethics and Software Engineering Code of Ethics and Professional PracticeProfessional Practice There are eight guiding principles…There are eight guiding principles…

5.5. Management: Software engineering managers and leaders Management: Software engineering managers and leaders shall subscribe to and promote an ethical approach to the shall subscribe to and promote an ethical approach to the management of software development and maintenance . management of software development and maintenance .

6.6. Profession: Software engineers shall advance the integrity Profession: Software engineers shall advance the integrity and reputation of the profession consistent with the public and reputation of the profession consistent with the public interest. interest.

7.7. Colleagues: Software engineers shall be fair to and Colleagues: Software engineers shall be fair to and supportive of their colleagues. supportive of their colleagues.

8.8. Self: Software engineers shall participate in lifelong learning Self: Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote regarding the practice of their profession and shall promote an ethical approach to the practice of the profession. an ethical approach to the practice of the profession.

Page 124: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

The Professional’s CodeThe Professional’s Code

► Why is the Code needed?Why is the Code needed? All professions are required to have a Code.All professions are required to have a Code. Death-march projectsDeath-march projects

► Developers debate unachievable schedules.Developers debate unachievable schedules.

Low-ball biddingLow-ball bidding► Developers should provide realistic estimates.Developers should provide realistic estimates.

Code-and-fix developmentCode-and-fix development► Inconsistent with developing quality code.Inconsistent with developing quality code.

Knowledge stagnationKnowledge stagnation► Developers cannot perform professionally without Developers cannot perform professionally without

keeping up-to-date on professional issues.keeping up-to-date on professional issues.

Page 125: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Chapter 22:Chapter 22:AlchemyAlchemy

““Q: What are the most exciting/promising Q: What are the most exciting/promising software engineering ideas or techniques on software engineering ideas or techniques on

the horizon?the horizon?

A: I don’t think that the most promising ideas A: I don’t think that the most promising ideas are on the horizen. They are already here are on the horizen. They are already here and have been here for years but are not and have been here for years but are not

being used properly.”being used properly.”

-David L. Parnas-David L. Parnas

Page 126: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

AlchemyAlchemyBest PracticesBest Practices Year Year

DescribedDescribed

Automated estimation toolsAutomated estimation tools 19731973

Evolutionary deliveryEvolutionary delivery 19881988

MeasurementMeasurement 19771977

Productivity environmentsProductivity environments 19841984

Risk management planingRisk management planing 19811981

Change boardChange board 19781978

Throwaway user interface prototypingThrowaway user interface prototyping 19751975

JAD sessionsJAD sessions 19851985

Information hidingInformation hiding 19721972

Design for changeDesign for change 19791979

Source code controlSource code control 19801980

Incremental integrationIncremental integration 19791979

Branch-coverage testingBranch-coverage testing 19791979

InspectionsInspections 19761976

SEI’s CMMSEI’s CMM 19871987

Software Engineering Process GroupsSoftware Engineering Process Groups 19891989

Page 127: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

AlchemyAlchemy

► If so many of the best-practices have been in If so many of the best-practices have been in existing for 15+ years, why haven’t they been existing for 15+ years, why haven’t they been implemented on a wide-spread scale?implemented on a wide-spread scale? Many organizations fear changing what’s worked Many organizations fear changing what’s worked

previously.previously. Not all best-practices work in practice.Not all best-practices work in practice. Many companies fear the risk involved in changing.Many companies fear the risk involved in changing.

Page 128: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

AlchemyAlchemy

► How can we diffuse information?How can we diffuse information? The Agricultural ExtensionThe Agricultural Extension

► Research SubsystemResearch Subsystem Research professors producing innovative results that are Research professors producing innovative results that are

later diffused to the group.later diffused to the group.► State Extension AgentsState Extension Agents

Connect the Research Subsystem to the County agents.Connect the Research Subsystem to the County agents.► County Extension AgentsCounty Extension Agents

Persons who help local farmers choose what innovations Persons who help local farmers choose what innovations that should use.that should use.

► SEI acts as software’s Research SubsystemSEI acts as software’s Research Subsystem

NASA’s SEL producing guidebooks ad training NASA’s SEL producing guidebooks ad training courses.courses.

Page 129: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

Industry ProfessionalismIndustry Professionalism► Engineering a ProfessionEngineering a Profession

What is a profession?What is a profession? Is Software Engineering a profession?Is Software Engineering a profession?

► Hard KnocksHard Knocks History of Software EngineeringHistory of Software Engineering

► Stinking BadgesStinking Badges Certification vs. LicensingCertification vs. Licensing

► The Professional’s CodeThe Professional’s Code Software Engineering Code of Ethics and Professional Software Engineering Code of Ethics and Professional

PracticePractice

► AlchemyAlchemy Best-practicesBest-practices Diffusing informationDiffusing information

Page 130: Professional Software Development Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers by Steve McConnell Matt Sawka.

OverviewOverviewThe Software TarpitThe Software Tarpit

Wrestling with DinosaursWrestling with DinosaursFool’s GoldFool’s GoldCargo Cult Software Cargo Cult Software

EngineeringEngineeringBody of KnowledgeBody of KnowledgeNovum OrganumNovum Organum

Individual ProfessionalismIndividual ProfessionalismOrphans PreferredOrphans Preferred Raising Your Software Raising Your Software

ConsciousnessConsciousnessBuilding the Community      Building the Community      Programmer Writing Programmer Writing

Organizational ProfessionalismOrganizational ProfessionalismSoftware Gold RushesSoftware Gold RushesBusiness Case for Better Business Case for Better Software Software

Practices Practices Ptolemaic ReasoningPtolemaic ReasoningQuantifying Personnel FactorsQuantifying Personnel FactorsConstrux’s Professional Construx’s Professional

Development ProgramDevelopment ProgramIndustry ProfessionalismIndustry Professionalism

Engineering a ProfessionEngineering a ProfessionHard KnocksHard KnocksStinking BadgesStinking BadgesThe Professional’s CodeThe Professional’s CodeAlchemyAlchemy


Recommended