Question
A passenger aircraft is composed of several millions of parts and requires thousands of persons to assemble. A four-lane highway bridge is another example of complexity. The first version of Word for Windows, a word processor released by Microsoft in 1989, required 55 person-years, resulted into 249,000 lines of source code, and was delivered 4 years late. Aircraft and highway bridges are usually delivered on time and within budget, whereas software is often not. Discuss what are, in your opinion, the differences between developing an aircraft, a bridge, and a word processor that would cause this situation.
Answers
Software engineering development is to solve problems in the real world, such as writing a word processor, including design, implementation, and testing (Marsic, 2012). Similarly, the development of physical engineering is to build a thing, such as a bridge, including design, implementation, and engineering acceptance. However, the two have some differences, and the specific content is as follows:
First, the scope of knowledge that developers need to master is different. Specifically, for the development of physical engineering, such as building a bridge, engineers only need to grasp bridge knowledge (Marsic, 2012). On the contrary, software development requires developers to understand both the problem domain and the software domain (Marsic, 2012). In other words, developers need to know the problems to be solved clearly and what kind of software technology to use to develop the corresponding products.
Second, developers have different understandings of the problem. Specifically, there will be clear drawings and accurate budgets before the physical engineering developers build an object. For example, when engineers build a bridge, they will design drawings and complete the bridge’s construction according to them. However, when software developers face a realistic problem, they usually only know approximately what to do initially (Marsic, 2012). In this case, they propose a preliminary solution and then iterate and update the software according to user feedback to develop satisfactory products.
Third, the development process is different. Specifically, engineers usually develop physical engineering with specific steps and clear standards. On the contrary, the original plan proposed by software engineering developers often only approximates actual problems (Marsic, 2012). In other words, they will develop a prototype and continue improving the software according to the user’s feedback. For example, Agile Software Development (ASD) is such a method, which will first develop a software prototype based on some understanding of the problem and then develop new versions based on the user’s feedback (Marsic, 2012).
In conclusion, the difference between software engineering and physical engineering development mainly includes three aspects. First, software developers must master the problem and software domain, and physical developers only need to master the program domain. Second, software development schemes only approximate actual problems, and physical engineering development has a clear and specific solution. Finally, the software development process is generally incremental and iterative, and the development process of physical engineering is gradually implemented according to the plan.
Word count: 389
References
1.Marsic, I. (2012). Software engineering. Rutgers University.