The Influence of Observing Unethical Behavior on Personal Honesty
VerifiedAdded on 2020/05/11
|18
|4955
|278
AI Summary
The influence of observed unethical behavior on personal dishonesty is a multifaceted psychological phenomenon. When individuals witness acts of dishonesty, it can affect their own ethical decisions through various mechanisms. Firstly, observing such acts may alter the perceived likelihood of getting caught, prompting individuals to engage in cost-benefit analysis where they reassess risks and rewards of dishonest behavior. Secondly, exposure to unethical actions heightens moral awareness, potentially leading individuals to adhere more strictly to ethical standards as a means of preserving their moral self-image. Lastly, witnessing unethical behavior can shift one's perception of social norms, either by reinforcing descriptive norms (what others do) or altering injunctive norms (what is approved or disapproved), which in turn influences personal conduct. The interplay between these factors underscores the complexity of ethical decision-making and highlights the significant role that observed behavior plays in shaping individual actions.

Running Head: INFORMATION TECHNOLOGY ETHICS
Information Technology Ethics
Name of the Student
Name of the University
Information Technology Ethics
Name of the Student
Name of the University
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

1INFORMATION TECHNOLOGY ETHICS
Case Study 1
Part 1 – Question 1
Q1. What going on?
Jean uses segments of code from both her co-worker and the commercial software, but
does not tell anyone or mention it in the documentation. She completes the project and turns it in
a day ahead of time. This activity is not ethical and it directly violates the theory of virtue.
Q2. What are the facts?
The facts are as follows:
 Jean, a statistical database programmer, is trying to write a large statistical
program needed by her company.
 Her manager, not recognising the complexity of the problem, wants the job
completed within the next few days.
 Not knowing how to solve the problems, Jean remembers that a coworker had
given her source listings from his current work and from an early version of a
commercial software package developed at another company.
 On studying these programs, she sees two areas of code which could be directly
incorporated into her own program. She uses segments of code from both her co-
worker and the commercial software, but does not tell anyone or mention it in the
documentation.
Case Study 1
Part 1 – Question 1
Q1. What going on?
Jean uses segments of code from both her co-worker and the commercial software, but
does not tell anyone or mention it in the documentation. She completes the project and turns it in
a day ahead of time. This activity is not ethical and it directly violates the theory of virtue.
Q2. What are the facts?
The facts are as follows:
 Jean, a statistical database programmer, is trying to write a large statistical
program needed by her company.
 Her manager, not recognising the complexity of the problem, wants the job
completed within the next few days.
 Not knowing how to solve the problems, Jean remembers that a coworker had
given her source listings from his current work and from an early version of a
commercial software package developed at another company.
 On studying these programs, she sees two areas of code which could be directly
incorporated into her own program. She uses segments of code from both her co-
worker and the commercial software, but does not tell anyone or mention it in the
documentation.

2INFORMATION TECHNOLOGY ETHICS
Q3. What are the issues?
The main issue is that Jean steals her co-workers’ work without acknowledging them or
even letting them know.
Q4. Who is affected?
The co-workers are affected in the long run.
Q5. What are ethical issues and implications?
Using other’s work without acknowledging them is strictly against the ethical theory of
virtue. Jean deliberately breaks it in order to complete her work.
Q6. What can be done about it?
Severe punishments (like penalties, suspensions and others) can be imposed in the case
someone steals others’ works.
Q7. What are the options?
The main option is to encourage team venture rather than individual so that none’s work
is stolen.
Q8. Which option is the best and why?
The best option is the promotion of group ventures in a project rather than blaming one
particular member.
Part 1 – Question 2
This case study directly violates the theory of virtue. Virtue Ethics (or Virtue Theory) is
an approach to Ethics that emphasizes an individual's character as the key element of ethical
Q3. What are the issues?
The main issue is that Jean steals her co-workers’ work without acknowledging them or
even letting them know.
Q4. Who is affected?
The co-workers are affected in the long run.
Q5. What are ethical issues and implications?
Using other’s work without acknowledging them is strictly against the ethical theory of
virtue. Jean deliberately breaks it in order to complete her work.
Q6. What can be done about it?
Severe punishments (like penalties, suspensions and others) can be imposed in the case
someone steals others’ works.
Q7. What are the options?
The main option is to encourage team venture rather than individual so that none’s work
is stolen.
Q8. Which option is the best and why?
The best option is the promotion of group ventures in a project rather than blaming one
particular member.
Part 1 – Question 2
This case study directly violates the theory of virtue. Virtue Ethics (or Virtue Theory) is
an approach to Ethics that emphasizes an individual's character as the key element of ethical
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

