diff --git a/ESE-BackgroundInformation.md b/ESE-BackgroundInformation.md index 1376904..cfe6d96 100644 --- a/ESE-BackgroundInformation.md +++ b/ESE-BackgroundInformation.md @@ -50,4 +50,4 @@ See [Frequently Asked Questions (FAQ)](/ESE-FAQ.md#agile-values-and-principles) ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/ESE-FAQ.md b/ESE-FAQ.md index 48220f3..57f23bd 100644 --- a/ESE-FAQ.md +++ b/ESE-FAQ.md @@ -36,7 +36,7 @@ ### Agile Values and Principles * Does usage of IEEE Std. 7000 introduce the risk of harming project velocity? - * *Answer:* Our motivation in this work is to prevent this. + * *Answer:* Our motivation in this work is to prevent this. Some slow down might actually be beneficial as value elicitation and conflict resolution do take time and require rigor and effort. The more critical a system is (think about safety-critical systems), the more effort and time for careful, responsible analysis and design work is in order. * How do the Agile values in the manifesto and those in XP etc. fit in? * *Answer:* While related, not all of the agile values directly correspond to ethical values such as transparency, sustainability, privacy, fairness, and accountability. The following table maps the four values of the Agile Manifesto to selected, exemplary core values from Table G.1 in IEEE Std. 7000: @@ -72,7 +72,20 @@ The 12 principles, also quoted from the Agile Manifesto, map to IEEE Std. 7000 ( Note that Privacy is absent from the examples; values such as Respect and Trust relate to several other Agile principles. -### ESE and other methods +### ESE and other methods/assets + +* How do IEEE Std. 7000 and ESE relate to the [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) and similar codes (including those on ethical artificial intelligence)? + * *Answer:* IEEE Std. 7000 specifies processes, applicable for organisations, teams, projects; ESE adds practices to integrate the standards concepts into agile development. Complementarily, codes such as the ACM one focus on indiuviduals and their behavior. The standard, the codes, and ESE share common goals such as raising awareness for the existence and importance of ethical values and moral obligations in the context of systems and software engineering. + +* How does ESE relate to the [Proactive CARE framework](https://ethics.acm.org/wp-content/uploads/2021/03/Proactive-CARE-for-Computing-Professionals.pdf), available on the ACM ethics website? + * *Answer:* See the following table: + +| Proactive CARE (Gotterbarn et al) | IEEE Std. 7000, ESE | +|-|-| +| "Consider who might be affected and how"| ConOps work, case for ethics (IEEE Std. 7000), Story Valuation techniques (ESE) | +| "Analyze the situation’s details"| Ethical Value Requirement (EVR) elicitation, follow-on design work, reviews | +| "Review other obligations and limitations"| Work on ConOps, EVRs | +| "Evaluate the best course of action"| Design decision making | * Can ESE be combined with other methods and description standards? * *Answer:* Yes. For instance, in [arc42](https://www.arc42.de/) descriptions, the ESE output could go to a new section ("arc42+") or to existing ones: @@ -90,7 +103,7 @@ Note that Privacy is absent from the examples; values such as Respect and Trust ### Misc * What do all the acronyms mean (EVR, SOI, VBSR, ...)? - * *Answer:* See the [Glossary](/ESE-Glossary.md#overview) + * *Answer:* See the [Glossary](/ESE-Glossary.md#overview). * What is available in ESE (this repository)? * *Answer:* ESE describes two new [practices](/practices/), Story Valuation and Ethics Review, and extends three existing ones, Definition of Ready, Definition of Done, and Retrospective. It also features [roles](/roles/) from IEEE Std. 7000. @@ -113,7 +126,7 @@ Note that Privacy is absent from the examples; values such as Respect and Trust * How does ESE relate to and use existing documentation templates such as arc42? * *Answer:* It is complementary and extends what is already there. Detailed information is work in progress (see Future Work information). -* There are many regulations in countries and organizations, compliance management often is in place. Why is value-based systems/software engineering still needed? What does ESE differently. +* There are many regulations in countries and organizations, compliance management often is in place. Why is value-based systems/software engineering still needed? What does ESE differently? * *Answer:* Values can be brought forward by any stakeholder (group); both positive and negative ones exist, with the aim to promote responsible behavior (in contrast to just following rules). ESE pushes ethical thinking and designing into the developer mainstream, practitioners no longer have to pull it from the literature or online resources. * What is in the method engineering backlog? @@ -124,4 +137,4 @@ Note that Privacy is absent from the examples; values such as Respect and Trust ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/ESE-FutureWork.md b/ESE-FutureWork.md index 0789896..53e6c6f 100644 --- a/ESE-FutureWork.md +++ b/ESE-FutureWork.md @@ -14,4 +14,4 @@ ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/ESE-Glossary.md b/ESE-Glossary.md index fa93232..d29dcdb 100644 --- a/ESE-Glossary.md +++ b/ESE-Glossary.md @@ -70,6 +70,9 @@ IEEE Std. 7000 defines: "Group containing one core value and several values inst In ESE, value clusters can be documented in several ways, for instance as part of Value Trees (see example in Story Valuation). ESE also provides Markdown templates for them. +### Value Demonstrator +IEEE Std. 7000 defines: "Potential manifestation of a core value, which is either instrumental to the core value or undermines it.". + ### Value Register IEEE Std. 7000 defines: "An information store created for transparency and traceability reasons, which contains data and decisions gained in ethical values elicitation and prioritization and traceability into ethical value requirements." @@ -96,4 +99,4 @@ See "Ethically Aligned Design: First Edition Glossary" available [online](https: ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/ESE-Literature.md b/ESE-Literature.md index 7d22db6..aeae53e 100644 --- a/ESE-Literature.md +++ b/ESE-Literature.md @@ -1,9 +1,19 @@ # Ethical Software Engineering (ESE) Bibliography -*Note* Access to [IEEE Std. 7000](https://standards.ieee.org/ieee/24748-7000/11098/) is free after registration for IEEE Xplore (click on "Access via Subscription"). +*News (March 14 2024):* ESE is featured in an ETHICOMP 2024 [presentation](https://ozimmer.ch/assets/presos/ZIO-ESEAtETHICOMPv10p.pdf) and paper "Bringing Ethical Values into Agile Software Development" (peer-reviewed [extended abstract](https://dialnet.unirioja.es/descarga/articulo/9326119.pdf), [full paper](./resources/ESE-ETHICOMP2024FullPaperAuthorsCopyV101.pdf)). + +*News (August 22, 2024):* Two more related papers have been accepted for publication (EuroPLoP 2024, ISTAS 2024). ## Background Information on Tech. Ethics + + +*Note:* Access to [IEEE Std. 7000](https://standards.ieee.org/ieee/24748-7000/11098/) is free after registration for IEEE Xplore (click on "Access via Subscription"). + ### IEEE Std. 7000 and Value-Based Systems Engineering * ["What to Expect From IEEE 7000: The First Standard for Building Ethical Systems"](https://technologyandsociety.org/what-to-expect-from-ieee-7000-the-first-standard-for-building-ethical-systems/), IEEE Technology and Society, Spiekermann-Hoff, 2022 @@ -11,28 +21,63 @@ * ["Human Values as the Basis for Sustainable Information System Design"](https://research.wu.ac.at/ws/portalfiles/portal/19837176/Human+Values+as+the+Basis+for+Stustainable+Information+Systems+Design+(Pre-print).pdf), Winkler, Till and Spiekermann-Hoff, Sarah, IEEE Technology and Society, 2019 * ["10 Principles for Value-Based Engineering"](https://www.wu.ac.at/value-based-engineering/principles/), also featured in ["Value-based Engineering: Prinzipien und Motivation für bessere IT-Systeme"](https://link.springer.com/article/10.1007/s00287-021-01378-4) (in German) * ["Value-Sensitive Design"](https://mitpress.mit.edu/9780262039536/value-sensitive-design/), Batya Friedman und David Hendry, MIT Press, 2019. -* A call for SW ethics ["The Five Principles of Software Ethics"](https://thenewstack.io/five-principles-software-ethics/) +* A call for Software ethics ["The Five Principles of Software Ethics"](https://thenewstack.io/five-principles-software-ethics/) * Context, Consequences, Contribution (3C) model: ["A model to help tech companies make responsible technology a reality"](https://medium.com/doteveryone/a-model-to-help-tech-companies-make-responsible-technology-a-reality-837c50713c65) -* Olaf Zimmermann, Mirko Stocker, Stefan Kapferer, "Bringing Ethical Values into Agile Software Development", Prof. of ETHICOMP 2024 (to appear) +* Stefan Kapferer, Mirko Stocker, Olaf Zimmermann, "Towards responsible software engineering: +combining value-based processes, agile practices, and green metering", Proceedings of IEEE ISTAS 2024 (to appear) +* Olaf Zimmermann, Mirko Stocker, Stefan Kapferer, "Bringing Ethical Values into Agile Software Development", Proc. of ETHICOMP 2024 ([extended abstract (peer-reviewed)](https://dialnet.unirioja.es/descarga/articulo/9326119.pdf), [full paper in proceedings (pages 87 to 98)](https://dialnet.unirioja.es/descarga/libro/977710.pdf)) -Codes of Conduct and Ethics: +### Approaches to Manage and Mitigate Risk and Impact + +* Proactive CARE framework: + * Gotterbarn, D., Kirkpatrick M.S., Wolf M.J., "From the Page to Practice: Support for Computing Professionals Using a Code of Ethics", Proc. of ETHCICOMP 2022 ([proceedings PDF](https://sites.utu.fi/ethicomp2022/wp-content/uploads/sites/1104/2022/09/Ethicomp-2022-Proceedings_Corrected.pdf)) +* Software Development Impact Statement (SoDIS) process: + * Gotterbarn, D., Rogerson, S., "Responsible Risk Assessment with Software Development: Creating the Software Development Impact Statement". Communications of the Association for Information Systems, 15, 2005 ([PDF download](https://doi.org/10.17705/1CAIS.01540)) +* Positive responsibility + * Ladd, John. 1991. "Bhopal: An Essay on Moral Responsibility and Civic Virtue.", Journal of Social Philosophy 32: 73–91, 1991 + + +### Codes of Conduct and Ethics * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) -* IEEE Computer Society [Code of Ethics](https://www.computer.org/education/code-of-ethics) -* [GI (DE)](https://gi.de/ethicalguidelines) and SI (CH) +* IEEE Computer Society [Code of Ethics](https://www.computer.org/education/code-of-ethics) (IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices) +* [Ethical Guidelines of the German Informatics Society](https://gi.de/ethicalguidelines) +* Swiss Informatics Society, SI [Code of Ethics](https://www.swissinformatics.org/Dokumente/legal_3_en/si-code-of-ethics-2019.pdf) ## Background Information on Agile Software Development * Homepage of the [Agile Alliance](https://www.agilealliance.org/) that provides the Agile Manifesto, a "Subway Map to Agile Practices", an glossary, and other resources: * Agile Coaching Ethics, + * [Design Practice Repository and Reference (DPR)](https://socadk.github.io/design-practice-repository/) for agile architecting, API design, and beyond (since 2020) ## Related Work and Tools + + This paper (in German) identifies related work, including an Ethics Canvas Manual, a Responsible Design Process, and an EDAP Schema (EDAP is short for "Ethische Deliberation für agile Prozesse", which translates to "ethical deliberation for agile processes"). * ["Integration moralischer Anforderungen in den agilen Entwicklungsprozess KI-basierter Anwendungen am Beispiel von Scrum"](https://link.springer.com/article/10.1365/s40702-022-00848-x#Sec2) ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). + + +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/README.md b/README.md index 1e846e7..518fa41 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,14 @@ -# ethical-software-engineering (ESE) + +# Ethical Software Engineering (ESE) + +*News (March 14, 2024):* ESE featured at ETHICOMP 2024 *"Bringing Ethical Values into Agile Software Development"*: + +* Conference [presentation](https://ozimmer.ch/assets/presos/ZIO-ESEAtETHICOMPv10p.pdf) (PDF, 23 slides) +* Peer-reviewed [extended abstract](https://dialnet.unirioja.es/descarga/articulo/9326119.pdf) (PDF, 3 pages) +* Full proceedings [paper](resources/ESE-ETHICOMP2024FullPaperAuthorsCopyV101.pdf) (PDF, 10 pages) + +## Overview and Orientation + *TL;DR:* [IEEE Std. 7000](https://ieeexplore.ieee.org/document/9536679) meets Agile practices (note: access to IEEE Std. 7000 is free after registration for IEEE Xplore). @@ -8,18 +18,24 @@ ## Motivation + + Ethical Software Engineering (ESE) is for you if: -1. You see yourself as a socially responsible software engineer. +1. You see yourself as a socially responsible software engineer. 2. You see the risk that the software under construction may have undesired and/or unexpected and/or unjustified effects for one or more of its stakeholder groups and want to manage and mitigate this risk. 3. You look for a set of essential, as-light-as-possible practices that increase the chances of your project or product development effort becoming compliant with IEEE Std. 7000. -ESE targets any software engineer[^2] who wishes to create ethically valuable software, agile teams in particular. Its motivating themes are: + + +ESE targets any software engineer[^2] who wishes to create ethically valuable software, agile teams in particular. Its motivating themes are:[^1] * *Synergies:* A value- and risk-based approach to design is very much at the heart of agile methods; for instance, [Extreme Programming](https://www.agilealliance.org/glossary/xp) aims at balancing cost, time, quality and scope variables. * *Dual relation:* Agile practices may promote social responsibility and ethical behavior, but may also harm ethical values. The devil is in the detail, software usage context matters. * *Novelty:* The topic of ethical values has not been discussed much in Agile practices so far.[^3] The Agile Alliance has a [Code of Conduct](https://www.agilealliance.org/code-of-conduct/). And a blog post on [coaching ethics](https://www.agilealliance.org/identifying-a-code-of-ethical-conduct-for-agile-coaching/) made it to the top 10 of 2022 (Agile Alliance). +[^1]: An ETHICOMP 2022 paper, "From the Page to Practice: Support for Computing Professionals Using a Code of Ethics", makes the case for a proactive approach. It presents a Consider, Analyze, Review, Evaluate (CARE) process. See the [Bibliography](ESE-Literature.md) page. + [^2]: We use the term "software engineer" in a broad sense here, including roles such as requirements engineer, architect, developer, tester, operator and maintainer. The entire software development lifecycle is in scope, with special emphasis on analysis and design. [^3]: For instance, search for terms such as "ethics" on the [website](https://www.agilealliance.org/) of the Agile Alliance. @@ -31,6 +47,21 @@ The following figure shows three different meanings of the term "value", dependi For additional motivation for ethical software engineering and terminology clarification, please refer to ["Are Programmers Ethically (and Legally) Responsible for Their Code?"](https://thenewstack.io/are-programmers-ethically-and-legally-responsible-for-their-code/), an article by Jennifer Riggins on The New Stack (Aug 16, 2018). + + ## Repository Navigation @@ -79,12 +110,13 @@ See [Bibliography page](ESE-Literature.md). See [experimentation](/experimentation/) folder and README. -*January 13, 2024* +*August 22, 2024* *[ZIO](https://medium.com/olzzio) aka Olaf Zimmermann* ## Acknowledgments -Bärbel Bohr, Mirko Stocker and Stefan Kapferer contributed to the ESE content via discussion input, experimenation and/or review feedback. +Bärbel Bohr, Mirko Stocker and Stefan Kapferer contributed to the ESE content via discussion input, experimenation and/or review feedback before its public release. The attendees of the ETHICOMP 2024 presentation on ESE Version 1.0, as well as other conference attendees, provided +valuable feedback, incorporated in the current version. Thank you very much indeed! -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/contributing/CONTRIBUTING.md b/contributing/CONTRIBUTING.md index 1a5c41c..1f8337c 100644 --- a/contributing/CONTRIBUTING.md +++ b/contributing/CONTRIBUTING.md @@ -20,7 +20,7 @@ We are happy to welcome new contributors who want to help improve our collection title: CONTRIBUTING.md owner: Olaf Zimmermann (ZIO) date: "11, 08, 2023" -copyright: Olaf Zimmermann, 2023 (unless noted otherwise). All rights reserved. +copyright: Olaf Zimmermann, 2023-2024 (unless noted otherwise). All rights reserved. ``` ### License diff --git a/contributing/readme.md b/contributing/readme.md index 3a6717f..6be4482 100644 --- a/contributing/readme.md +++ b/contributing/readme.md @@ -8,8 +8,8 @@ Please refer to [CONTRIBUTING.md](CONTRIBUTING.md). ```yaml title: "ESE: Contributing" author: Olaf Zimmermann (ZIO) -date: "11, 13, 2023 (Source: Project ESE, supported by the Hasler-Foundation)" -copyright: Olaf Zimmermann, 2023 (unless noted otherwise). All rights reserved. +date: "11, 13, 2023 (Version 1.0, supported by the Hasler-Foundation)" +copyright: Olaf Zimmermann, 2023-2024 (unless noted otherwise). All rights reserved. ``` ### License diff --git a/experimentation/README.md b/experimentation/README.md index 144da67..99c4bed 100644 --- a/experimentation/README.md +++ b/experimentation/README.md @@ -50,4 +50,4 @@ Any other feedback on method content and its presentation (including repository ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/images/ESE-SVStructure.png b/images/ESE-SVStructure.png index 2cad51f..82d73ab 100644 Binary files a/images/ESE-SVStructure.png and b/images/ESE-SVStructure.png differ diff --git a/images/ESE-ValueElicitationQuestions.png b/images/ESE-ValueElicitationQuestions.png index fdee790..9222a2c 100644 Binary files a/images/ESE-ValueElicitationQuestions.png and b/images/ESE-ValueElicitationQuestions.png differ diff --git a/practices/ESE-DefinitionOfDone.md b/practices/ESE-DefinitionOfDone.md index f082045..7b40d2f 100644 --- a/practices/ESE-DefinitionOfDone.md +++ b/practices/ESE-DefinitionOfDone.md @@ -52,7 +52,7 @@ In the Lakeside Mutual example used in [Story Valuation](ESE-StoryValuation.md), --- title: "ESE: Sample DoD Checklist" author: Prowno Lakemutstaff -date: "mm, dd, yyyy (Source: Project ESE)" +date: "mm, dd, yyyy (Project ESE)" --- # Definition of Done for "Custer Self Service" development at Lakeside Mutual @@ -85,12 +85,14 @@ date: "mm, dd, yyyy (Source: Project ESE)" ### Hints and Pitfalls to Avoid +* Be honest in your assessments.[^1] +* Spend as much time as needed on ethics and be as efficient as possible; avoid a mere "checkbox ethics" approach, often perceived as an antipattern.[^2] * Consistency matters; define and agree on a DoD at the project start and stick to it. Do not change the criteria in flight. Otherwise, the practice might yield false data and lose its value. * Plan and execute the [acceptance testing](https://www.agilealliance.org/glossary/acceptance) adequately. Keep an eye on effort vs. benefit; it might not be needed and/or not possible to let end users test every story in each sprint. Choosing a suited granularity and frequency is a product management responsibility. -* Be honest in your assessments.[^1] [^1]: Arguably, honesty is a fundamental ethical value that can be expected to also appear in many Value Registers. +[^2]: See "Stop Using Checkbox Ethics" ([Part 1](https://activemind.ai/blog/checkboxing1/), [Part 2](https://activemind.ai/blog/checkboxing2/)) and/or ["Research Ethics and Ethical Research: An Example of Integrating Ethics in R&I Research"](https://link.springer.com/article/10.1007/s41125-023-00096-0) for a clarification of the term "checkbox ethics" (in a broader context). ### Related Artifacts and Practices @@ -119,7 +121,7 @@ The Design Practice Repository/Reference (DPR) on [GitHub](https://github.com/so ```yaml title: "ESE artifact: Ethics-Enabled DoD" author: Olaf Zimmermann (ZIO) -date: "11, 13, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 13, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` diff --git a/practices/ESE-DefinitionOfReady.md b/practices/ESE-DefinitionOfReady.md index 0171891..f9c7425 100644 --- a/practices/ESE-DefinitionOfReady.md +++ b/practices/ESE-DefinitionOfReady.md @@ -49,7 +49,7 @@ In the Lakeside Mutual example used in [Story Valuation](ESE-StoryValuation.md), --- title: "ESE: Sample DoR Checklist" author: Prowno Lakemutstaff -date: "mm, dd, yyyy (Source: Project ESE)" +date: "mm, dd, yyyy (Project ESE)" --- # Definition of Ready for "Custer Self Service" development at Lakeside Mutual @@ -83,7 +83,7 @@ date: "mm, dd, yyyy (Source: Project ESE)" * Consistency matters; define and agree on a DoR at the project start. * Do not change the DoR during the project. If you do, it might yield false data and lose its value. * Do not over-analyze. This would be anti-agile. -* Do no cheat. Doing the right things and doing them right is a maxim that applies here (and elsewhere). +* Do no cheat. This would be unethical. Doing the right things and doing them right is a maxim that applies here (and elsewhere). * If you are not sure whether the DoR is met and decide to go ahead, document your doubts and be ready to go back if needed. @@ -112,7 +112,7 @@ In alphabetical order: ```yaml title: "ESE artifact: Ethics-Enabled DoR" author: Olaf Zimmermann (ZIO) -date: "11, 13, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 13, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` \ No newline at end of file diff --git a/practices/ESE-EthicalReview.md b/practices/ESE-EthicalReview.md index 8957940..e3491e4 100644 --- a/practices/ESE-EthicalReview.md +++ b/practices/ESE-EthicalReview.md @@ -90,7 +90,9 @@ The review can be run just like other ones, but extended with questions about va * Review the valuated user stories that served as sprint/iteration input (with business, technical, ethical values to be considered). * Get all relevant stakeholders involved in the story valuation and ethics review, including end-user representatives. They know their values better than the development team. The ethical review is part of the conversation with them that Agile values call for.[^1] -* Be honest: Do not schedule a review if you do not believe in its value. But document your rationale for the decision not to look back. +* Be honest: Do not schedule a review if you do not believe in its value. But document your rationale for the decision not to look back. +* Again, avoid checkbox ethics. +* Apply techniques from other processes/methods as/if needed, for instance Proactive CARE and SoDIS (see [Literature](../ESE-Literature.md) for references). [^1]: To quote from the "Perfect 10" talk by Vaughn Vernon, the loudest and the longest talkers often cause harm ([read on](https://medium.com/olzzio/notes-from-the-architecture-and-modeling-learning-event-part-2-28287a7f13b0)). DO not interpret silence as agreement. @@ -121,7 +123,7 @@ Miscellaneous: ```yaml title: "ESE artifact: Ethics Review Meeting/Report" author: Olaf Zimmermann (ZIO) -date: "11, 20, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 20, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` \ No newline at end of file diff --git a/practices/ESE-StoryValuation.md b/practices/ESE-StoryValuation.md index abf4105..5c885c8 100644 --- a/practices/ESE-StoryValuation.md +++ b/practices/ESE-StoryValuation.md @@ -10,6 +10,8 @@ Activity: *Story Valuation* --------------------------- also known as Value-Enhanced User Story Elicitation, People-Society-Planet INVESTing + + *Quick links:* (1) [Goal and Purpose](#goal-and-purpose) (2) [Notations](#notations) (3) [Techniques](#valuation-techniques) (4) [Usage](#usage) (5) [Application Hints](#hints-and-pitfalls-to-avoid) (6) [Other Practices](/practices/) (7) [ESE Home](/README.md) ### Context @@ -27,7 +29,7 @@ Ethical Software Engineering (ESE), i.e., this project/repository, proposes to e ### Goal and Purpose -> *As a responsible software engineer, I want to craft working software that delivers value to users and other stakeholders while not harming any individuals, society and/or the planet. I also want to identify goal conflicts so that adequate tradeoffs can be found.* +> *As a responsible software engineer, I want to craft working software that delivers value to users and other stakeholders while not harming any individuals, society and/or the planet. I want to identify goal conflicts so that adequate tradeoffs can be found.* Not doing any of the activities in ESE is possible, but may cause harm in the long run.[^3] @@ -57,7 +59,7 @@ The following UML object instance diagram (aka Value Tree) illustrates the relat ![ESE/IEEE 7000 Value Tree](/images/ESE-ValueObjectTree.png) - + Note that the words [benefits](/ESE-Glossary.md#benefit) and [harms](/ESE-Glossary.md#harm) in the figure do not imply the usage, or sole usage, of any particular ethical theory. @@ -106,11 +108,13 @@ Collectively, the value epics, weightings, narratives comprise the Value Registe ***Disclaimer:*** These proposals have not been fully validated yet; please view them as drafts, serving as invitations to a continued method engineering discussion. [Examples](#examples) follow. #### Ethical Value Requirement (EVRs) -As an important type of non-functional requirements, [EVRs](/ESE-Glossary.md#evr) can be written up either in free form or in a structured way. IEEE Std. 7000 specifies how to document Values and EVRs in a rather elaborate form; or details, please refer to pages 40 to 42 in Clause 8 and then pages 44 to 46 in Clause 9 of the standard. +As an important type of non-functional requirements, [EVRs](/ESE-Glossary.md#evr) can be written up either in free form or in a structured way. IEEE Std. 7000 specifies how to document Values and EVRs in a rather elaborate form; or details, please refer to pages 40 to 42 in Clause 8 (Values) and then pages 44 to 46 (EVRs) in Clause 9 of the standard. IEEE Std. 7000 gives an example of an EVR in the full-body scanner SOI in B.2: "The system shall protect the privacy of body images of scanned passengers.". The standard talks about "risk treatment options" (which are technical, organizational, social) and "value demonstrator realization". In ESE, we see these information elements at the interface/intersection between analysis and design. @@ -131,7 +135,7 @@ Alternatively, the value-enhanced user story may also refer to Value Register en #### Value-Based System Requirement (VBSRs) -a) VBSRs may adopt the Quality Attribute Scenario (QAS) table format from the SEI ([introduction](https://www.cs.unb.ca/~wdu/cs6075w10/sa2.htm) with examples, [online article](https://www.codementor.io/@antoniopfesilva/how-to-write-meaningful-quality-attributes-for-software-development-ez8y90wyo) with more examples, [arc42 Quality Model](https://quality.arc42.org) with even more examples): +a) VBSRs may adopt the Quality Attribute Scenario (QAS) table format from the SEI ([introduction](https://socadk.github.io/design-practice-repository/artifact-templates/DPR-QualityAttributeScenario.html) with examples, [online article](https://www.codementor.io/@antoniopfesilva/how-to-write-meaningful-quality-attributes-for-software-development-ez8y90wyo) with more examples, [arc42 Quality Model](https://quality.arc42.org) with even more examples): | Scenario Element | ESE Usage of Element | |-|-| @@ -168,7 +172,7 @@ The valuation techniques proposed in ESE are: Any combinations of these three techniques are eligible when following Agile methods. For instance, the [Product Vision](https://www.scrum.org/resources/what-product-vision) in Scrum may serve as a natural starting point for valuation activities, possibly using Question-Based Elicitation. Other techniques can be used and combined with the proposed three as well. -The valuation results are captured with the help of the above [notations](#notations). +The valuation results are captured with the help of the above [notations](#notations). Please note that all three techniques focus on values at present; value requirements are only touched upon. For the time being, please refer to Clause 9 of IEEE Std. 7000 for more detailed EVR and VBSR elicitation and prioritization advice. #### Valuation Technique 0: Question-Based Value Elicitation (Goals and Vision First) @@ -386,7 +390,7 @@ a H(igh) priority concern of conference participants, ***Note:*** *This version of ESE does not provide any sample output of business-as-usual software engineering activities such as architecture design and implementation. That said, sample [Architectural Decision Records (ADRs)](https://medium.com/olzzio/how-to-review-architectural-decision-records-adrs-and-how-not-to-2707652db196) are featured in the example of an Ethical Review. See [Future Work](/ESE-FutureWork.md) for related method engineering ideas and plans.* - + The section on [notations](#notations) proposes the templates for this step that are featured in the examples. @@ -422,7 +426,7 @@ Final advice is: * Let the value-assessed stories (elicited in this activity) serve as input to value-based design decision-making. Capture the *rationale* for the decisions and include EVRs and VBSRs in the resulting [decision records](https://medium.com/olzzio/from-architectural-decisions-to-design-decisions-f05f6d57032b). * Validate and verify the *realization* of value-assessed stories in [Ethics Reviews](ESE-EthicalReview.md). - + ### Related Content @@ -437,7 +441,7 @@ ESE does not contain any design practices at present; the [Design Practice Repos ### More Information -Ethical values and ways to handle them are explained here: +Ethical values are covered in the following publication and online resources (selection): * The article ["Human Values as the Basis for Sustainable Information System Design"](https://research.wu.ac.at/ws/portalfiles/portal/19837176/Human+Values+as+the+Basis+for+Stustainable+Information+Systems+Design+%28Pre-print%29.pdf) has many more examples of values. * IEEE Std. 7000 and literature on "Material Value Ethics" may help with prioritization: @@ -445,6 +449,8 @@ Ethical values and ways to handle them are explained here: * And ["Value-Sensitive Design"](https://mitpress.mit.edu/9780262039536/value-sensitive-design/) compiles 13 human values in Table 2.1 on page 28; Table 3.1 on pages 61 to 64 summarizes 17 value-sensitive design methods. * A 2019 conference presentation by Jennifer Riggins called ["How (and Why) to Factor Tech Ethics into Your Sprint"](https://www.infoq.com/presentations/tech-ethics-sprint/) and her article ["Tech Ethics New Year’s Resolution: Don’t Build Software You Will Regret"](https://thenewstack.io/tech-ethics-new-years-resolution-dont-build-software-you-will-regret/) ask valuation questions, effectively forestalling/antedating our three valuation techniques, for instance "What is the worst possible use case for this code?" Other questions concern connectivity and data transfer as well as data storage and lifetime. * Annex B of IEEE Std. 7000 covers value concepts, starting from philosophical foundations in B1; B2 presents an example and B.4 covers value ranking. Annex C is about ethical theories applied to ethical value elicitation, for instance, utilitarian ethics, virtue ethics, and duty ethics. +* The [Proctive Consider, Analyze, Review, Evaluate (CARE)](https://ethics.acm.org/wp-content/uploads/2021/03/Proactive-CARE-for-Computing-Professionals.pdf) framework and [Software Development Impact Statements (SoDIS)](https://doi.org/10.17705/1CAIS.01540) as well as the [Consequence Scanning](https://doteveryone.org.uk/project/consequence-scanning/) practice also propose an active, "push" approach to knowledge sharing (just like ESE). Some of the questions raised in these publications and practices overlap with the ones in ESE; others are complementary. + More information about the INVEST principles/criteria is available in many places: @@ -467,7 +473,7 @@ The [Agile Glossary](https://www.agilealliance.org/agile101/agile-glossary/) is ```yaml title: "ESE activity: Story Valuation" author: Olaf Zimmermann (ZIO) -date: "11, 20, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 20, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` diff --git a/practices/ESE-ValueRetrospective.md b/practices/ESE-ValueRetrospective.md index cd4fa40..b18ef13 100644 --- a/practices/ESE-ValueRetrospective.md +++ b/practices/ESE-ValueRetrospective.md @@ -22,7 +22,7 @@ Retrospectives are an established Agile practice to periodically reflect on what The approach and results of the value-based approach in ESE must be reviewed periodically (w.r.t efficiency and effectiveness). -> *As a team of agile practitioners, we want to reflect periodically whether we are doing the rights things and whether we are doing things right. There always is room and opprtunity for improvement. Being concerned about ethics values, we want to improve our value-based engineering practices continuously.* +> *As a team of agile practitioners, we want to reflect periodically whether we are doing the rights things and whether we are doing things right. There always is room and opportunity for improvement. Being concerned about ethics values, we want to improve our value-based engineering practices continuously.* Advantages and benefits of a Value Retrospective include: @@ -98,8 +98,9 @@ Note that this retrospective primarily focuses on the development team and how i * Get all team members actively involved in the retrospective. Reflect from multiple perspectives, including but not limited to end users, product owner/manager, development team, operations staff. * Create an open, trusted atmosphere; retrospectives are not the right place for blame games.[^1] * Reserve enough time for the ethics- and value-related part; run it as a separate meeting if other topics (tools, practices, etc.) take too much time and attention. -* Record the results in a team-internal space. Control access to it strictly; do not forget to remove accessr rights when a team member leaves. -* Run Value Retrospectives more often than other retrospectives when new to ESE, IEEE Std. 7000. +* Record the results in a team-internal space. Control access to it strictly; do not forget to remove access rights when a team member leaves. +* Run Value Retrospectives more often than other retrospectives when new to ESE, IEEE Std. 7000. +* Add questions about impact of software if you find the ones in ESE to be incomplete. For instance, the Proactive CARE (Consider, Analyze, Review, and Evaluate) process sketched on the [ACM ethics website](https://ethics.acm.org/wp-content/uploads/2021/03/Proactive-CARE-for-Computing-Professionals.pdf) and the [Consequence Scanning](https://doteveryone.org.uk/project/consequence-scanning/) practice ask several more. [^1]: Is there any right place and time for them? @@ -141,8 +142,8 @@ The Design Practice Repository/Reference (DPR) on [GitHub](https://github.com/so ```yaml title: "ESE activity: Ethics-Enabled Retrospective" author: Olaf Zimmermann (ZIO) -date: "11, 13, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 13, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` diff --git a/practices/README.md b/practices/README.md index bbed368..eeceae3 100644 --- a/practices/README.md +++ b/practices/README.md @@ -17,7 +17,7 @@ ESE includes a total of nine agile activities and artifacts, listed in alphabeti * (unchanged) User Story, see entry in [Agile Alliance Glossary](https://www.agilealliance.org/glossary/user-stories/) * (extended activity) [Value Retrospective](ESE-ValueRetrospective.md) - + The following UML class diagram shows how these method elements relate to each other: @@ -48,4 +48,4 @@ EVR stands for [Ethical Value Requirement](/ESE-Glossary.md#evr), VBSR for [Valu ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). \ No newline at end of file +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). \ No newline at end of file diff --git a/resources/ESE-ETHICOMP2024FullPaperAuthorsCopyV101.pdf b/resources/ESE-ETHICOMP2024FullPaperAuthorsCopyV101.pdf new file mode 100644 index 0000000..97104f3 Binary files /dev/null and b/resources/ESE-ETHICOMP2024FullPaperAuthorsCopyV101.pdf differ diff --git a/roles/ESE-ProductManager.md b/roles/ESE-ProductManager.md index b55e0e1..368e4dc 100644 --- a/roles/ESE-ProductManager.md +++ b/roles/ESE-ProductManager.md @@ -44,7 +44,7 @@ See Section 6.2.5 on page 34 in IEEE Std. 7000. ```yaml title: "ESE: Role Product Manager" author: Olaf Zimmermann (ZIO) -date: "11, 11, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 11, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` \ No newline at end of file diff --git a/roles/ESE-UserAdvocate.md b/roles/ESE-UserAdvocate.md index 1dae3d7..d97488d 100644 --- a/roles/ESE-UserAdvocate.md +++ b/roles/ESE-UserAdvocate.md @@ -46,7 +46,7 @@ See Section 6.2.5 on pages 33 to 34 in IEEE Std. 7000. ```yaml title: "ESE: Role User Advocate" author: Olaf Zimmermann (ZIO) -date: "11, 11, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 11, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` \ No newline at end of file diff --git a/roles/ESE-ValueLead.md b/roles/ESE-ValueLead.md index 3a49d5d..1bb6a78 100644 --- a/roles/ESE-ValueLead.md +++ b/roles/ESE-ValueLead.md @@ -46,7 +46,7 @@ See Section 6.2.3 on page 33 in IEEE Std. 7000. ```yaml title: "ESE: Role Value Lead" author: Olaf Zimmermann (ZIO) -date: "11, 11, 2023 (Source: Project ESE)" -copyright: The author, 2023 (unless noted otherwise). All rights reserved. +date: "11, 11, 2023 (Version 1.0)" +copyright: The author, 2023-2024 (unless noted otherwise). All rights reserved. license: Creative Commons Attribution 4.0 International License ``` \ No newline at end of file diff --git a/roles/README.md b/roles/README.md index 3c09ffb..caa3592 100644 --- a/roles/README.md +++ b/roles/README.md @@ -44,4 +44,4 @@ W.r.t. processes, ConOps (IEEE Srd. 7000) and Product Vision (Scrum) have a stro ## Acknowledgment -This work was funded by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). +Version 1.0 of ESE was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/). diff --git a/templates/ESE-ValueRegisterAndValueRequirements.md b/templates/ESE-ValueRegisterAndValueRequirements.md index e927435..985f563 100644 --- a/templates/ESE-ValueRegisterAndValueRequirements.md +++ b/templates/ESE-ValueRegisterAndValueRequirements.md @@ -4,7 +4,7 @@ author: NN date: "mm, dd, yyyy (Source: Project NN)" --- -*Important note:* This is an early draft and preview, not ready for review and usage yet. It merely turns the section names from the standard into Markdown headings. +*Important note:* This template merely turns the section names from the standard into Markdown headings. Artifact Template: *Value Register* -----------------------------------