📜 ⬆️ ⬇️

Collaborative Development with Subversion

Managing hired workers and distributed projects is easy and fun. Stop what nonsense is this? Good version control comes to the rescue - exactly what you need to properly manage your projects.

Next is a translation of the article Collaborate and Connect with Subversion . This is my first translation, so I would be very happy with your comments.


')
Imagine that you have your own web studio. Perhaps it’s just you and a couple more people. Because of such a small composition, you often resort to the help of hired workers (subcontractors). Thanks to this, you can take on more projects, make more money and accurately scale your business. However, managing even a small number of hired workers requires a lot of effort and effort. At a certain stage, you will encounter the fact that the subcontractor does not fulfill its obligations on time, does not comply with your quality standards, or, even worse, disappears without completing the work. You can be assisted by thorough data checks, firm agreements and active management. And technology, in turn, can improve synergies so that your projects are always under control. Meet - Subversion.

Subversion creates an enabling environment for collaboration.



Subversion (SVN) is a version control system that allows you to store and monitor changes to your code, share and share project files. It is very simple. You write the code and send (commit) it to your SVN repository (the place where the project files are stored). Your team members can download these files, see what you have done, make your changes, and then send these changes again to the SVN repository. Each such “commit” is considered a revision. SVN tracks these revisions and assigns numbers to them, so you can always “roll back” to a previous version of your code.

Visibility is good



Thanks to Subversion, all participants are involved in the project: as soon as someone makes a change, the rest can see them right away (see the Required Tools below). If you have reliable subcontractors, you will not worry again. However, when working with untested people, such visibility allows you to avoid all disagreements, problems in the project and errors in the code before it comes time to take work.

Let svn be mandatory



If subcontractors really want to work with your studio, make them follow your workflow and use the same tools. Differences can seriously hamper the activities of small companies, especially customer service companies.

Some wage workers may want to send you work results. zip-file in the mail or put them on a remote server for you to download and watch. This, of course, is a good way, but the code you own is outside your organization. In fact, you lose control of the project. What is the solution? Make SVN part of your workflow. In addition to the usual advantages, such as versioning and simultaneous work of many people on a project, SVN makes your subcontractors more responsible, and also keeps the code and files for your clients under control and in your ownership.

Since you are an employer, you have every right to stipulate the rules of delivery, the means used, as well as when and how the work should be done. Your subcontractors will appreciate the serious workflow and will more clearly realize that they are working with you.

Are there any exceptions to this rule?



The process should not be applied just because it is a process. Depending on the level of responsibility of the hired worker, you may decide not to include it in your SVN. And when to do this - you will see for yourself.

Set expectations



Everyone uses Subversion differently. Someone likes to send project changes several times a day. Others prefer to work on projects and submit changes at the end of the working day. Much depends on the type of project you are working on, as well as on the number of people working on the same code. I found that the closer the completion of the project, the more changes occurring in a short period of time. At this stage, I post changes to SVN more often.

Determine how often you expect updates from your employees. I recommend at least once a day while they are working on a project.

Advantages and disadvantages



We do not just get more control in our hands? Of course. Now you can assess the quality and quantity of work performed by subcontractors over a specific time. You are able to quickly assess the productivity of your wage workers, and this is also useful for them - you do not need to pester them with requests to finish the work while you are working together.

Subcontractors may worry that in this manner they will not be paid for the work. After all, indeed, if you have the latest version of their source codes, which prevents you from appropriating your work without paying for it. Subversion, by itself, does not resolve this situation, although fraud may occur in any other workflow organization. Make sure that your contract clearly describes the rules of delivery and payment for work. The Internet is full of resources where you can learn how to properly draw up a contract to fully protect yourself. If you are still working with subcontractors without a contract, it is time for you to think about whether you are doing everything correctly.

Required Tools



To start using SVN and understand its basics, read the article “ I Wonder What This Button Does ” by Mike West. Another good and free resource is O'Reilly " Version Control with Subversion ". Do not forget to read a good overview on working with SVN in the chapter Fundamental Concepts .

SVN itself can be difficult when trying to manage users with different access rights. For example, you probably want your subcontractor to have access only to the project he is working on, and not to the entire repository. To simplify work with the repository and user management, I recommend Warehouse , the web interface to Subversion from Active Reload . Warehouse allows you to easily manage the repository, track changes, and, most importantly, add users and set permissions for them. Managing users in SVN can be quite tedious, but thanks to this interface, you can easily add and remove them. It also provides an RSS feed with repository changes that will allow you and your team to keep track of the files being worked on at the moment, as well as all changes that are happening in the system. There are also solutions that use their hosting, for example, Beanstalk . They will host your SVN repository and provide a user interface to it.

Although I strongly urge people to first learn how to use SVN from the command line, you can also try a new application on Mac OS X - Versions (currently in beta). It provides a graphical interface to most SVN commands.

Embedding in current work



Adding Subversion to your current workflow should not be done with a rattle. With certain skills, you can connect SVN with your project management tools. There are so-called "repository events", in the event of which, SVN allows you to run any of your scripts. For example, a script that will write a new message to the Campfire chat application from 37Signals every time you send changes to the SVN repository. Thus, you notify your employees about the changes you have made. With Google, you will find many other scripts written for various tools, including the integration of Basecamp project management tools with SVN.

There are several different types of SVN embedding, but, nevertheless, the most common one that runs the script after successfully submitting changes to the repository. Thanks to these scripts, the possibilities for sharing SVN and your familiar workbench are virtually unlimited.

Stop reading, it's time to act.



Subversion is not only an excellent tool for versioning and controlling the code of your projects, it also allows you to control and improve the interaction between you, your employees, and hired workers. It's time to improve the life of yourself, your company and your subcontractors a bit - start using SVN in your work right now.

The original article is Collaborate and Connect with Subversion .
Apart Magazine and the author [s].

Source: https://habr.com/ru/post/31651/


All Articles