ANU The Australian National University



____________________________________________________

[ANU] [DCS] [COMP2100/2500] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [COMP2500] [Assessment] [PSP] [Java] [Reading] [Help]

____________________________________________________

COMP2100/2500
Lecture 28: PSP IV

Summary

Commitment management and related issues.

Aims


Commitment management

“As long as we do not change our habits,
we will continue to make the same mistakes.”


How to make responsible commitments


Failure to meet commitments


Consequences of not managing commitments


More commitment managment tips


Further Thoughts


Going Deeper

Thinking about the various approaches to software development, about trying to become systematic, about looking at the process and trying to improve quality and productivity raises several questions for me:


Professional Ethics

We have two main areas of professional responsibility:

  1. Towards our employer, a narrow sort of professionalism: "Do the job well."

    • Write quality software: few defects, satisfy requirements, reliable, usable etc.

    • Must be produced on time and on budget. (This involves time and commitment management.)

  2. We also have a much broader responsibility to understand and protect the public interest, the environment, our society, the world.

    • This is not just because death and destruction are bad for business (although they certainly are).

    • If we don't do it voluntarily, it will eventually be legislated for us, and that might have other unfortunate consequences (like killing the open source movement perhaps).

    • It's just basic morality. It's also about whether you can live with yourself. (See above.)


Who Can Write Software?

Absolutely anyone!

Would this be tolerated in other professions?

No. Think of medicine, engineering, dentistry, psychology, nursing, social work, even food preparation in restaurants. People need certification or registration or a licence. But not in software.

Who should write software? (Or put it the other way around: who would you buy software from?)

Someone who has:

In other words, a certified member of a professional society.


Major Professional Societies in Software

The ACS and the IEEE Computer Society have certification programs.


Codes of Ethics

The IEEE and ACM have codes of ethics for computer professionals. See also

Here are some selected items from the ACM and IEEE Codes of Ethics, and the Ten Commandments of Computer Ethics.

ACM 1.2:

Avoid harm to others.

ACM 1.6:

Give proper credit for intellectual property.

ACM 1.7:

Respect the privacy of others.

ACM 2.6:

Honour contracts, agreements, and assigned responsibilities.

IEEE 1:

Accept responsibility in making engineering decisions consistent with the safety, health and welfare of the public, and to disclose promptly factors that might endanger the public or the environment.

IEEE 3:

Be honest and realistic in stating claims or estimates based on available data.

IEEE 6:

Maintain and improve our technical competence and to undertake technological tasks for others only if qualified by training or experience, or after full disclosure of pertinent limitations.

IEEE 7:

Seek, accept, and offer honest criticism of technical work, acknowledge and correct errors, and credit properly the contributions of others.

CEI 9:

Thou shalt think about the social consequences of the program you are writing or the system you are building.

____________________________________________________

[ANU] [DCS] [COMP2100/2500] [Description] [Schedule] [Lectures] [Labs] [Homework] [Assignments] [COMP2500] [Assessment] [PSP] [Java] [Reading] [Help]

____________________________________________________

Copyright © 2005, Ian Barnes & Jim Grundy, The Australian National University
Version 2005.2, Monday, 30 May 2005, 14:54:16 +1000
Feedback & Queries to comp2100@cs.anu.edu.au