HW2: Responses


All three of these articles deal with the concerns of managing software engineering projects and producing healthy, scalable code, as well as practices to become an efficient software engineer. Many of the complications that are innate in software development that are detailed by Brooks and Neville-Neil appear to be somewhat addressed in “Google Code Repo” by Potvin and Levenberg in their detailing of Google’s use of a single, monolithic repository.
In “No Silver Bullet”, Brooks asserts that conceiving, describing, and testing software is far harder than any other human construct because the scaling of code is an increase in the number of different components and not simply a repetition of existing components. Brooks also mentions that lack of communication among team members is a problem inherent in any software engineering project. Google’s use of one vast repository that all employees have access to virtually eliminates any barriers that one team or individual may have regarding communication with any other person. As a result, the codebase is able to scale naturally. Additionally, because the entirety of the code is in one repository, teams are able to depend on other teams’ code without miscommunication about where an authoritative version of a file is located.
In “Kode Vicious”, Neville-Neil promotes diligently working and communicating with team members to as not to delay any software when the times comes to merge with other work, He emphasizes that not the most difficult part of maintaining code is properly integrating with the head of a development tree because of a lack of periodic merging. His remedy for this issue is to use the scientific method to hypothesize how to fix an error or bug in order to make code able to merge properly. However, Google offers different solution to the issue of incompatible code being produced due to lack of team communication. This issue is dealt with inherently by Google’s use of a single repository, as all commits from any software engineer will be added to one codebase without the need for merging in the first place, thus preventing software engineers from experiencing the “suffering” of code merging in the first place.
According to Potvin and Levenberg, communication among teams is easier when using a single repository because having access to an entire codebase encourages code reuse and sharing and has allowed Google to develop several tools for managing its’ codebase, such as Piper for version control and Rosie for breaking patches into small parts and individually testing them. Additionally, because the code base is all in one location, the tools developed are able to be scaled with the code and allow software engineers to find relevant libraries and clean up code in a time efficient manner.
“No Silver Bullet” was published in 1987 and “Kode Vicious” in 2013, however, both articles address a lack of communication between software engineers as a key hindrance in the development of any software, as even after decades of progress made in the software industry, this problem persists. It does not seem possible to guarantee one hundred percent communication among teams in any profession, and there will most likely never be any one “silver bullet” to address every issue in producing efficient software, however, Google’s use of a single repository currently seems to be the most efficient solution.

Comments

Popular posts from this blog

HW6: Chapter 4

HW24: Chapter 23

HW11: Chapter 6