5/28/09

Software consultancy

Software is developed or engineered; it is not manufactured on the classical sense. When computer software succeeds—when it meets the needs of the people who use it, when it performs flawlessly over a long period of time, when it is easy to modify and even easier to use—it can and does change things for the better. But when software fails—when its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to use—bad things can and do happen. We all want to build software that makes things better, avoiding the bad things that lurk in the shadow of failed efforts. To succeed, we need discipline when software is designed and built. We need an engineering approach.

The role of computer software has undergone significant change over a time span of little more than 50 years. Dramatic improvements in hardware performance, profound changes in computing architectures, vast increases in memory and storage capacity and wide variety of exotic input and output options have all precipitated more sophisticated and complex computer-based systems. Sophistication and complexity can produce dazzling results when a system succeeds, but they can also pose huge problems for those who must build complex systems.

The lone programmer of an earlier era has bee replaced by a team of software specialists, each focusing on one part of the technology required to deliver a complex application. And yet, the same questions asked of the lone programmer are being asked when modern computer-based systems are built: Why does it take so long to get software finished? Why are development costs so high? Why can’t we find all the errors before we give the software to customers? Why do we continue to have difficulty in measuring progress as software is being developed?

These, and many other questions, are a manifestation of the concern about software and the manner in which it is developed-a concern that has lead to the adoption of software engineering practice. Software is pervasive, and yet, many people in position of responsibility have little or no real understanding of what it really is, how it’s built, or what it means to the institutions tat they control. More importantly, they have little appreciation of the dangers and opportunities that software offers.

0 comments:

Post a Comment