version-controlpvcsserena

Ideas on setting up a version control system


I've been tasked with setting up a version control for our web developers. The software, which was chosen for me because we already have other non-web developers using it, is Serena PVCS.

I'm having a hard time trying to decide how to set it up so I'm going to describe how development happens in our system, and hopefully it will generate some discussion on how best to do it.

We have 3 servers, Development, UAT/Staging, and Production. The web developers only have access to write and test their code on the Development server. Once they write the code, they must go through a certification process to get the code moved to UAT/Staging, then after the code is tested thoroughly there, it gets moved to Production.

It seems like making the Developers use version control for their code on Development which they are constantly changing and testing would be an annoyance. Normally only one developer works on a module at a time so there isn't much, if any, risk of over-writing other people's work.

My thought was to have them only use version control when they are ready to go to UAT/Staging. This allows them to develop and test without constantly checking in their code.

The certification group could then use the version control to help see what changes had been made to the module and to make sure they were always getting the latest revision from the developer to put up on UAT/Staging (now we rely on the developer zip'ing up their changed files and uploading them via a web request system).

This would take care of the file side of development, but leaves the whole database side out of version control. That's something else that I need to consider...

Any thoughts or ideas would be greatly appreciated. Thanks.


Solution

  • I would not treat source control as annoyance. See Nicks answer for the reasons.

    If I were You, I would not decide this on my own, because it is not a matter of setting up a version control software on some server but a matter of changing and improving development procedures.

    In Your case, it might be worth explaining and discussing release branches with Your developers and with quality assurance. This means that Your developers decide which feature to include into a release and while the staging crew is busy on testing the "staging" branch of the source, Your developers can already work on the next release without interfering with the staging team.

    You can also think about feature branches, which means that there is a new branch for every specific new feature of the web site. Those branches are merged back, if the feature is implemented.

    But again: Make sure, that Your teams agreed to the new development process. Otherwise, You waste Your time by setting up a version control system.

    The process should at least include: