Posted on ::

We spend far too little effort in these:

  • availability

    We should make tools and services freely and easily available.

  • accessibility

    We should make tools maximally usable by those who are impaired.

  • standardisation

    Having different teams follow standards (which includes protocols and APIs) improves learnability of new tools, eases switching to alternatives, and improves interoperability.

  • usability

    Tools that are a not pleasant to use cause needless frustration. We need to build tools that follow usability standards. Solid interoperability would also allow syncing such preferences across devices, which would mean reduced time spent tweaking things.

  • information access

    We should have ways of reliably categorizing and ranking useful information, and search engines that presents such information in a way that maximizes comprehension.

  • migration tooling

    We need to be more willing to keep improving foundational software, to a point we more readily release breaking changes. This is the sort of software that other software relies upon, things like operating systems and platform libraries. This means replacing designs that are not ideal for learning and usability, instead of being stuck due to large ecosystems depending upon such designs. This implies solid (and easy) migration tooling,

  • documentation

    There should be various types of documentation to fit different levels and styles of learning. Breaking changes for foundational software should also be clearly documented, alongside migration tooling. The documentation should be to a level where one would not need to use external means (such as search engines) to learn any aspect of the software.