3INFORMATION TECHNOLOGY ETHICS
thinking, rather than rules about the acts themselves (Deontology) or
their consequences (Consequentialism). This is violated in this case study.
Case Study 2
Part 1 – Question 1
Q1. What going on?
Company X has just signed a business agreement with Company Y, which entitles both
of them to access each other clients’ records. Mr. Faisal, a software programmer at Company Z,
was assigned the task of developing a software program that handles the access and retrieval of
records from each Company’s database system into the other. Faisal told his manager about the
problem he encountered and explained its significance. The manager's response was, "That's not
our problem; let's just be sure that our software functions properly." This violates the ethical
theory of deontology.
Q2. What are the facts?
The facts are as follows.
 Mr. Faisal, a software programmer at Company Z, was assigned the task of
developing a software program that handles the access and retrieval of records
from each Company’s database system into the other.
 A first run of the software on real data indicated that the work was well within the
state of the art, and no difficulties were found or anticipated.
thinking, rather than rules about the acts themselves (Deontology) or
their consequences (Consequentialism). This is violated in this case study.
Case Study 2
Part 1 – Question 1
Q1. What going on?
Company X has just signed a business agreement with Company Y, which entitles both
of them to access each other clients’ records. Mr. Faisal, a software programmer at Company Z,
was assigned the task of developing a software program that handles the access and retrieval of
records from each Company’s database system into the other. Faisal told his manager about the
problem he encountered and explained its significance. The manager's response was, "That's not
our problem; let's just be sure that our software functions properly." This violates the ethical
theory of deontology.
Q2. What are the facts?
The facts are as follows.
 Mr. Faisal, a software programmer at Company Z, was assigned the task of
developing a software program that handles the access and retrieval of records
from each Company’s database system into the other.
 A first run of the software on real data indicated that the work was well within the
state of the art, and no difficulties were found or anticipated.
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

4INFORMATION TECHNOLOGY ETHICS
 Several weeks later and during a normal test on the software developed, Faisal
discovered a serious ‘security hole’ in the database system of Company Y by
which hackers can easily obtain confidential information about clients.
 Faisal told his manager about the problem and explained its significance. The
manager's response was, "That's not our problem; let's just be sure that our
software functions properly."
Q3. What are the issues?
Faisal discovered a serious ‘security hole’ in the database system of Company Y by
which hackers can easily obtain confidential information about clients. He was convinced that
while the software he developed could correctly accomplish the task, the code in Company Y’s
database system could not be trusted as the security hole posed a threat even on Company X’s
database system. However, the ethical issue is that the manager wants to hide this issue and let
Company Y find it themselves.
Q4. Who is affected?
In the long run, company X is affected.
Q5. What are ethical issues and implications?
In moral philosophy, deontological ethics or deontology is the normative ethical position
that judges the morality of an action based on rules. It is sometimes described as "duty-" or
"obligation-" or "rule-" based ethics, because rules "bind you to your duty".
Q6. What can be done about it?
In order to solve this, the manager should take active initiative to solve the problem from
Company X’s end rather than leaving it for Company Y.
 Several weeks later and during a normal test on the software developed, Faisal
discovered a serious ‘security hole’ in the database system of Company Y by
which hackers can easily obtain confidential information about clients.
 Faisal told his manager about the problem and explained its significance. The
