Balancing scale and specificity

Developers who aim for generalizability and scalability in their tools often sacrifice place-based specificity and alignment. On the other hand, development projects that prioritize local needs first and treat generalizability as a secondary goal may sacrifice broad applicability and financial sustainability.

Solutions

1.

Embrace modularity and layered design

Use modular architectures, layered ontologies, and flexible interfaces to allow both broad applicability and local adaptation.

2.

Center real-world use cases

Develop and document localized case studies to illustrate practical implementations and inform further tool design based on real community needs.

3.

Design with and for communities

Design with communities while prioritizing interoperability and integrating familiar features so that tools can interact easily with other digital infrastructure. Interoperability, open source development, and thorough documentation can also facilitate iteration in tool design, allowing future developers to adapt tools for evolving community needs or broader purposes.

4.

Support participation

Build community capacity to interact with the open source development process so that they can suggest feasible features.

5.

Cultivate ecosystems of care

For widely used tools, cultivate a cross-sector community of practice so that users have an accessible venue for providing input. For tools specific to a geography or project, support networks of “open maintainers” to foster cross-community collaboration; maintainers can share responsibilities across projects while users can offer input around clusters of related tools.

Know of another resource or solution?

Resources

Design Justice by Sasha Costanza-Chock

"Design Justice" by Sasha Costanza-Chock offers strategies for ensuring tools are responsive to community-defined needs and identities, without universalizing or flattening them.

Design Justice by Sasha Costanza-Chock
Related solution
Design with and for communities

GitHub's "New to open source? Here's everything you need to get started"

GitHub's "New to open source? Here's everything you need to get started" is a guide to the world of open source. It includes how to find projects, understand contribution guidelines and the tools for participating in open source.

GitHub's "New to open source? Here's everything you need to get started"
Related solution
Support participation

The Public Lab Code Community

The Public Lab Code Community provided a model for reciprocity-based systems. "First-timer-only issues" allowed newcomers to learn coding while also contributing to the maintenance of the tool. Mentors then migrated upward in the community. Developers can look to this approach to build community capacity to interact with and make direct improvements to software.

The Public Lab Code Community
Related solutions
Support participation
Cultivate ecosystems of care