Jump to difference between software engineering and computer engineering Jump to search For the folkloric belief, see Silver bullet. Essence and Accident in Software Engineering” is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986.
Did not find what they wanted? Try here
Brooks distinguishes between two different types of complexity: accidental complexity and essential complexity. Brooks claims that the accidental complexity has decreased substantially, and today’s programmers spend most of their time addressing essential complexity. Brooks argues that this means that shrinking all the accidental activities to zero will not give the same order-of-magnitude improvement as attempting to decrease essential complexity. Brooks advocates “growing” software organically through incremental development. He suggests devising and implementing the main and subprograms right at the beginning, filling in the working sub-sections later. He believes that programming this way excites the engineers and provides a working system at every stage of development.
Brooks goes on to argue that there is a difference between “good” designers and “great” designers. He postulates that as programming is a creative process, some designers are inherently better than others. He suggests that there is as much as a tenfold difference between an ordinary designer and a great one. The article, and Brooks’s later reflections on it, ‘No Silver Bullet’ Refired, can be found in the anniversary edition of The Mythical Man-Month. Brooks’ paper has been sometimes cited in connection with Wirth’s law, to argue that “software systems grow faster in size and complexity than methods to handle complexity are invented”. No Silver Bullet: Essence and Accidents of Software Engineering”. Improving Software Testing: Technical and Organizational Developments.