I’m going to explain what kind of virtual (or “on the cloud”) development “ecosystem” I’ve been using for some time to manage lots of development/game projects at once. This includes personal as well client projects, where the client may interact with the development.
Note: everything expressed in this post is personal opinion covering what I’m using lately that is working for me and my clients. This post may look a bit commercial, but I’m not affiliated with any of the cited companies (I’m putting “pure” links, without any kind of affiliate link).
1) Register a domain
Since everything is on the cloud, the first thing you need is a domain. The cheapest I know and also my favorite is GoDaddy. A .com domain can go for as low as US$ 7.90~8.20.
2) Host with DreamHost
Why DreamHost? Because you can create unlimited SVN repositories (public and private) under your domain, with unlimited storage and bandwidth (that means you can extend your projects without worrying about paying more for additional users, space or even for new repositories). Also tons of additional features for very cheap (due to a promotion I paid US$ 6.80 for the first year! I’m love with it). See the complete list of features, as well sing up here.
3) Create two subdomains
In your DreamHost panel, create a subdomain for your repositories, I use svn.mydomain.com and create one for your project management system (I’ll show you that next). For that I chose pier.mydomain.com, but you can choose anything you want, like projects.yourdomain.com.
4) Create a MySQL database
Again in your DreamHost panel create a MySQL database and write down the connection details.
5) Download and install Project Pier
Project Pier is an open source online management system very similar to the ultra popular Basecamp from 37signals. It doesn’t have those hard features of project management (like Gantt Charts, etc), it simply deals with projects as Tasks, Messages, Files, Milestones, Tickets and optional Wiki per project.
Download it, upload and install it (it has a browser based installer, you don’t have to manually deal with uploading and changing database settings).
6) Add your project and invite clients/users
Using Project Pier is very easy and straightforward:
- Create a project.
- Create a “Client Company”.
- Add users to the client company.
- Set these users to the created project and give them appropriate permissions (permissions are related per project, which means that you may have hundreds of projects and the client will only see his related projects).
- Add milestones, tasks, files, etc, don’t forget to check notifications checkboxes when applied.
Now you can center everything related to your project in Project Pier and access everywhere: brainstorming, files, tasks, bug tracking, etc. Explain and invite your clients to not directly send project related emails, but to post Messages in Project Pier (everyone receives them by email after that).
Note that you can add “Private Items”: private milestones, tasks, etc that the involved clients won’t see. Those can be internal tasks/files/etc that you don’t want the client to see nor participate.
7) Create a SVN repository for your project
Again, that’s a matter of adding the repository via your DreamHost panel. Add your user as well users for others involved in the work.
8) Download a SVN client
I really recommending downloading a GUI SVN client, instead of dealing with command line sub-versioning. That will save you a bunch of time. There are dozens of SVN clients for Mac, you can check a brief comparison of some of them here. I actually like and use Versions, because it is very simple, it has practically every aspect of SVN and it is the cheapest one among all the others. I’ve never had any kind of problem with it.
9) Checkout, work, commit, work, commit, work, commit!
After you have created your repository and installed a SVN client, checkout your fresh new repository and now you can start adding/updating/working. Don’t forget to commit often!
10) Git, Mercurial and additional tips
Of course this is not the only way nor best path. There are different systems, options and hosts. As I wrote on the beginning of the post, I just wanted to share what I use. For additional options and tips, I recommend these #iDevBlogADay posts on the subject:
- App Size Matters » Tip o’the Day™ 2: Commit Often
- Parade of Rain » iPhone Dev Tip #3: Sanity From Automated Builds
- Games from Within | Indie Project Management For One: Tools
- Distributed Version Control – Getting Started – Acorn Heroes
- Setting up an Automated Build in an iOS environment – Acorn Heroes
- Games from Within | Reconsidering Version Control