I'm a serial project starter. I couldn't deny it even if I wanted to. This isn't a good thing, but it means that I've got a good grip on getting started.
Whenever I start a new personal project, I always endeavour to do the same basic things, and this is my list for anyone else who might be interested. I'm not going into detail because they should all be fairly self explanatory anyway. Depending on the planned scale of the project not all of these steps are going to be needed, or worth the effort, so it's a case of picking the ones that make sense.
- New version control repo - normally Github
- Issue tracking - for bugs but also actual development stories
- Set up dependency management - I'm a big Maven fan for Java projects
- Set up dependency version checking to keep up to date
- Unit testing
- Build time integration testing of as much as possible - using as many real dependencies as possible. For example, I use the embedded postgres database for this
- Docker images for all deployable components
- Full stack end to end testing. This is where the docker containers come in useful.
- Continuous integration on every push - including branches and pull requests. I've recently started using Shippable, but there's loads to pick from
- Continuous deployment - heroku is good here, but there's a multitude of choices
Only at this point would I then start actual development work. But at this point I'm secure in knowing that what I'm doing is well maintained and works.