Professional Documents
Culture Documents
Trust: Unit III
Trust: Unit III
Unit III
How does agile software development foster trust
among team members
B Cooperates B competes
A cooperates A gets 50% B will get 70%
B gets 50% bonus A will get 30%
A competes A will get 70% B and A get 0% as
B will get 30% task is not completed
Prisoner’s Dilemma
• The main difference lies in the cell in which both the players
compete. In the original table, the outcome is better for both
players when they compete than when the player cooperates
and opponent compete.
• In software development the competition-competition is
worst for both team members. Partial cooperation by one
team member is better than no cooperation at all.
• If the development process is not transparent, then
cooperation cannot be guranteed. This would be worst for all
the team members
How Agile practices lead to cooperation and trust
• TDD:
– Cooperation ~ All team members test their code and it does not fail.
– Competition ~ all team members do not verify that their code is fully tested
• Driven by the practice of TDD, team members are committed to verifying their
code fully. There is no competition among team members
• Refactoring:
– Cooperation~ All team members stop development tasks and do refactoring
– Competition~ All team members do not pay attention to code readability and
invest time on refactoring
• The unknown behavior which is the source of prisoner’s dilemma ceases to exist
due to the fact that they are guided by the agile practice of refactoring
• Hence practice of refactoring yields better results for all team members.
Ethics in Agile Teams
• ACM/IEEE-CS Joint Task Force define the Software Engineering Code of Ethics and
Professional Practice.
• Short Version: Software Engineers should adhere to the following 8 principles:
– Public: Software engineers shall act consistently with public interest
– Client and Employer – Software engineers will act in a manner that is in the best
interests of their client and employer consistent with the public interest.
– Product – Software engineers shall ensure that their products and related
modifications shall meet the highest professional standards possible
– Judgment – Software engineers shall maintain integrity and independence in
their professional judgment.
– Management – Software engineering managers and leaders shall subscribe to
and promote an ethical approach to management of software development and
maintenance
– Profession – Software engineers shall advance the integrity and reputation of
the profession consistent with public interest
– Colleagues – Software engineers shall be fair and supportive of their colleagues.
– Self – Software engineers shall participate in lifelong learning process.
Diversity
• It is defined as variety or the state of being diverse. It can be expressed in
terms of nationality, worldviews, genders, minorities, cultures and lifestyles.
– Usually there is resistance to diversity as people do not trust others who are not like
them
– Optimal diversity for creative thinking
– Diversity can thrive because of transparency in agile software development
methodology