manager's response was, "That's not our problem; let's just be sure that our
software functions properly."
Q3. What are the issues?
Faisal discovered a serious ‘security hole’ in the database system of Company Y by
which hackers can easily obtain confidential information about clients. He was convinced that
while the software he developed could correctly accomplish the task, the code in Company Y’s
database system could not be trusted as the security hole posed a threat even on Company X’s
database system. However, the ethical issue is that the manager wants to hide this issue and let
Company Y find it themselves.
Q4. Who is affected?
In the long run, company X is affected.
Q5. What are ethical issues and implications?
In moral philosophy, deontological ethics or deontology is the normative ethical position
that judges the morality of an action based on rules. It is sometimes described as "duty-" or
"obligation-" or "rule-" based ethics, because rules "bind you to your duty".
Q6. What can be done about it?
In order to solve this, the manager should take active initiative to solve the problem from
Company X’s end rather than leaving it for Company Y.

5INFORMATION TECHNOLOGY ETHICS
Q7. What are the options?
There are no other options as the changes must be done before the database whole is
exploited by external malwares.
Q8. Which option is the best and why?
This is the best option because not only it follows Deontology theory but also addresses
the ethical aspect of the issue.
Part 1 – Question 2
This case study violates the ethical theory of deontology. In moral
philosophy, deontological ethics or deontology is the normative ethical position that judges the
morality of an action based on rules. It is sometimes described as "duty-" or "obligation-" or
"rule-" based ethics, because rules "bind you to your duty". However, this is not fulfilled in this
case study.
Case Study 3
Part 1 – Question 1
Q1. What going on?
The supervisor of the office wants to use pirated / unauthorized version of the software
without paying the developer.
Q2. What are the facts?
The facts are as follows.
Q7. What are the options?
There are no other options as the changes must be done before the database whole is
exploited by external malwares.
Q8. Which option is the best and why?
This is the best option because not only it follows Deontology theory but also addresses
the ethical aspect of the issue.
Part 1 – Question 2
This case study violates the ethical theory of deontology. In moral
philosophy, deontological ethics or deontology is the normative ethical position that judges the
morality of an action based on rules. It is sometimes described as "duty-" or "obligation-" or
"rule-" based ethics, because rules "bind you to your duty". However, this is not fulfilled in this
case study.
Case Study 3
Part 1 – Question 1
Q1. What going on?
The supervisor of the office wants to use pirated / unauthorized version of the software
without paying the developer.
Q2. What are the facts?
The facts are as follows.
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

6INFORMATION TECHNOLOGY ETHICS
 The objective is to enable ABC to keep better track of their inventory, to be more
responsive to changes in customer demand, and to adopt a “just in time” strategy
to reduce inventory.
 There is a software available but it is very expensive.
 The supervisor says he will use the version he already has for ABC although it
violates the agreement policy of the software.
Q3. What are the issues?
The main issue with this is that it violates the agreement policy of the software.
Q4. Who is affected?
The developer of the software is affected.
Q5. What are ethical issues and implications?
The main ethical issue is that it violates the agreement policy and the developer is
affected in terms of revenue.
Q6. What can be done about it?
Original version of the software should be bought with proper license.
Q7. What are the options?
Using one version / pirated version of the software should be stopped and a new original
version should be bought and used. This helps gaining revenue for the developers and also meets
the agreement policies.
 The objective is to enable ABC to keep better track of their inventory, to be more
responsive to changes in customer demand, and to adopt a “just in time” strategy
to reduce inventory.
 There is a software available but it is very expensive.
 The supervisor says he will use the version he already has for ABC although it
violates the agreement policy of the software.
Q3. What are the issues?
The main issue with this is that it violates the agreement policy of the software.
Q4. Who is affected?
The developer of the software is affected.
Q5. What are ethical issues and implications?
The main ethical issue is that it violates the agreement policy and the developer is
affected in terms of revenue.
Q6. What can be done about it?
Original version of the software should be bought with proper license.
Q7. What are the options?
Using one version / pirated version of the software should be stopped and a new original
version should be bought and used. This helps gaining revenue for the developers and also meets
the agreement policies.
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

