Think about this: You personal a small internet design and growth store. Possibly it’s simply you and a few different individuals. Due to your measurement, you rely closely on outdoors subcontractors. Subcontractors help you tackle extra tasks, earn more money, and scale what you are promoting fastidiously. Managing even a number of contracted staff is difficult. Sooner or later, you’ll hit a tough patch the place subcontractors don’t ship on time, don’t meet your high quality requirements, or—at worst—disappear and by no means full the job. Correct vetting, strong references, and hands-on administration can assist. Know-how can promote teamwork and hold tasks in verify. Enter Subversion.
Article Continues Under
Subversion connects and promotes collaboration#section2
Subversion (SVN) is a model management system that lets you observe and retailer code modifications, collaborate, and share undertaking recordsdata. It’s very simple. You write some code and “commit” it to your Subversion repository (the storage place for your whole undertaking recordsdata). Individuals in your crew can seize these recordsdata, view your work, make modifications, after which commit these modifications to the SVN repository. Every commit is taken into account a “revision.” SVN tracks revisions and assigns them a quantity, so you’ll be able to all the time roll again to a earlier model of your work.
Visibility is an efficient factor#section3
Subversion additionally retains everybody in your crew concerned within the undertaking: commits and undertaking modifications develop into seen as they’re made (see The Instruments You Want, beneath). You probably have strong subcontractors this simply gives peace of thoughts, however you probably have somebody new it lets you catch any misunderstandings, undertaking points, and coding errors earlier than it’s time for the subcontractor to ship the work.
If a subcontractor needs to do enterprise along with your store, make your workflow and toolset necessary. Differing workflows can burden a small firm—particularly shopper companies firms.
Some subcontractors might need to e-mail .zip recordsdata of their work or might put up it to a distant server so that you can obtain and examine. It is a good association however it places your undertaking belongings and code out of your fingers and into these of somebody outdoors your group. Successfully, you lose management of the undertaking. What’s the answer? Undertake SVN as your workflow. Moreover the conventional advantages of versioning and permitting a number of individuals to work on the identical code on the similar time, SVN retains your subcontractors accountable and the undertaking code and recordsdata for your shoppers in your management and possession.
Because the subcontractor’s employer, you’ve gotten each proper to stipulate deliverables, the instruments used, and the way and when the work will get executed. Your subcontractors will recognize a strong workflow and know that you’ve got your act collectively.
Are there exceptions to this rule?#section5
A course of shouldn’t be enforced simply because it’s the method. Relying on the subcontractor’s degree of accountability, you may determine you don’t want to incorporate them in your Subversion workflow. You’ll understand it whenever you see it.
Set expectations#section6
Everybody makes use of Subversion in a different way. Some individuals wish to commit their undertaking modifications dozens of occasions per day. Others desire to work by way of their tasks and solely commit their modifications on the finish of the day. A lot will depend on the kind of undertaking you’re engaged on and whether or not or not you’re working with others on the identical code. I’ve discovered that the nearer the undertaking involves completion, the extra modifications that happen over a brief time frame. At that stage, I commit my modifications to Subversion incessantly.
Set expectations on how typically you count on to see updates out of your subcontractors. I like to recommend a minimal of as soon as per day whereas they work on the undertaking.
The nice and the unhealthy#section7
Actually there have to be extra to this than simply creating extra administrative work for your self, proper? In fact. You achieve the flexibility to measure the standard and amount of labor your subcontractors full inside a given period of time. This immediate visibility on productiveness advantages you and your subcontractors: you don’t should nag them to finish work whereas they’re built-in into your workflow.
Subcontractors could also be involved that this association might result in having their work used with out compensation. Should you all the time have their newest code, what stops you from taking it and never paying them? Subversion itself doesn’t create this case, although—dishonesty can occur in any workflow association. Ensure that your contract clearly defines the deliverables and fee phrases. There are many sources on-line on create a contract and construction it so that you’re protected. Should you’re not at present utilizing a contract for work you subcontract, stand up, go sit within the nook, and take into consideration what you’re doing.
Check with Mike West’s article I Marvel What This Button Does to get began and be taught the fundamentals of the model management system. As well as, O’Reilly’s Model Management with Subversion is a superb (and free) useful resource. Be sure you learn the chapter titled Basic Ideas for a great overview of the SVN workflow.
By itself, SVN could be daunting when trying to handle a number of customers with totally different permissions. For instance, you most likely desire a subcontractor to have entry to solely a single undertaking (the one she’s engaged on) and to not your complete repository. To facilitate easy SVN repository and consumer administration, I like to recommend Warehouse, an online interface to Subversion, by Lively Reload. Warehouse lets you simply handle repositories, see modifications and—most significantly—add customers and set entry permissions. Person administration in Subversion could be tedious—this abstraction layer makes it easy so as to add or take away customers. It additionally gives RSS feeds of repository modifications, so that you and your crew can see which undertaking recordsdata are being labored on and any modifications that occurred. There are additionally hosted options, comparable to Beanstalk, that can host your SVN repository for you and embody an online GUI for managing it.
Whereas I strongly encourage individuals to first learn to interface with SVN utilizing the command line, it’s also possible to check out the brand new Mac OS X software Variations (at present in beta). It gives a GUI to many of the SVN instructions.
Hooking into your present workflow#section9
Including Subversion in to your present workflow doesn’t should be a jarring occasion. With the correct abilities, you’ll be able to hook SVN into your undertaking administration instruments. SVN gives “hooks,” that are “repository occasions” the place SVN will fireplace off any customized scripts you write. One instance of this is able to be a script that will put up a brand new message to 37Signals’ chat software Campfire each time you commit a change to your SVN repository—alerting your co-workers to modifications you made. A Google search will reveal many different scripts written for various instruments, together with methods to combine the undertaking administration software Basecamp with SVN.
There are a number of various kinds of hooks however essentially the most generally used is the “post-commit” hook, which triggers scripts after a profitable commit. Utilizing SVN “hooks,” the flexibility to work SVN into your present workflow and toolset is almost limitless.
Why are you continue to studying this?#section10
Subversion is not only an effective way to model and management the code and belongings in your tasks but in addition an efficient methodology of controlling and refining the interplay between you, your co-workers, and your subcontractors. Do your self, your organization and your subcontractors a favor; get your SVN workflow up and working at the moment.