Development is done on dev, and pushed to master when dev is stable.
I program my pet projects; differently to how I manage normal software development; thought I should explain so contributors will understand what is going on.
Basically I use a "hack and clean" approach:
During the "Hack" - The code starts out poorly documented and does what is needed to work.
- Its OK to be ugly (permission to hack).
- Its OK to delete and rebuild if things are heading in the wrong direction.
- Interface driven development is used to protect the code base from over-coupling to the the hack.
During the "clean"
- A code review is conducted, and things abrought up to a certain standard.
- Code is documented.
- This is done circa 1-2 months after the file has not been touched in a while.
- I do this because the bits I get stuck on re-reading my own code; are the parts most important to have well documented.
- It also allows me to look at my own software decisions with fresh eyes.
A 'clean' file MUST remain clean and of a high standard from that point on.
NB: Licence text / code header is normally not inserted until the clean is done. This is a good way to tell if a file is clean.