We're a team of web developers, and as the number of projects we're working on has grown and continues to, things are starting to get messy.

What we currently do is work on a locally shared folder and sync files to production FTP hosts on save.

It's far from being perfect, but we have yet to find a better solution.

These are the main things we want to achieve when changing our workflow:

  • Fast reading and writing to files
  • Fast testing on the browser after saving
  • GIT

Frankly, we're not very experienced with more advanced workflow

Most of the team doesn't know how to work with Git at all and would rather stay with their current workflow, therefore we're looking for a way to achieve the points above with as few changes as possible

  • You currently have no source control whatsoever? May 6, 2015 at 10:11
  • @RemcoGerlich Nope, it's a new company and most of the developers here are fresh graduates with no experience at all, I'm no Git expert myself but if it wasn't me they'd stay like that without knowing it even exists.
    – RagZ
    May 6, 2015 at 10:14
  • "local" "backup"?
    – Ewan
    May 6, 2015 at 10:20
  • @Ewan I meant to have a local copy of the files, in addition to the files that are in production. but it seems obvious so I edited it out.
    – RagZ
    May 6, 2015 at 10:28
  • 1
    @RagZ: source control was drilled into me during my first programming course in the first year of uni, if they're graduates of anything programming-related and don't use source control you should send a complaint to their schools. May 6, 2015 at 10:30

2 Answers 2

  • You need to have some kind of version control system. You MUST have it. If git looks too complex try mercurial, even thought they are very similar. Set up a git repository server. My team uses gitlab and it works fine.
  • You need to put some rules for the control versioning. Meaning, ideally not all cannot commit to the main branch for example.
  • You should start to do some testing. Maybe unit testing is too difficult to implement right away, but you should do some testing before making a commit for a branch. I mean, it should at least compile and run right? Well, sometimes people make commits that doesn't even compile. You HAVE to do some testing if your team is growing. You don't say what are you guys doing or what language(s) you are using so I cannot give you any specific help, but maybe you should take a look at Jenkins.
  • You should use some kind of bug reporting tool. Take a look at these: http://mashable.com/2014/02/16/bug-tracking-apps I've used FogBugz and I like it. I heard you can now use it with trello.
  • You should use some kind of tool to communicate with your team and share ideas, like trello or something like that.
  • Try to have an homogeneous environment. Meaning, if different persons use different OS and compilers, things can get messy.
  • We're mainly using PHP and Javascript. our projects are quite big though, does it mean that every time a developer needs to work on a project he'll need to create a complete clone of it? and what about testing? we use databases and such and need the data in them, meaning that the dev can't be testing it anywhere else than the actual server it's hosted on
    – RagZ
    May 6, 2015 at 10:35
  • You need to set up reasonable testing and QA environments. Expect this to take weeks. May 6, 2015 at 10:43
  • You host your code in a git server for example. You make the clone the first time you start working on the project. This should be fast even if the code is large. After, you only have to commit your changes, push them to the main server, and pull the changes others make. Basically. You should also make a database to test what you do, so you don't break the actual database when writing new code.
    – cauchi
    May 6, 2015 at 10:44

The hardest part about having a lot of projects and a lot of people often isn't about how to maintain the code, it's how to communicate, implement the process, and work together with good tools.

To achieve that goal I'd recommend you

  • use git for source control
  • use jira, trello or privotal tracker for issue tracking
  • use agile processes and look into using kanban to focus on the work.
  • use slack for communication (it has recently swept thru the industry).
  • use remote repositories such as github or stash to store code.
  • use a full-time scrummaster for process
  • arrange team(s) that have developers, a scrum master, a Product owner and QA for process

Not the answer you're looking for? Browse other questions tagged or ask your own question.