This a rough collection of approaches, working practices and mindsets for developers participating in a SPRUCE Mashup. Comments/additions/corrections/links welcome!
- Be agile
- Develop/prototype in short bursts, then demo and get feedback from your practitioner(s)
- If you don’t achieve results within a few hours, you are probably doing it wrong. Try a different approach
- Get crude results quick, perfect and polish later
- Scripting languages can be useful for delivering quick results
- Re-use, don't re-invent the wheel
- Keep it small, keep it simple
- Functional preservation tools should be atomic
- Modularise in the face of growing requirements
- Think about how someone else will integrate your tool in a workflow
- Make it easy to use, build on, re-purpose and ultimately, maintain
- Share your source
- Automate your build
- Package for easy install
- Share outputs, exchange knowledge, learn from each other
Also see the OPF Software Development Guidelines.
This manifesto was developed from wiki posts by Maurice de Rooij, along with discussions over the years with other clever people such as Andrew Jackson, Carl Wilson and David Tarrant. Thanks go to them!
More on smart/agile development
Also see this external page about Extreme Programming.
Ten simple rules for the open development of scientific software