Position Paper

SMITA

Abstract

“No Silver Bullet: Essence and Accidents ofSoftware Engineering” by Frederick P. Brooks is an interesting article on software engineering. A detailed look at the paper will show that some of the ideas mentioned in the paper are valid even today, after twenty years. But there are many other areas where we have made a lot of advances. Based on an analysis of these points, I donot agree with some of the views expressed by the author in the paper.

Introduction

“No Silver Bullet: Essence and Accidents of Software Engineering” was published by Mr. Brooks in 1986. The article has a combination of pessimistic and optimistic views on the software engineering department. The author feels that very little advances have been made in this area and that there is not much room for improvement. The fact that results are intangible makes it worse.

No promise of improvement

The pessimistic tone starts from the first paragraph itself. The author argues that the developments made in the past do not show a promising future. Maybe twenty years back that was true, but this statement does not apply to today’s scenario. We have come a long way where software engineering has a strong influence on projects. More and varied tools are available today which can help in reducing the turnaround times of the various phases in the software lifecycle. There are a multitude of frameworks, languages, standards and models available allowing a software engineer to come with an effective design

Problems

I agree with the author that the hardest problem with the building a software is that a fully developed requirement documents is not available right from the inception point. Even if there is one, changes and sudden new requirements are part of a software engineer’s regular work. This hasn’t reduced today, but over the last two decades the approach to this problem has changed. There is a provision to accommodate new changes and requirements as we go along. The popularity of CMM, ITIL and Six Sigma bear witness to this. The use of scripting and RAD tools is not exclusive to the domain of IT, anymore. Its use has been extended to software engineering too.

Improvements

According to Brooks, we have cracked most of the accidental problems – those created by human error. The increasing use of high level languages indicates progress. It helps to remove complexities and errors caused by human mistakes.

Graphical Programming

Graphical programming is another topic where I disagree with the author’s views. Flowcharts and other visualizing tools do help in getting a clear picture of software. As the saying goes, “a picture can convey the idea of a thousand words”. Although graphs, flowcharts alone cannot capture the spirit of a whole software program, it can aid in the development, monitoring and implementation. This is definitely one area, where, in the last two decades there have been some exceptional developments. Microsoft Visio is an example. It helps in understanding the flow of things and also helps to explain the requirements better.

Software Engineering – Art or Science

Brooks definitely considers software engineering an art. Programming is indeed an art and some are inherently very good at it. A great design is the foundation of great software. A great designer is as important to an organization as an executive. It stays true even after twenty years. The companies are realizing the importance of designers and its one of the most sought out careers.

Conclusion

This paper is very useful in understanding basic elements of software engineering and some inherent drawbacks of software engineering, but this paper does not represent today’s scenario. This paper does not lay the foundation for the achievements made in the last twenty years and hence cannot be considered as a valuable tool to explain today’s software engineering world.

References

1)No Silver Bullet: Essence and Accidents of Software Engineering by Frederick P. Brooks, Jr.

2)