Position PaperDevraj Mendon
IS663 – Advanced System analysis and design
Position Paper – No Silver Bullet: Essence and Accidents of Software Engineering
By Devraj Mendon ()
Introduction
No silver bullet: Essence and accidents of software engineering
Fred Brooks argues that there will be no practices and technologies which will serve as “Silver bullets” in the software engineering field. He categorizes the complexity of software engineering into 2 main domains accidental and essential. One can think of these both complexities in terms of software productivity, quality and control. He says we have cleared almost all the accidental complexities(complexities due to us and which can be fixed) but essential complexities are the real underlying problems which has to be solved (one can think of essential complexities as mandatory functionalities which one wants to have in a system cannot be removed rather has to be built).
Background
Fred brooks wrote this classic paper on software engineering in 1986.The facts and the theories he’s mentioned in the paper still bears testimony to existing technologies. The author has beautifully analyzed the issues which we face in software design process, development of various tools, methodologies, high level languages which takes care of accidental issues but there is no definite or single solution for the conceptual part of the software design process.But definitely there are gray areas which one can debate compared what was software engineering back in 1986 vis-à-vis today 2007.
Viewpoint
I have jolted down my view points (The viewpoint mentioned are solely my personaland is in no way meant to hurt anyone’s justified argument personally) categorizing under various umbrella points with supporting data wherever necessary.
Though I partially agree with a higher side to agreement with Fred brooks but there are certain intricacy which the author claims doesn’t apply to current scenario of Software design and engineering process.
Accidental complexities definitely will get sorted eventually as mentioned by the author even if their level of complexity has changed in current technology level. Essential complexities as mentioned by author has no silver bullet which I partially agree and holds true till date as though we have come to level of object oriented, framework oriented easy programming but the inherent complexity for essential functionalities still hasn’t changed much. I partially disagree because Brooks did not foresee distributed computing that time due to which a critical complexity due to multiple programs running at same time arising something like concurrency is not been discussed in his paper.
Brooks mentions AI into 2 distinguished parts which still holds true for existing systems. The research which started back in 1970 with Stephen Wiesner inventing conjugate coding, later in1973 Alexander Holevo writing a paper showing that n qubits can carry more data than n classical bits has changed the level of computing. Though the details of quantum computing is beyond the scope of this argument, what I am trying to mention here is blend of Artificial intelligence and quantum computing can take software design to a different level which might act as silver bullet for few of essential complexities.
Would like to mention an experiment done on US navy project using different languages, to which I agree with results which clearly proves that Erland and Haskell came out as a winner when it came to concurrency handling.
Similarly functional quantum programming may not only eradicate accidental complexities but also essential complexities to a certain level.
QCL and Q were one of the first quantum programming languages on the lines of C and C++ respectively. QFC, QPL and QML (Haskell like language) are functional quantum programming languages which have evolved to suit the current software design complexities.
Conclusion
I strongly believe functional quantum programming languages with right blend of artificial intelligence can act as silver bullet minimizing complexities to a certain level if not completely eradicating.
Reference: 1) Paul’s pontifications – Discussion board on wordpress
No Silver Bullet: Essence and accidents of Software Engineering1