7INFORMATION TECHNOLOGY ETHICS
Q8. Which option is the best and why?
The best option is to buy a new version of the chosen software even though it is
expensive or else buy a cheaper alternative software.
Part 1 – Question 2
This case study violates the ethical theory of contract. The agreement policy is a type of
contract that is agreed when the software is bought. However, this agreement policy does not
allow the user to use it in multiple systems. Hence, this case violates the theory.
Essay Topic 1
Enterprise software refers to software that businesses use to run their day-today activities
such as finance, sales, human resources, manufacturing, shipping, and procurement. It is
typically purchased by companies as off-the-shelf software, customized and configured to meet
their business needs, and made available to their employees. Enterprise software provides
visibility to executives regarding the health of their organizations and enables them to make
course corrections as needed. Finding and removing software faults is the classic strategy for
dealing with them. Fixing bugs in the operational phase is considerably more expensive than
doing so in the development or testing phase. Therefore, engineers expend much effort on
detecting and removing bugs during software development via both dynamic software tests and
static techniques like code reviews and walkthroughs. Systematically conducted unit and system
tests play an important role in revealing faults that lead to failures during software execution.
However, diagnosing and isolating the underlying fault responsible for an observed failure
becomes difficult if the failure cannot be reproduced. Software testing is, therefore, mainly
suitable for dealing with faults that consistently manifest under well-defined conditions. To
Q8. Which option is the best and why?
The best option is to buy a new version of the chosen software even though it is
expensive or else buy a cheaper alternative software.
Part 1 – Question 2
This case study violates the ethical theory of contract. The agreement policy is a type of
contract that is agreed when the software is bought. However, this agreement policy does not
allow the user to use it in multiple systems. Hence, this case violates the theory.
Essay Topic 1
Enterprise software refers to software that businesses use to run their day-today activities
such as finance, sales, human resources, manufacturing, shipping, and procurement. It is
typically purchased by companies as off-the-shelf software, customized and configured to meet
their business needs, and made available to their employees. Enterprise software provides
visibility to executives regarding the health of their organizations and enables them to make
course corrections as needed. Finding and removing software faults is the classic strategy for
dealing with them. Fixing bugs in the operational phase is considerably more expensive than
doing so in the development or testing phase. Therefore, engineers expend much effort on
detecting and removing bugs during software development via both dynamic software tests and
static techniques like code reviews and walkthroughs. Systematically conducted unit and system
tests play an important role in revealing faults that lead to failures during software execution.
However, diagnosing and isolating the underlying fault responsible for an observed failure
becomes difficult if the failure cannot be reproduced. Software testing is, therefore, mainly
suitable for dealing with faults that consistently manifest under well-defined conditions. To

