Development principles
Reminders of things we want to keep in mind and processes we want to stick to. (shared living document). Decisions we've made and things we still need to discuss.
Goal: We are using our own system for our community management after a year.
A good place to start is the Pubic Spaces manifesto: https://publicspaces.net/manifesto/
Build quickly
We have enough finance to take the idea to product market fit within two years. We have to move quickly.
Feature over architecture: Make sure we don't slow ourselves down with building for long term architecture, before we have a working product that provides the functionality our users need to do the work.
Agile development: We work alongside the needs of our community of journalists.
Modular: Build out modules step by step
Integrate: Integrate existing solutions (e.g. crowd newsroom, discourse for discussions) as much as possible. We build ourselves when we can build something cheaper for our users and/or better.
Open by default
Open Source
Software can be self-hosted as Open Source software
Aim to attract open source contributors early
Open roadmap
Open lessons
UX and design
Develop mobile-first for users, desktop first for admins (mobile-friendly adding/editing of user information)
Let's use a language people understand throughout the product. No user-facing expert language (e.g. marketing speak or developer speak)
Drag-and-drop / WYSIWYG
Modern tech practices
Twelve-Factor App principles: https://12factor.net/
API first - everything should be built on the API
Deploy fast - we use continuous deployment
Continuous integration - merge changes into the main branch early and often
Continuous deployment - deploy reliably, quickly and often
Documentation - document as we go along
Formatted with Prettier, no more code styling debates
Modular - microservices, separation of concerns, etc.
Data protection
Privacy by default/ Privacy first. Always build for the user privacy first and make clear decisions when something should be shared with the newsroom, with others in the community or even publicly. Give people the choice.
High standards of security and data protection
GDPR compliance (often weakness of US solutions)
Hosted in Europe (weakness of US solutions)
Anonymising user data (personalised data with customer, access for beabee only for authentication and analytics)
Client has full ownership of data
Testing
Automated testing on deploy
Tests should not be to complex
Test only one execution path per unit test
Frontend: end-to-end tests
Backend: integration and unit tests
Pull requests
Focus on one goal per merge request (no unnecessary changes)
Keep code style changes separate
Well designed
Readable by others
Doing what the author intended
No more complex than needed
Not degrading system code health
Commented with the why vs. what
Appropriately tested
Sufficiently documented
Last updated
Was this helpful?