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 TimesThe 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.
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.
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 BookSoftware 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:
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 1999Professional 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:
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...
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
32 of 34 people found the following review helpful:
5.0 out of 5 stars
Another Classic by Mr. McConnell,
This review is from: Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers (Paperback)
In this single book, Mr. McConnell has managed to summarize all of the arguments for 'building software the right way'. It is non-intuitive to individuals who have little or no training in software engineering, including programmers. When I used to interview VB programmers my first question was always 'Describe the Implements keyword'.
For many business people they feel that if you are not coding then you are not making progress, which is just plain wrong if you are in the early stages of a project. This often puts us (as project leaders) in the position of educating the client. This book is incredibly helpful for just such an endeavor. There are so many great points that I have used in helping me overcome the non-intuitive parts of development. The statistics for our industry are abysmal (in terms of budgets over-runs, cancelled projects, etc.). If everyone read this book, and stopped coding for a few hours and actually THOUGHT more about the problem (especially for OO development - doing UML, CRC Cards or SOMETHING) in my opinion (after coding for 20 years - 13 of them professionally) our industry would be in much better shape. Even better would be if you can get your team using design patterns, pair programming (in many cases this is a good idea but not in all), agile development techniques, and other general `best practices'. I am constantly under pressure to code before it is appropriate to do so. It is hard to explain to a CEO that you need time to do what they believe is 'drawing pretty pictures'. However, reducing dependencies (and when you have them, making them dependent on abstract classes and/or interfaces NOT concrete implementation), not to mention model/view/controller type patterns are the difference between turning on a dime (say adding a web services API in a few weeks) or spending 6 months on a rewrite. I cannot say enough good things about this book. Kind Regards, Damon Carr, CEO agilefactor www.agilefactor.com
50 of 57 people found the following review helpful:
5.0 out of 5 stars
What I've Learned Since 1999,
By
This review is from: Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers (Paperback)
Professional Software Development is an updated and significantly expanded edition of my 1999 book, After the Gold Rush. In edition to updating the content end-to-end, this edition contains several new essays: 3 - Cargo Cult Software Engineering Since 1999, I've also learned a few lessons that are reflected in this new edition: * Licensing of software developers is more controversial than I expected. I have tried to clarify that licensing is only one of many initiatives needed to improve the software development profession. * 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 there were. Beyond that, the Y2K problem itself was in some sense a result of successful software devel-opment practices. Y2K would not have been an issue in the first place if sys-tems had not survived so much longer than their originally expected life-spans. * 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. The book is organized into four sections. Section 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. Section 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. Section 3,"Organizational Professionalism," digs into the organizational practices needed to support more professional software projects. Section 4, "Industry Professionalism," examines steps that must be taken by the software industry at large to support professionalism at both the individual and organizational levels. In short, this book describes the trade of computer programming as it exists today and explores the profession of software engineering as it might exist in the future. 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. It is my hope that this book will be part of a constructive dialog about how to help software development more often reach its full potential. - Steve McConnell
26 of 30 people found the following review helpful:
5.0 out of 5 stars
Philosophical, but short, sweet, and to the point,
By A Customer
This review is from: Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers (Paperback)
This book is a brilliant, enjoyable explanation of the steps we can take to make our projects and software organisations run better.
To realize the benefit of this book, you must actually Read The Book, which some of the other amazon reviewers have apparently not yet been able to fit into their busy schedules. The reviewer of 'examples of bad management' never read past the first section, which is called 'The Software Tarpit.' It is indeed about why projects are poorly managed, but it is only 55 pages out of 225. Sections 2, 3 & 4 contain abundant specific suggestions about how to meet schedules, budgets, and other project goals. The reviewer of 'heavy on opinion, light on content' says he reads 5 books a day. The book has numerous notes at the end of each chapter, and is impressively well researched. I surmise this reviewer missed the 'content' during his speed reading. The reading-impaired agile revolutionaries criticise the book for not discussing agile. This book also does not discuss object-oriented design, the Rational Unified Process, East Indonesian basket weaving, or the tooth fairie because those are different topics. Apparently some people think that every book should discuss agile, regardless of the book's topic. This book is short, sweet, and to the point. It does not tell you how to debug your current project (see the author's Code Complete for that), but it will tell you how you and your organisation can improve in the long run. My company has already realised benefits from adopting the ideas in this book, and it is mandatory reading for programmers and managers.
Share your thoughts with other customers: Create your own review
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|