Software

These Software design documents describe our overall software design, specifically on how the software will generally look like in the end and our general approach to how we build and develop it.

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, or things we believe in, direct and shape how we build our software and are:

  • Developing software with inclusivity and accessibility in mind produces better, more usable software.

  • Software that is open source and uses open source tools are 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.

  • Software that is built with a consideration of sustainability in the broad sense lasts longer and is easier to build and maintain.

  • Building software with these values makes it easier to build as a team and with collaborators.