Essence And Accidents Of Software Engineering

1133 Words3 Pages

Homework 3: Software Process Models
Brook’s paper “No Silver Bullet: Essence and Accidents of Software Engineering” presents how complex the development of a software is and its inherent difficulties. He brings out the accidental and essential difficulties we encounter in the process of software development. He identifies complexity, conformity, changeability and invisibility as inherent properties of any software whereas accidental difficulties are experienced during the development cycle/process. He suggests that being able to develop reusable software cuts down the costs and time as well as gives room for a wide variety of applications/functionalities across different platforms/ environments. Being able to balance and to bring best out of the resources that are available in terms of processing powers, hardware/software capabilities, personnel, budget etc., is very crucial for the success of software in the market. It is quite interesting and very relatable how the creative process of developing software in stages helps and (rather than just writing the code) motivates the software developers and design managers in coming up with new ideas during the iterations. Brook’s also mentions how high level programming languages, time-sharing and different development environments have affects on the complexity of software development process to remove accidental difficulties thus resulting in high efficiencies. According to him, fields like Graphical programming, Expert systems, Artificial intelligence though provide powerful insights, they have little to do with actual software development process to define its requirements or functionalities. He identifies how user can benefit from adapting an existing system to sol...

... middle of paper ...

...ties. In fact, they have become a part of development process to help developers in easy transition. Different tools and environments play a significant role in enhancing the efficiency of software by cutting down the time and need for coding and syntaxes (for example, translating UML diagrams to actual code etc.,) and helps designers in easy debugging and thus enabling rapid prototyping for fast results. Brook mentions changeability and complexity as software constraints. But, in my opinion, while change introduces complexity to the designers, from the user point of view, change reduces complexity for the user in using the software. Also, the more complex the problem is, the more fruitful the results are after it is resolved. However, user has ever changing requirements (often not sure of what they want!). Spiral model addresses this problem to the possible extent.

Open Document