└── README.md
/README.md:
--------------------------------------------------------------------------------
1 | # Resources for Compassionate Technologists
2 | This repository is a collection of resources designed to provide concrete, practical, and actionable examples of coding with empathy. When empathy is taught in a general context, it can come across as mere intuition or psychic ability. The resources here are specific and relevant to the context of creating software.
3 |
4 | People who actively work on a software product will likely get the most out of this repository. This is more than people who write code. Leaders, managers, product owners, UX and Customer Experience folks, testers, Agilists, and people who interact directly with customers are likely to find useful information here, too.
5 |
6 | The maintainer of this project is [Andrea Goulet](https://www.linkedin.com/in/andreamgoulet), who originally created it to accompany her book, _[Empathy-Driven Software Development](https://heartware.dev/book)_.
7 |
8 | You can also join the accompanying [Empathy in Tech](https://empathyintech.com) community to access our Discord server, free events, and more.
9 |
10 | ## Format
11 | This repository will start using the [awesome-list](https://github.com/topics/awesome-list) format. The README file is where the action is. As resources are added, we'll organize them into relevant categories. We're particularly inspired by [the-book-of-secret-knowledge](https://github.com/trimstray/the-book-of-secret-knowledge) by [Michał Ży](https://github.com/trimstray).
12 |
13 | GitHub [automatically generates a Table of Contents](https://github.blog/changelog/2021-04-13-table-of-contents-support-in-markdown-files/), which may make it easier for you to navigate the content.
14 |
15 | For a sleeker reading experience, you can [view the content on GitHub pages](https://andreagoulet.github.io/empathy-driven-development).
16 |
17 | ## Contributing
18 | Contributions welcome! In addition to the list, we're also hoping to use GitHub's discussions feature to help build a robust knowledge base that allows for nuance and conversation. Our hope is that utilizing this feature first will help make it easier for people who work in software but don't use GitHub regularly to contribute their ideas.
19 |
20 | ### Adding Content & Asking Questions
21 | Here's the general workflow for getting an idea out of your head so we can consider adding it to the list.
22 |
23 | 1. **Start with a discussion** to [share your ideas]([https://github.com/andreagoulet/empathy-driven-development/discussions/categories/ideas](https://github.com/andreagoulet/empathy-driven-development/discussions/categories/suggest-a-resource)), [ask questions](https://github.com/andreagoulet/empathy-driven-development/discussions/categories/q-a), and [connect with other community members](https://github.com/andreagoulet/empathy-driven-development/discussions/categories/general).
24 | 2. **Maintainers will create issues** from relevant discussions.
25 | 3. **Address issues with pull requests** for a maintainer to review.
26 |
27 | ### Small Changes
28 | If you find a relatively simple issue, such as a typo or a broken link, you can submit a pull request directly.
29 |
30 | ## Code of Conduct
31 | By contributing, you agree to abide by the terms of the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)
32 |
33 | ## License
34 | 
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
35 |
36 | ## Legend
37 | - 🎓Academic Research
38 | - ⚙️Apps & Tools
39 | - 📝Articles
40 | - 📘Books
41 | - 👟Exercises
42 | - 🎙️Podcasts
43 | - 🎥Videos
44 |
45 | # Operationalizing Empathy
46 | Techniques for generally bringing more empathy to your work
47 | * 🎥 **[Finding Empathy Opportunities While You Code](https://youtu.be/1RqI4hy-dd8)** Andrea Goulet walks through four original frameworks to help you notice where you can use empathy during your day-to-day development practice.
48 |
49 | # Artifacts
50 | View examples by things that get created while you code.
51 | * **Error Handling**
52 | * 📝 **[When Life Gives You Lemons, Write Better Error Messages](https://wix-ux.com/when-life-gives-you-lemons-write-better-error-messages-46c5223e1a2f)** Jeni Nadler shares how Wix uses a list 5 attributes for error messages.
53 | * 📝 **[Compiler Errors for Humans](https://elm-lang.org/news/compiler-errors-for-humans)** Elm creator Evan Czaplicki shares his thought process behind Elm's human-centered error handling.
54 | * 🎓 **[Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research](https://dl.acm.org/doi/10.1145/3344429.3372508)** An ACM working group evaluated over 300 error message research studies over the past 50 years.
55 | * **Alt Text**
56 | * 📝 **[WebAIM Alternative Text](https://webaim.org/techniques/alttext/)** Suggestions from a research group that studies accessibility and provides training.
57 | * 📝 **[Five golden rules for compliant alt text](https://abilitynet.org.uk/news-blogs/five-golden-rules-compliant-alt-text)** Mark Walker shares his suggestions for a checklist to use when writing Alt Text
58 | * ⚙️ **[WAVE® Web Accessibility Tools](https://wave.webaim.org/)** Free tools to help you evaluate how accessibile websites are.
59 | * 🎥 **[Screen reader demo](https://www.youtube.com/watch?v=QP0nbdNU-iE)** Short video showing how a screenreader sounds for different alt text configurations of the same image.
60 | * **Variables, Functions, Methods, Classes, etc.**
61 | * 📝 **[Naming as a Process](https://www.digdeeproots.com/articles/naming-process/)** Arlo Belshee goes through a series of technical steps he uses to develop intention-revealing names.
62 | * 📝 **[What’s in a Name? Anti-Patterns to a Hard Problem](https://www.sitepoint.com/whats-in-a-name-anti-patterns-to-a-hard-problem/)** Katrina Owen reviews how _not_ to name things as a way to explore better options.
63 | * 🎓 **[Naming Practices in Java Projects: An Empirical Study](https://doi.org/10.1145/3493244.3493258)** Researchers examined over 1.4 million identifier names across 40 open-source Java projects to determine which patterns are the most common.
64 | * **Documentation**
65 | * ⚙️ **[Read the Docs](https://about.readthedocs.com/)** Tool for integrating documentation updates into your daily workflow.
66 | * 📘 **_Living Documentation by Cyrille Martraire_** Available on [Amazon](https://a.co/d/aPJeCN2), [O'Reilly](https://www.oreilly.com/library/view/living-documentation-continuous/9780134689418/), and [B&N](https://www.barnesandnoble.com/w/living-documentation-cyrille-martraire/1132519402) "...shows how to dramatically improve your documentation at minimal extra cost by using well-crafted artifacts and judicious automation."
67 | * **Commit Messages**
68 | * 📝 **[Better Communication Through Commit Messages](https://corgibytes.com/blog/2019/03/20/commit-messages/)** - Josh Kelley goes through specific practices for using commit messages to make it easy for other people to understand a project's history.
69 | * **Code Reviews**
70 | * 🎓 **[Code Review is just reviewing code? A qualitative study with practitioners in industry](https://dl.acm.org/doi/pdf/10.1145/3474624.3477063)** - A survey to learn more about effective practices uncovers the importance of cognitive empathy for asynchronous, tool-based code reviews.
71 |
72 | # Behaviors
73 | Specific techniques for acting with empathy
74 |
--------------------------------------------------------------------------------