8INFORMATION TECHNOLOGY ETHICS
explain this phenomenon, it’s useful to take a closer look at how the static fault in the software is
connected to the dynamic failure occurrence. Usually, activating a fault by executing the part of
the software where it’s located doesn’t immediately cause a failure. Rather, it produces an
internal condition in the system that deviates from the correct internal condition—referred to as
an error— even though the user might not perceive this discrepancy. An error can develop into
further errors before a failure finally occurs. This functional chain between errors and failure is
called error propagation. For example, a fault in an algorithm’s implementation can lead to an
erroneous computation for specific values of a program variable—a case of fault activation
causing an error. The software can use this incorrect result internally for further calculations, in
which case the error propagation leads to additional errors. A failure occurs only when the
system uses one of these incorrect calculations in a way that influences a perceivable system
behavior, or when error propagation causes a failure occurrence. Based on the relationships
between faults, errors, and failures, researchers can offer two explanations as to why software
may behave differently under apparently identical conditions. First, if there’s a long delay
between the fault activation and the final failure occurrence—for example, traversing several
different error states in the error propagation—then it’s difficult to identify the user actions that
actually activated the fault and caused the failure. Simply repeating the steps carried out a short
time before the failure occurrence might not lead to its reproduction. Second, other elements of
the software system—such as the operating system, other applications, or the hardware—can
influence a fault’s behavior in a specific application. researchers refer to the set of these elements
as the application’s system-internal environment. For example, inadequate synchronization in
multithreaded software can give rise to race conditions, in which the program behavior depends
on the relative timing of the threads the operating system schedules. Since a failure only occurs if
explain this phenomenon, it’s useful to take a closer look at how the static fault in the software is
connected to the dynamic failure occurrence. Usually, activating a fault by executing the part of
the software where it’s located doesn’t immediately cause a failure. Rather, it produces an
internal condition in the system that deviates from the correct internal condition—referred to as
an error— even though the user might not perceive this discrepancy. An error can develop into
further errors before a failure finally occurs. This functional chain between errors and failure is
called error propagation. For example, a fault in an algorithm’s implementation can lead to an
erroneous computation for specific values of a program variable—a case of fault activation
causing an error. The software can use this incorrect result internally for further calculations, in
which case the error propagation leads to additional errors. A failure occurs only when the
system uses one of these incorrect calculations in a way that influences a perceivable system
behavior, or when error propagation causes a failure occurrence. Based on the relationships
between faults, errors, and failures, researchers can offer two explanations as to why software
may behave differently under apparently identical conditions. First, if there’s a long delay
between the fault activation and the final failure occurrence—for example, traversing several
different error states in the error propagation—then it’s difficult to identify the user actions that
actually activated the fault and caused the failure. Simply repeating the steps carried out a short
time before the failure occurrence might not lead to its reproduction. Second, other elements of
the software system—such as the operating system, other applications, or the hardware—can
influence a fault’s behavior in a specific application. researchers refer to the set of these elements
as the application’s system-internal environment. For example, inadequate synchronization in
multithreaded software can give rise to race conditions, in which the program behavior depends
on the relative timing of the threads the operating system schedules. Since a failure only occurs if
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide

9INFORMATION TECHNOLOGY ETHICS
the operating system schedules the threads in a specific order that the programmers didn’t
foresee, troubleshooters find it difficult to reproduce such failures and isolate the underlying
faults. There are various reasons for discussing the issue of ethics within a software engineering
context. By participating in a software development process, software engineers can influence
the final product, namely the software itself, in different ways including those that may be
contrary to public interest. In other words, they could engage in an unethical behavior,
inadvertently or deliberately. This could lead to personal harm, and potentially result in loss of
confidence in software and loss of trust in organizations that own them. This can adversely affect
the acceptance of software as a useful product, question the credibility of software engineering as
a profession, lead to legal implications, and impact the bottom line of the software industry at-
large. Since a software can either be a benefit or a hazard to its potential users, the issue of ethics
in its engineering arises. Software failures that have led to loss of human life, rendered computer
systems unusable, led to financial collapse, or caused major inconveniences are grim reminders
of that. In this article, researchers discuss the issue of ethics from the viewpoint of software
product quality considerations in practice. There is an apparent symbiosis between ethics and
quality. For example, the causes of the aforementioned failures were attributed to violations of
one or more quality attributes such as reliability, safety, and so forth, and/or to lack of proper
validation/verification of these. Indeed, in the Software Engineering Body of Knowledge
(SWEBOK), ethics has been placed within the software quality “knowledge area.” The issue of
information technology in general, and the role of quality in software development in particular,
have been addressed in. Moreover, software quality is viewed as an ethical issue from a
philosophical perspective. However, these efforts are limited by one or more of the following
issues: quality and ethics are often viewed as a tautology, treatment of software quality is at a
the operating system schedules the threads in a specific order that the programmers didn’t
foresee, troubleshooters find it difficult to reproduce such failures and isolate the underlying
faults. There are various reasons for discussing the issue of ethics within a software engineering
context. By participating in a software development process, software engineers can influence
the final product, namely the software itself, in different ways including those that may be
contrary to public interest. In other words, they could engage in an unethical behavior,
inadvertently or deliberately. This could lead to personal harm, and potentially result in loss of
confidence in software and loss of trust in organizations that own them. This can adversely affect
the acceptance of software as a useful product, question the credibility of software engineering as
a profession, lead to legal implications, and impact the bottom line of the software industry at-
large. Since a software can either be a benefit or a hazard to its potential users, the issue of ethics
in its engineering arises. Software failures that have led to loss of human life, rendered computer
systems unusable, led to financial collapse, or caused major inconveniences are grim reminders
of that. In this article, researchers discuss the issue of ethics from the viewpoint of software
product quality considerations in practice. There is an apparent symbiosis between ethics and
quality. For example, the causes of the aforementioned failures were attributed to violations of
one or more quality attributes such as reliability, safety, and so forth, and/or to lack of proper
validation/verification of these. Indeed, in the Software Engineering Body of Knowledge
(SWEBOK), ethics has been placed within the software quality “knowledge area.” The issue of
information technology in general, and the role of quality in software development in particular,
have been addressed in. Moreover, software quality is viewed as an ethical issue from a
philosophical perspective. However, these efforts are limited by one or more of the following
issues: quality and ethics are often viewed as a tautology, treatment of software quality is at a
Paraphrase This Document
Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser

