Archive for June, 2017


Caromble! Friday #398: Flowing from SVN to Git

Like every other software development team we use version control software to manage changes in our source code and other computer files. For years we have been using Subversion (SVN) as our version control system. In recent times we transitioned to working remotely; as was mentioned in our previous post. Because of this change in the way we work, we figured it’s better to switch to Git as our version control system.

Workflow

In real life we could sit next to each other for code reviews and working in parallel was easy because communication was easy. Using SVN worked fine. Today, we have to orchestrate this source control workflow a bit more and our experience with Git is that it’s better up for this task. The flow with “branching” (changes that happen in parallel along multiple branches) and “merging” (integrate these changes) feels more natural. See this example of a Git branching and merging workflow (a.k.a. Gitflow) where each node represents a set of changes:

A succesful Git branching model by Vincent Driessen

Source: A successful Git branching model by Vincent Driessen.

GitLab

We chose GitLab as our Git hosting service because it’s free and it offers a nice web interface, especially for remote code reviews (through the “merge request” feature) to easily manage our changes and keep up the quality of our work.

Migration

To migrate from SVN to Git we followed this nice tutorial from Atlassian: Migrate to Git from SVN. It took two days to migrate our Caromble! project, but we’re glad we did this! We’re back in a better flow.

Happy gaming!

Getting the job done is hard. In just three weeks time we’ll celebrate the 400th Caromble! Friday, and we still haven’t finished the game yet. Admittedly, we are not 100% clear when the first Caromble! Friday was exaclty, but 400 probably isn’t that far of the mark.

As some of you are aware, a lot of things have changed in the personal lifes of several of our team members recently (suddenly there are 3 fathers in our team 🙂 ), and those changes are not without their impact on the way we work.

We have effectively moved from a team that worked together in a single location (ok, the office was actually a kitchen table, but that still counts), from a team that has to work completely remote. And on unpredictable hours as well. That is not necessarily an easy transition.

A lot of things that we got for ‘free’ by being in the same room every Friday are now quite hard. For instance getting time for all the chit-chat that is so essential for productive co-operation is suddenly a thing you have to plan. And the same goes for discussing the little questions you might have when developing.

But things are not fun if they are not challenging, so we are happy to embrace all of this unplanned extra fun ;-).

We are making a lot of changes to the way we work, so that we may stay productive and at the same time still have fun while working on the game.

We try and use productivity tools such as Trello and Gitlab where we can. These tools can greatly structure the discussions you have about various topics. It turns out that Slack is also quite useful, and whatsapp maybe not so much.

Another thing that we cannot delay any further is creating a marketing plan to guide us through the final stages of development towards the final release.

So indeed, while we have not produced as much visible output as we wanted to at this point, we are still very busy with the game.

To conclude this post, I have two images. Of course an image can be worth a 1000 words, but the first image I’ll share will communicate at least two messages:

Getting the job done, and also defender

The first message is of course that Defender will be a new awesome skill level to be included with our next release. And the second one is less literal and shows that we’ll always eventually get the job done.

Ok, and my second image is perhaps a bit cheesy (cheesecake?), especially since I’m not exactly immune to spelling mistakes myself, but still, I could simply not resist making a bit of fun about Peter’s spelling mistake in his last post, and showing an image about some actual peace of cake…

An actual peace of cake...