“The professional responsibilities of Software Engineers ...



“The professional responsibilities of Software Engineers” by David Lorge Parnas

City University of New York /GC

CSc 79000 - Software Engineering

Professor Danny Kopec

Prepared by Ellen Pesochin

Statistics of today’s Software Development

There are lots of problems in the software development. According to The Standish Group IT-research reports that in year 2000 only 28 % of the projects can be classified as successful. Why is the rate that low? Is it because the industry is very young? Are we doing everything correctly? Is there something that we could do better? Answers to those questions and more are in my presentation that was primarily based on D.L. Parnas’s article “The professional responsibilities of Software Engineers”

What is the problem?

Main idea of the article: is to remind to some and teach the others that in our discipline of “Software Engineering” we must acknowledge and abide by the principals of engineering: technical, ethical and perhaps least understood in our profession legal. David Parnas discusses professional responsibilities of software engineers and the ways to improve the level of professionalism among software developers.

He concentrates our attention on the three most important responsibilities: personal, social and professional. The primary subject of the article is the professional responsibility, but social and personal responsibilities are building blocks of the professional one.

Responsibilities:

1. Personal responsibilities are the ones that shared by all people regardless of their profession. That includes honesty and concerns for the feelings and well-being of others.

2. Professional responsibilities are the ones we assume by becoming members of the particular profession. Each profession has developed the codes of responsibilities for its members.

3. Social responsibilities are the once towards society as a whole.

David Parnas looks into the details of the Social Responsibilities of engineers and scientist. Technology is viewed as “black magic” of our age. Mystery around it leads to the opinions that no one except fellow “wizards” can understand technology. That leads to the poor decision making habits. Social responsibilities of scientists and engineers are in the demystifying the technology and its processes, which will empower decision makers.

Also David looks at the professional responsibilities as a vital element of the Software engineering. In most of the professions engineers are obligated to pass examinations and obtain professional licenses. Licensed engineer understands, knows, complies and legally responsible for following the professional codes and responsibilities.

Reasons why do we need to license our engineers:

1. Incompetent design can endanger lives, health, or property of both users and public at large.

2. Those who order or commission design usually unable to judge the competence of the individuals hired to perform the job

3. To distinct the individuals who are knowledgeable and competent to do the work and the once who just claim so.

4. Professional obligations will take precedence over loyalty to the employer or client. Professionals do say “NO”.

Software engineers should not be different from the rest of the engineers and should not be excluded from the rules of the professional societies. They work is vital to the public well-being.

Software engineers should be obligated by following rules:

1. Accept individual responsibility.

2. Solve the real problem

3. Be honest about capabilities

4. Produce reviewable designs

5. Maintainability

Professional practice in Software development is full of myths. People who are in charge of the development and a lot of times people who are doing the development are not engineers and are not aware or conscious of their professional responsibilities.

Unfortunately there are a lot of examples when software development was not taking seriously with different degree of consequences. David Parnas discusses in details how the lock of the proper design, testing and documentation lead to the faulty pacemakers.

There are additional concerns that are raised by the engineers in the other industries, such as putting their approval on the product that was designed using the software with the disclaimer on the package. Unnoticeably software became essential tool of the other professionals and engineers therefore it may have a huge indirect impact in our lives as well.

Solution?

The “Know How” isn’t there, says Dave. Is there a solution? Yes, there is. We can begin by improving the level of professionalism in Software development. Here are the first steps that need to be taken towards the improvement:

1. Work with professional engineering societies towards building the standards for the industry

2. Work towards creating accreditation of software programs

3. Develop educational programs that would be uniquely tailored (independent from other engineering disciplines) to software engineering needs. As per Albert Einstein, “The aim [of education] must be the training of independently acting and thinking individuals who, however, see in the service to the community their highest life achievement.”

ACM / IEEE:

Software Engineering Code of Ethics and Professional Practice (Version 5.2) as recommended by the ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices and jointly approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering.

“Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC - Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download