10INFORMATION TECHNOLOGY ETHICS
very high level and often as a single entity, and there is lack of specific guidance for
improvement of software quality within the domain of software ethics. One way to enforce
ethical standards in a software project is by explicitly documenting the ethical expectations from
stakeholders such as via a code of ethics. The Software Engineering Code of Ethics and
Professional Practice (SECEPP) is a recommendation of the ACM/IEEE-CS Joint Task Force on
Software Engineering Ethics and Professional Practices. SECEPP puts forth eight categories of
principles decomposed further into clauses that software engineers should adhere to in teaching
and practicing software engineering. However, these principles and associated clauses suffer
from several issues (expounded in the next section): lack of separation (of concerns), recency,
precision, completeness, reachability (to certain audience), and specificity, which makes their
realization difficult. The relevance of SECEPP for practical purposes has been questioned
(Qureshi, 2001), however the view is largely managerial rather than oriented towards the
software product.
Essay Topic 2
Every programmer has a characteristic style, ranging from preferences about identifier
naming to preferences about object relationships and design patterns. Coding conventions define
a consistent syntactic style, fostering readability and hence maintainability. When collaborating,
programmers strive to obey a project’s coding conventions. However, one third of reviews of
changes contain feedback about coding conventions, indicating that programmers do not always
follow them and that project members care deeply about adherence. Unfortunately, programmers
are often unaware of coding conventions because inferring them requires a global view, one that
aggregates the many local decisions programmers make and identifies emergent consensus on
very high level and often as a single entity, and there is lack of specific guidance for
improvement of software quality within the domain of software ethics. One way to enforce
ethical standards in a software project is by explicitly documenting the ethical expectations from
stakeholders such as via a code of ethics. The Software Engineering Code of Ethics and
Professional Practice (SECEPP) is a recommendation of the ACM/IEEE-CS Joint Task Force on
Software Engineering Ethics and Professional Practices. SECEPP puts forth eight categories of
principles decomposed further into clauses that software engineers should adhere to in teaching
and practicing software engineering. However, these principles and associated clauses suffer
from several issues (expounded in the next section): lack of separation (of concerns), recency,
precision, completeness, reachability (to certain audience), and specificity, which makes their
realization difficult. The relevance of SECEPP for practical purposes has been questioned
(Qureshi, 2001), however the view is largely managerial rather than oriented towards the
software product.
Essay Topic 2
Every programmer has a characteristic style, ranging from preferences about identifier
naming to preferences about object relationships and design patterns. Coding conventions define
a consistent syntactic style, fostering readability and hence maintainability. When collaborating,
programmers strive to obey a project’s coding conventions. However, one third of reviews of
changes contain feedback about coding conventions, indicating that programmers do not always
follow them and that project members care deeply about adherence. Unfortunately, programmers
are often unaware of coding conventions because inferring them requires a global view, one that
aggregates the many local decisions programmers make and identifies emergent consensus on

