Software
These design documents describe our overall software design, including how we develop software and how are software products are designed.
So far, these documents include our values towards software design, described below, and our principles, which are informed by our values.
Values
Any human creation is influenced by our values and perspectives of the world around us. We can let these values guide us in our work on Seedcase Project unconsciously and implicitly, without examining, critiquing, and evaluating them, or we can explicitly and consciously select, describe, and explain the values we want to be guided by.
We want to be explicit and conscious about what, how, and importantly, why we are doing what we decide to do. Being explicit will also help focus our work and (hopefully) make us more efficient and effective.
Our values, and the things we believe in, direct and shape how we build software. We believe that these values facilitate work within the team and with external collaborations.
Developing software with inclusivity and accessibility in mind produces better, more usable software.
Software that is open source and uses open source tools is better in the long term and more likely to be used.
Documentation is as important as the software itself.
High-quality code, though partially subjective, is as important and valuable as software that works.
Transparent and clear software is easier to reason about, build, and use.
Simplicity requires more effort but makes better software.
Sustainability in software design is not only good for humans and the environment, but also for the software itself.
Incorporate and consider security early and review often, such as for dependencies, as it is more important than ever.
Reliability in stable software, such as minimizing breaking changes, is about respecting users.