Beginning with No Silver Bullet, mentioned are several important difficulties of software development. Among them are: complexity (size and scaling of the software accompanied by "nonlinear interaction of elements"), conformity, changeability ("software is constantly subject to pressures for change" - as a result of forever developing technology) and invisibility ("software is invisible and unvisualizable"). These difficulties were labeled essential in that they must be recognized and dealt with in order to create good software. "The complexity of software is an essential property, not an accidental one." Additionally, since hardware is progressing at such a rapid rate, software developers must learn to keep up with it, lest they be left behind. Now although this article is quite old, some of its assertions still hold. For example, it mentions the importance of refinement and rapid prototyping: the established conceptual work that details all of the technical requirements. This is part of good software organization, which leads me to the next article. Kode Vicious puts further emphasis on good coding practice. KV asserts that we must do the "real work of periodically merging whatever code we are working against" in order to avoid falling behind. With a road-map to follow, or as KV says, a scientific method, software development becomes much simpler. Bug-tracking, tests, update tracking and a slew of other organizational progress trackers compose a huge chunk of what software, it's not a simple matter of 'does my code work?'. Essentially, version-control can make or break software development. Now moving towards Software Analytics we see some similar ideas regarding organization and contributions. The idea of organized code and version control has let to large repositories of software engineering data in the push towards open source code. This has facilitated software analyzing and research. Furthermore the discussed principles for software analytics contain some of the same organizational ideals for software development such as putting the user first, planning, utilizing feedback and being open minded.
Honestly, reading No Silver Bullet was a huge chore. While there were a scant few points that were (in my opinion) correct/relevant, most of it felt that it was saying a whole lot of nothing. It was tough to get through and there was a lot of superfluous language used to outline things that could have been said in far fewer words. (Though this could be said of many scholarly articles, especially those that pertain to the field of Computer Science.) Kode Vicious seemed the most relevant, and was composed in such a manner that it was easy to digest. And Software Analytics was a sort of middle ground, with relevance and interesting topics, but again, longer and harder to read easily.
The main point I gathered (and do agree with) is that organization and planning is of tantamount importance. I wish there was more of an emphasis in school regarding the development process, management of files and version control. I believe that we start too late (generally in 362) and there should be more of a focus on open source contributions and personal projects. Many just learn what they're told in school and never diverge from the defined limitations of class. I feel that there are greater opportunities for the bettering of an individual's computer science career that are not always obvious when starting out as a Freshman in college.
HW3
10.6 A multimedia virtual museum system offering virtual experiences of ancient Greece is to be developed for a consortium of European museums. The system should provide users with the facility to view 3-D models of ancient Greece through a standard web browser and should also support an immerse virtual reality experience. What political and organizational difficulties might arise when the system is installed in the museums that make up the consortium.
There could be organizational difficulties in planning the project, as creating a virtual reality experience along with facilitating the viewing of 3D models. A proper road-map must be detailed as well as deciding upon the historical perspective to display. In addition these technologies will be very expensive, leading to potential political difficulties in getting the funding.
10.10 You are an engineer involved in the development of a financial system. During installation, you discover that this system will make a significant number of people redundant. The people in the environment deny you access to essential information to complete the system installation. To what extent should you, as a systems engineer, become involved in this situation? Is it your professional responsibility to complete the installation as contracted? Should you simply abandon the work until the procuring organization has sorted out the problem?
I feel that it would be unethical to complete the system with a known issue. However, these sorts of choices can be affected by an individual's personal situation. One could argue that this is not a safety critical system, and adding redundancies would be a minor inconvenience compared to not completing the development. Personally, I would not allow development to continue until the issue was resolved. Although it could be classified as a minor inconvenience it is still an inconvenience and I wouldn't feel right leaving it in the system for other people to deal with.
Honestly, reading No Silver Bullet was a huge chore. While there were a scant few points that were (in my opinion) correct/relevant, most of it felt that it was saying a whole lot of nothing. It was tough to get through and there was a lot of superfluous language used to outline things that could have been said in far fewer words. (Though this could be said of many scholarly articles, especially those that pertain to the field of Computer Science.) Kode Vicious seemed the most relevant, and was composed in such a manner that it was easy to digest. And Software Analytics was a sort of middle ground, with relevance and interesting topics, but again, longer and harder to read easily.
The main point I gathered (and do agree with) is that organization and planning is of tantamount importance. I wish there was more of an emphasis in school regarding the development process, management of files and version control. I believe that we start too late (generally in 362) and there should be more of a focus on open source contributions and personal projects. Many just learn what they're told in school and never diverge from the defined limitations of class. I feel that there are greater opportunities for the bettering of an individual's computer science career that are not always obvious when starting out as a Freshman in college.
HW3
10.6 A multimedia virtual museum system offering virtual experiences of ancient Greece is to be developed for a consortium of European museums. The system should provide users with the facility to view 3-D models of ancient Greece through a standard web browser and should also support an immerse virtual reality experience. What political and organizational difficulties might arise when the system is installed in the museums that make up the consortium.
There could be organizational difficulties in planning the project, as creating a virtual reality experience along with facilitating the viewing of 3D models. A proper road-map must be detailed as well as deciding upon the historical perspective to display. In addition these technologies will be very expensive, leading to potential political difficulties in getting the funding.
10.10 You are an engineer involved in the development of a financial system. During installation, you discover that this system will make a significant number of people redundant. The people in the environment deny you access to essential information to complete the system installation. To what extent should you, as a systems engineer, become involved in this situation? Is it your professional responsibility to complete the installation as contracted? Should you simply abandon the work until the procuring organization has sorted out the problem?
I feel that it would be unethical to complete the system with a known issue. However, these sorts of choices can be affected by an individual's personal situation. One could argue that this is not a safety critical system, and adding redundancies would be a minor inconvenience compared to not completing the development. Personally, I would not allow development to continue until the issue was resolved. Although it could be classified as a minor inconvenience it is still an inconvenience and I wouldn't feel right leaving it in the system for other people to deal with.



0 comments:
Post a Comment