December 30, 2016

A Call for Collaboration In Our Code of Ethics

By Colin McCabe

For those not aware, the Association for Computing Machinery, our respected professional society for all occupations related to software development and computer interaction, is currently revising their Code of Ethics. It is currently under a period of public review and comment. Below is one such comment.

From DRAFT 1, 2018 ACM Code of Ethics and Professional Conduct:

2.4 Accept and provide appropriate professional review.

Quality professional work in computing depends on professional reviewing and critiquing. Whenever appropriate, individual members should seek and utilize peer review, and should provide constructive, critical review of the work of others.

Comment

It could be argued that one of the largest paradigm shifts in the profession of software development over the past twenty years has been our appreciation for collaboration. This has been embodied in such development philosophies as Agile, Extreme Programming and Scrum. Each of these have led us to value a deep truth in our humanity: that together we can accomplish greater things.

The Principles of the Agile Manifesto stress the importance of "face-to-face conversation" among team members and stakeholders as well as the importance of providing the development team with "the environment and support they need, and trust them to get the job done". It encourages us to remember that though we are engaged in the creation of computer instruction, we are not made of the same stuff. We as humans do our most inspired work when being human. When we have relationship with others in a space where both our body and mind feel comfortable.

The Rules of Extreme Programming expands our thinking around concepts of "pair programming" and "collective ownership". Many of us push through the frustrations of learning how to code closely with one another. We make the effort to humbly build a working relationship with our fellow team members to co-develop with them. It requires the mutual respect of each other's gifting and a willingness to relate in ways the other understands. The reward from such basic human interaction is to experience the moments of revelation only possible in that context. When our differing perspectives are brought to bear in development, the outcome is best described as Quality. This goes far beyond the idea of peer review.

Finally, built upon all of these stands profoundly successful frameworks such as Scrum. The Scrum Guide instructs us to value all aspects of software planning and development in terms of a team of talented individuals working together. We're challenged to consider not just the development-specific roles but appreciate the whole "cross-functional" team as one valuable unit. That team is then encouraged to "self-organize" itself because of what we've come to understand about how people, not just developers, work. Because we thrive in an environment of autonomy, mastery, and purpose.

With this in mind, perhaps our organization's ethics should advance the value of human collaboration in section 2.4 in a manner like the following:

2.4 (Revised) Champion professional collaboration.

Quality work in computing depends on the close collaboration of professionals, each bringing their own expertise to bear. Whenever appropriate, computing professionals should seek out ways to value the perspective of others and work closely with them.

A computing professional should invite fellow collaborators to hold themselves accountable in their efforts, to jointly learn from their attempts, and together celebrate their successes.


Colin McCabe - Developer

About Colin McCabe

Colin is a software developer who believes that the heart of the profession lies in the people involved. Elegant, maintainable software is built by teams of professionals who communicate and challenge one another in an environment built upon trusted relationships. Intuitive, delightful software can improve the lives of its users.