Sunday, 28 September 2014

An Introduction to Software Engineering Ethics                          

Ethics in the broadest sense refers to the concern that humans have always had for figuring out how best to live. The philosopher Socrates is quoted as saying in 399 B.C., “the most important thing is not life, but the good life.” Today, the study of ethics can be found in many different places.
      
  • As an academic field of study, it belongs primarily to the discipline of philosophy, where scholars teach and publish research about the nature and structure of ethical norms.
  • In community life, ethics is pursued through diverse cultural, political and religious ideals and practices.
  •  On a personal level, it can be expressed in an individuals self-reflection and continual strivings to become a better person.
  • In work life, it is often formulated in formal codes or standards to which all members of a profession are held, such as those of medical ethics.
  • Professional ethics is also taught in dedicated courses, such as business ethics. It can also be infused into courses such as this one.

What is ethics doing in a course for software engineers?

But software engineers build lines of code, not cars, rockets or bridges full of vulnerable human beings. Where is the comparison here? Well, one answer might already have occurred to you. How many cars or rockets are made today that do not depend upon critical software for their safe operation? How many bridges are built today without the use of sophisticated computer programs to calculate expected load, geophysical strain, material strength and design resilience? A failure of these critical software systems can result in death or grievous injury just as easily as a missing bolt or a poorly designed gas tank. This by itself is more than enough reason for software engineers to take seriously the ethics of their professional lives.
Is it the only reason? What might be some others? Consider the following:

The software development and deployment process in the Internet era has some peculiarities that make the ethical issues for software engineers even more acute in some ways than for other types of engineers.
  • First, the shortened life cycle has weakened and in some cases obliterated software review by management and legal teams.
  • Second is the issue of scale, perhaps the defining feature of the software revolution. Typically the entire world is part of the addressable market.
  • Finally, the lack of geographic constraints means that engineers are generally culturally unfamiliar with some or most of their users.

Friday, 19 September 2014

so guys be psychology students for 40 minutes and they start out reasoning the lecturer!!

Jeez

The design is killa