11INFORMATION TECHNOLOGY ETHICS
style. To program is to make a series of choices, ranging from design decisions — like how to
decompose a problem into functions — to the choice of identifier names and how to format the
code. While local and syntactic, the latter are important: names connect program source to its
problem domain; formatting decisions usually capture control flow. Together, naming and
formatting decisions determine the readability of a program’s source code, increasing a
codebase’s portability, its accessibility to newcomers, its reliability, and its maintainability.
Apple’s recent, infamous bug in its handling of SSL certificates exemplifies the impact that
formatting can have on reliability. Maintainability is especially important since developers spend
the majority (80%) of their time maintaining code. A convention is “an equilibrium that
everyone expects in interactions that have more than one equilibrium”. For us, coding
conventions arise out of the collision of the stylistic choices of programmers. A coding
convention is a syntactic restriction not imposed by a programming language’s grammar.
Nonetheless, these choices are important enough that they are enforced by software teams.
Indeed, our investigations indicate that developers enforce such coding conventions rigorously,
with roughly one third of code reviews containing feedback about following them. Like the rules
of society at large, coding conventions fall into two broad categories: laws, explicitly stated and
enforced rules, and mores, unspoken common practice that emerges spontaneously. Mores pose a
particular challenge: because they arise spontaneously from emergent consensus, they are
inherently difficult to codify into a fixed set of rules, so rule-based formatters cannot enforce
them, and even programmers themselves have difficulty adhering to all of the implicit mores of a
codebase. Furthermore, popular code changes constantly, and these changes necessarily embody
stylistic decisions, sometimes generating new conventions and sometimes changing existing
ones. To address this, researchers introduce the coding convention inference problem, the
style. To program is to make a series of choices, ranging from design decisions — like how to
decompose a problem into functions — to the choice of identifier names and how to format the
code. While local and syntactic, the latter are important: names connect program source to its
problem domain; formatting decisions usually capture control flow. Together, naming and
formatting decisions determine the readability of a program’s source code, increasing a
codebase’s portability, its accessibility to newcomers, its reliability, and its maintainability.
Apple’s recent, infamous bug in its handling of SSL certificates exemplifies the impact that
formatting can have on reliability. Maintainability is especially important since developers spend
the majority (80%) of their time maintaining code. A convention is “an equilibrium that
everyone expects in interactions that have more than one equilibrium”. For us, coding
conventions arise out of the collision of the stylistic choices of programmers. A coding
convention is a syntactic restriction not imposed by a programming language’s grammar.
Nonetheless, these choices are important enough that they are enforced by software teams.
Indeed, our investigations indicate that developers enforce such coding conventions rigorously,
with roughly one third of code reviews containing feedback about following them. Like the rules
of society at large, coding conventions fall into two broad categories: laws, explicitly stated and
enforced rules, and mores, unspoken common practice that emerges spontaneously. Mores pose a
particular challenge: because they arise spontaneously from emergent consensus, they are
inherently difficult to codify into a fixed set of rules, so rule-based formatters cannot enforce
them, and even programmers themselves have difficulty adhering to all of the implicit mores of a
codebase. Furthermore, popular code changes constantly, and these changes necessarily embody
stylistic decisions, sometimes generating new conventions and sometimes changing existing
ones. To address this, researchers introduce the coding convention inference problem, the
⊘ This is a preview!⊘
Do you want full access?
Subscribe today to unlock all pages.

Trusted by 1+ million students worldwide
1 out of 18
Related Documents
Your All-in-One AI-Powered Toolkit for Academic Success.
+13062052269
info@desklib.com
Available 24*7 on WhatsApp / Email
Unlock your academic potential
Copyright © 2020–2025 A2Z Services. All Rights Reserved. Developed and managed by ZUCOL.





