Software Engineering is a relatively new discipline in comparison to the traditional engineering disciplines. It is therefore not surprising that there is a debate regarding whether this new discipline is indeed an engineering discipline. This paper examines the views of two authors who hold opposing views on the status of software engineering.
Summary of First Paper
In the paper titled “Software Engineering: What is the problem”, Loka asserts that software engineering is neither an engineering discipline, nor a scientific undertaking (110).
He is of the view that software development is an art similar to teaching or writing. In this sense, software development involves issuing instructions to computers just like a teachers issues instructions to students. This makes it similar to teaching and not engineering.
The second reason the author adduces to his view that software development is not an engineering activity is the lack of standardized approaches to software development. In the traditional engineering disciplines, engineers use standard processes to develop engineering solutions.
In this regard, any engineer can take over a project carried out by another engineer and deliver the same results. In software development, developers use individualized approaches and deliver results through different methods.
The article proceeds to examine several incidental issues affecting the deployment of software in organizations. The author writes that many organizations end up with software solutions that do not solve their problems because of poor problem identification by software developers.
In traditional engineering disciplines, problem identification is an integral part of the engineering design process. Engineers rarely make products that do not address specific needs.
Finally, different software developers tend to use different approaches to solve software problems because each developer has individual strengths and weaknesses. This leads to incremental solutions that give rise to a product that no single person understands. Organizations must retain many software developers to maintain the software. Organizations that find themselves in this situation end up spending more money maintenance.
Summary of Second Paper
The second paper addresses the place of software engineering in relation to the traditional engineering disciplines. The paper is a self-assessment of the software engineering field. The paper relays the identity crisis that software engineers face when it comes to raising the distinction between software engineering and programming.
The paper also discusses the debate in the mid eighties regarding the identity of software engineers at the time. Software engineers often asked whether they were scientists, mathematicians, or engineers. The consensus developed at the time was that they fitted in the three categories. Software engineers use mathematical models to solve problems.
The writers felt strongly that software engineering is an engineering discipline. In their view, software engineers use disciplined approaches to solve software problems. These models are very close to the models used by traditional engineering disciplines. However, the approaches somewhat differ because of the unique aspects of software projects in comparison to conventional engineering projects.
In the second part of the article, the authors were critical of several practices among software engineers. First, the authors stated that the failure rate of software projects is very high. They stated that a third of all software development projects fail and a third do not address the main problems.
The rest of the projects are successful though they are usually above budget and out of time. The second criticism is that software engineers do not adapt fast enough to change. This leads to the release of obsolete software.
The authors recommended several changes in various aspects of software engineering. They recommended that software engineers need more training on how to work in engineering teams that handle software design separately from software development. In conclusion, the authors urged software engineers to learn more from the traditional engineering disciplines in order to deliver better results.
Comparing and Contrasting the Two Papers
The two papers have two main similarities. First, the two papers agree that software engineers do not use disciplined approaches in their work, as compared to other engineers. This affects the quality of their work and leads to higher product failure rates. Secondly, the two papers agree that the discipline of software development is still in its formative stages.
In this sense, the two papers agree that software developers need to work hard to develop their trade in order to respond to current global challenges effectively. Thirdly, the two papers were similar in their aims. The two papers were seeking to provide solutions that can help to improve software development practices.
The main difference between the two papers is their conceptual framework. The first paper starts with a fixed position that software development is not an engineering discipline. The second paper recognizes the identity crisis related to software engineering, but looks at it as a new engineering discipline.
The second difference is that the first paper treats software development as a one-stage process, and assumes that a software developer should solve all the problems associated with software development.
The second paper looks at software development as a multistage process that requires the expertise of different professionals. In this sense, the second paper presented a more detailed inspection of the shortcomings of current software engineering practices.
Personal Opinion
The discussions presented in the papers reviewed were very stimulating. The second paper was more persuasive in regards to the status of software engineering. The job of a software engineer is an engineering job. The only difference between the work done by software engineers and the work done by traditional engineers is the areas of focus and tools. The four main reasons for this are as follows
First, all software development projects arise from clear needs in the market, or from perceived needs arising from research. This is very important because all engineering projects arise from a stated need in a given market. Secondly, software developers use structured methods to solve software problems.
In this sense, software developers are similar to engineers. The degree of usage of these structured methods is what varies. Software developers tend to use various methods to address the problems at hand. In this sense, software developers may seem like artists. This situation arises because software developers can use different methods to arrive at a given solution.
Thirdly, software developers deploy systems that interact with other systems in a similar manner to the work of other engineers. Software has interfaces that allow humans to control it. This is very similar to all other engineering products. Just as a car has a start button, software requires a trigger to launch it.
When a driver presses the accelerator, the car moves forwards because the car has systems that convert the depression of the accelerator into forward motion. In the same way, a user can click on a button on the software interface to get certain results. This shows that software packages are functional systems that interact with the environment. This makes software engineering products.
Works Cited
Denning, Peter J and Richard D Riehle. “The Profession of IT: Is Software Engineering Engineering?” Communications of the ACM (2009): 24-26. Print.
Loka, Raghavendra Rao. “Software Development: What is the Problem?” The Profession (2007): 110-112. Print.