DEV Community

Graham Cox
Graham Cox

Posted on • Updated on

Steps to starting a new project

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.

Top comments (6)

Collapse
 
adolja46 profile image
adolja

I don't think I know any developers that try to have some side projects that are not serial project starters.
Somethimes I start the same project 2-3 times because I have different technologies or programming languages in mind or I haven't work on something for 3 months and I don't like how I started anymore.

Need to change that ASAP

Collapse
 
raidzen10 profile image
Gerade Geldenhuys

This is so me. I have a folder on my drive that contains multiple "AppName1-3" because of this.

Collapse
 
grahamcox82 profile image
Graham Cox

That sounds so much like me it's almost scary! :)

Collapse
 
chhedamilan profile image
Milan Chheda

Nice. Here is my checklist to start any Laravel Project.

milanchheda.com/how-to-configure-a...

Collapse
 
coolgoose profile image
Alexandru Bucur

Imho it depends on how big your project is going to be and what you want to achieve with it. Some of the steps there are a bit overkill in some cases.

Collapse
 
grahamcox82 profile image
Graham Cox

Absolutely. This was my full list, and I neglected to say that not all are applicable to every project. (The perils of writing posts on my phone!) Certainly it it's s throwaway script I wouldn't do any of this, whereas for a large scale project I'd do all of it...