“The professional responsibilities of Software Engineers” by David

advertisement
“The professional responsibilities of Software Engineers” by David Lorge Parnas
“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
03/14/03
Presentation Summary by Ellen Pesochin
page 1
“The professional responsibilities of Software Engineers” by David Lorge Parnas
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.
2.
3.
4.
5.
Accept individual responsibility.
Solve the real problem
Be honest about capabilities
Produce reviewable designs
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.
03/14/03
Presentation Summary by Ellen Pesochin
page 2
“The professional responsibilities of Software Engineers” by David Lorge Parnas
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.
03/14/03
Presentation Summary by Ellen Pesochin
page 3
Download