Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers / Edition 1

Paperback (Print)
Buy Used
Buy Used from BN.com
$32.35
(Save 41%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (14) from $1.99   
  • New (4) from $39.58   
  • Used (10) from $1.99   

Overview

Can you deliver 90% of your software on time, within budget, and fully meet the user's real requirements? Would you like to? Best-selling author Steve McConnell provides a compelling argument for turning software success into an everyday habit by advancing the software profession itself—at the individual, organizational, and industry levels. Expanding on the contents of his previous book After the Gold Rush, the author dispels common myths of software development.

If you are a programmer, software developer, engineer, or work in software development, you should READ THIS BOOK.

Why do so many companies use outdated and ineffective software development practices? See page 103

What is "cargo cult" software development, and who uses it? See page 23

How large is the return on investment for better software practices? Can you prove it? See page 115

How do you create career paths for software professionals? See page 143

Which affects projects more--good personnel or good process? See page 135

How much difference is there between the worst software companies and the best? See page xv

Read More Show Less

Editorial Reviews

From Barnes & Noble
The Barnes & Noble Review
The field of software development is changing. Radically. Some changes are obvious: for example, the breathtaking rush to offshore outsourcing. It’s not just low-end work anymore -- and don’t take it for granted that you’re writing better code than your offshore competitors. According to Forrester, IT decision makers throughout North America rate offshore providers superior to U.S. firms 67 percent of the time.

Offshore outsourcing is just a symptom of a broader reality. Too much software delivers too little value. And the customers are mad as hell. They won’t take it anymore.

You can ignore the new realities (or complain bitterly) as you’re relegated to becoming a 21st-century “software janitor.” Or you can improve yourself (and your software organization) -- so you’ll not only survive, but thrive.

If the latter approach sounds better, read Steve McConnell’s Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers.

McConnell, whose Code Complete is the classic primer on writing successful software, begins by assessing the state of computer programming as it exists today. Then, he takes on the subject he’s most passionate about: transforming the field into a true profession of software engineering.

Many of today’s complaints about software are nothing new. But there’s good news: “We’ve been staring at the same problems long enough to recognize the patterns, and… we seem to be the brink of fixing them.”

It’s long been known that some development organizations are 10 times as productive as others. Recently, it’s been discovered that some are 600 times as productive. What’s more, the development practices that make them so successful are well known. To McConnell, the lessons are obvious:

“The greatest risk lies with not changing — staying mired in unhealthy, extravagant development practices instead of switching to practices that were proven to be more effective many years ago. How to change? That is the central topic of the rest of this book.”

McConnell begins with steps individuals can take on their own. He identifies 10 important areas of software engineering knowledge: “A professional software engineer should at least acquire introductory knowledge of all areas, competence in most, and mastery of some.”

If you’re lucky, you’ve been formally taught a few (for example, software construction). But you’ve been expected to learn all the others implicitly (e.g., requirements, design, testing, software engineering processes). That’s not good enough. Fortunately, the software development field has matured to the point that once you gain this knowledge, much of it will last for decades.

Next, McConnell turns to changes that need to happen at the organizational and industry-wide level: improvements in diffusing knowledge amongst working developers; new educational programs for “computer science” students; and (for environments where poor software can kill), maybe even professional licensing.

Most developers find that idea provocative, to say the least. But McConnell’s track record is such that his ideas deserve to be taken very seriously. Bill Camarda

Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks for Dummies, Second Edition.

Read More Show Less

Product Details

  • ISBN-13: 9780321193674
  • Publisher: Addison-Wesley
  • Publication date: 8/22/2003
  • Edition description: First Edition
  • Edition number: 1
  • Pages: 272
  • Product dimensions: 7.00 (w) x 9.20 (h) x 0.55 (d)

Table of Contents

Acknowledgments.

Introduction.

I. THE SOFTWARE TARPIT.

1. Wrestling with Dinosaurs.

2. Fool's Gold.

3. Cargo Cult Software Engineering.

4. Software Engineering, Not Computer Science.

5. Body of Knowledge.

6. Novum Organum.

II. INDIVIDUAL PROFESSIONALISM.

7. Orphans Preferred.

8. Raising Your Software Consciousness.

9. Building the Community.

10. Architects and Carpenters.

11. Programmer Writing.

III. ORGANIZATIONAL PROFESSIONALISM.

12. Software Gold Rushes.

13. Business Case for Better Software Practices.

14. Ptolemaic Reasoning.

15. Quantifying Personnel Factors.

16. Construx's Professional Development Program.

IV. INDUSTRY PROFESSIONALISM.

17. Engineering a Profession.

18. Hard Knocks.

19. Stinking Badges.

20. The Professional's Code.

21. Alchemy.

Index.

About the Author. 0321193679T04082003

Read More Show Less

Preface

It looks obvious until you try it.
—IEEE Software

My flight was waiting on the runway when the captain made an announcement. "We've had some trouble with the plane's air conditioning system. In a plane, the air conditioner controls the oxygen levels so we need to make sure it's working before we can take off. Restarting the air conditioning unit hasn't worked, so we're going to power down the aircraft and power it back on. These modern airplanes are all computer controlled, you know, so they're not very reliable."

The pilot powered down the airplane, powered it back up—essentially, rebooted the airplane—and our flight continued without incident. Needless to say, I was especially glad to deplane at the end of that particular trip.

The Best of Times, the Worst of Times

The best software organizations control their projects to meet defined quality targets. They accurately predict software delivery dates months or years in advance. They deliver their software projects within budget, and their productivity is constantly improving. Their staff morale is high, and their customers are highly satisfied.

  • A telecom company needed to change about 3,000 lines of code in a code base of about 1 million lines of code. They made their changes so carefully that a year later no errors had been found in operation. Their total time to make the changes—including requirements analysis, design, construction, and testing--was 9 hours.
  • A team developing software for the United States Air Force committed to a one-year schedule and a $2 million budget even though other credible bids for the project had run as high as two years and $10 million. When the team delivered the project one month early, the project manager said the team's success arose from using techniques that have been known for years but that are rarely used in practice.
  • An aerospace company develops software for companies on a fixed-price basis. Three percent of its projects overrun their budgets; ninety-seven out of a hundred meet their targets.
  • An organization that committed to achieving outstanding quality attained an average of 39 percent reduction in its post-release defect rate every year for a period of 9 years—a cumulative reduction of 99 percent.

In addition to these notable successes, software pumps billions of dollars into the economy every year, both directly through sales of software itself and indirectly through improved efficiency and through creation of products and services that are made possible only with software's support.

The practices needed to create good software have been well established and readily available for 10 to 20 years or more. Despite some amazing triumphs, however, the software industry is not living up to its full potential. There is a wide gulf between the average practice and the best, and many of the practices in widespread use are seriously outdated and underpowered. Performance of the average software project leaves much to be desired, as many well-known disasters will attest.

  • The IRS bumbled an $8 billion software modernization program that cost the United States taxpayers $50 billion per year in lost revenue.
  • The FAA's Advanced Automation System overran its planned budget by about $3 billion.
  • Problems with the baggage handling system caused a delay of more than a year in opening Denver International Airport. Estimates of the delay's cost ranged as high as $1.1 million per day.
  • The Ariane 5 rocket blew up on its maiden launch because of a software error.
  • The B-2 bomber wouldn't fly on its maiden flight because of a software problem.
  • Computer-controlled ferries in Seattle caused more than a dozen dock crashes, resulting in damage worth more than $7 million. The state of Washington recommended spending more than $3 million to change the ferries back to manual controls.

Many projects that are lower profile than these are equally troubled. Roughly 25 percent of all projects fail outright,12 and the typical project is 100 percent over budget at the point it's cancelled. Fifty percent of projects are delivered late, over budget, or with less functionality than desired.

At the company level, these cancelled projects represent tremendous lost opportunity. If projects that are ultimately cancelled could be shut down at 10 percent of their intended budgets rather than 200 percent, imagine what a company could do by redirecting those resources at projects that were not ultimately cancelled.

At the national level, cancelled projects represent prodigious economic waste. A rough calculation suggests that cancelled software projects currently impose about a $40 billion drain on the United States economy.

When projects succeed, they can still present risks to the public safety or welfare. A project lead at Lotus received a call from a surgeon who was using a spreadsheet to analyze patient data during open-heart surgery. Newsweek magazine printed pictures of soldiers using Microsoft Excel on laptop computers to plan operations, and the Excel technical support team has received calls from the battlefield during active military operations.

The Purpose of This Book

Software development can be predictable, controllable, economical, and manageable. Software isn't usually developed that way, but it can be developed that way. This book is about the emerging profession of software engineering—and professional software practices that support economical creation of high-quality software.

The essays in this book address questions like these:

  • What is software engineering?
  • How does software engineering relate to computer science?
  • Why isn't regular computer programming good enough?
  • Why do we need a profession of software engineering?
  • Why is engineering the best model for a software development profession?
  • In what ways do effective practices vary from project to project (or company to company), and in what ways are they usually the same?
  • What can organizations do to support a professional approach to software development?
  • What can individual software developers do to become full-fledged professionals?
  • What can the software industry as a whole do to create a true profession of software engineering?
  • How This Book Is Organized

The parts in this book progress from looking at the trade of computer programming as it exists today to exploring the profession of software engineering as it might exist in the future.

Part 1, The Software Tar Pit, explains how the software field got to be the way it is. There are many valid reasons why the software field came to its current state. Understanding those reasons should be used to accelerate, not delay, the changes needed to make successful projects an everyday habit.

Part 2, Individual Professionalism, looks at the steps individuals can take on their own to achieve higher levels of software professionalism.

Software projects are so complex that numerous key factors cannot be addressed effectively at the individual level. Part 3, Organizational Professionalism, digs into the organizational practices needed to support more professional software projects.

Part 4, Industry Professionalism, examines steps that must be taken by the software industry at large to support professionalism at the individual and organizational levels.

What I've Learned Since 1999

Professional Software Development is an updated and significantly expanded edition of my 1999 book, After the Gold Rush. Since 1999, I've learned several lessons that are reflected in this new edition:

  • Licensing of software developers is more controversial than I expected. I still think that licensing a small percentage of software engineers is an important step toward protecting the general public's safety and welfare. I have tried to clarify that licensing is only one of many initiatives needed to improve the software development profession, and not the most important one.
  • Education of software engineers does not have to be tightly linked to licensing. Undergraduate and graduate educational programs can seek to instill an engineering mindset in software developers without necessarily preparing them to become licensed professional engineers. Indeed, if fewer than five percent of software developers are eventually licensed—which seems likely—targeting the majority of educational programs at licensing seems misguided.
  • The world didn't fall apart on January 1, 2000. Although I didn't think Y2K would be catastrophic, I did believe that Y2K-related problems would be more significant than they were. The software industry's repair efforts turned out to be far more effective than I expected. Beyond that, the Y2K problem itself was in some sense a result of successful software development practices. Y2K would not have been an issue in the first place if so many software systems had not survived longer than their originally expected lifespans.
  • Modern software development is truly impressive in many respects, and any comments about professionalizing the field of software development should account for software's numerous successes. We must be careful not to throw out the field's better practices as we try to strengthen the weaker ones.
  • Who Should Read This Book

If you develop software for a living, this book will explore what you need to do to become a truly professional software developer.

If you manage software projects, this book will summarize the differences between poorly run and well run software projects and overview what you can do to make your projects more successful.

If you manage a software organization, this book will outline the benefits available from systematic approaches to software development and sketch what you need to do to realize those benefits.

If you are a student who wants to work in the software field, this book will introduce you to the body of knowledge that makes up the field of software engineering and show you what a career in software engineering will look like.

Toward Professional Software Development

Industry researchers have long observed 10 to 1 differences in productivity between different organizations competing in the same industries. More recently, researchers have observed differences as high as 600 to 1. The most effective organizations are doing very well indeed.

The benefits of creating a true profession of software engineering are compelling. Traditional thinking would have it that change presents the greatest risk. In software's case, the greatest risk lies with not changing—staying mired in unhealthy, extravagant development practices instead of switching to practices that were proven to be more effective many years ago.

How to change? That is the central topic of the rest of this book.

—Bellevue, Washington
Memorial Day, 2003

0321193679P06052003

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)