Close and Go BackBack to Viget

Campfire Culture

Patrick Reagan
Patrick Reagan, Development Director, June 27, 2007 3

By now you’ve heard the news that we’re growing our team and branching out into the Durham, NC area.  This is potentially a big challenge for us as we strive to maintain constant communication within our project teams and between staff across our two locations.  While we’re still deciding on whether to use iChat or Skype for our daily Scrum meetings, we’ve settled on Campfire to stay in contact while we’re cranking out functionality for our latest app.

Our initial solution was to use an internal IRC server to keep the development team up-to-date and provide a forum for questions.  We had mixed success with this approach and knew that it wouldn’t work if we tried to roll it out to the rest of the company for a few reasons:


  • Geek factor – Sure, we cut our teeth on IRC back in our college dorms, but that’s no reason to force our non-technical employees to /navigate the sea of commands.  If we wanted company-wide adoption, we needed a more user-friendly solution.

  • Some assembly required – Since we hosted the IRC server internally, it was firewalled off from anyone outside the office.  This required everyone in the Durham office to connect to the VPN to chat with the rest of us in DC - not fun!

  • History – There are ways to log history in IRC and provide a searchable interface, but we’re too busy to bother with setting that up.  We needed something that worked “out of the box” to give joining users insight into what happened throughout the day.

We were skeptical at first, but after a month of constant use Campfire has proven to be a better tool than we initially anticipated:

  • Communication has improved – Instead of just the core development team, we now have everyone involved in discussions throughout the day.  Project Managers can alert us of new issues that crop up in production (that we don’t see in our exception notifications) and Developers can get clarification on a proposed feature.

  • Cool bots – When they’re not hanging out in the VL “Bot Tub,” our Capistrano and Subversion bots send messages to the team whenever a deployment or commit happens.

  • Context included – When people sign in, they can see what has been happening throughout the morning.  This means that a Project Manager can see what features have been implemented and are ready for review on our autobuild site.

I’m increasingly optimistic about our ability to maintain our “offline” culture in this on-line meeting space.  We always strive to keep a good sense of humor even in stressful situations and Campfire has allowed us to maintain the same levity in our daily communication.  Sure, sometimes we have to force some conversations back on track, but we’re able to have fun and get work done at the same time.

Darek Rusin said on 07/02 at 04:41 PM

Patrick, thanks for the article! It was a good read.

I’m experimenting with Campfire in my company too (development of computer games) and so far I’m getting promising results. However, there’s one thing that got me wondering: interruptions.

Currently we have about 5 people chatting at once, so it’s not that high traffic. But still I’d imagine if everyone was to throw every communication into Campfire it would quickly became a source of major interruptions for the whole team, making it difficult to focus on a more demanding tasks (like programming).

For us it seems like Campfire is only good for a small doses of stuff that *everyone* could possibly be interested in *right now*.

Otherwise IM (for one-to-one chat that shouldn’t bother anyone else), forums (for stuff that can be acted upon later) and email (for non-urgent, one-to-one issues) remain valid options.

I guess I’m just curious:

* How much and what kind of communication are you really doing through Campfire?
* How are you handling it in practice (what rooms do you have, are people expected to react immediately, etc)?
* Are you using any other ways of communication? If so, what’s your primary tool?

Patrick Reagan - Director, Application Development said on 07/02 at 10:44 PM

@Darek - that’s a concern that we had from the very beginning as well, but I’m finding that having Campfire rooms is less distracting than constant traffic over IM.  Previously, a Project Manager would report an issue to me and then have to follow-up later to see what the status was (and if a fix had been deployed).  Now, all that communication is transparent. The PM can ask additional questions of the developer handling the fix and see when the change has been committed and deployed - I’m no longer the “middle-man.”

When I was relying more heavily on IM, I felt the constant need to make sure I was responding in an appropriate amount of time.  With the whole team involved in a chat session, there is less pressure on me to respond to every request since there is often another developer who can field the question.  This allows me (and other members of our teams) to “check out” of Campfire to go off and focus on their current tasks.  Because each room has a running history, we can return to the room later and pick up on what happened in the meantime.

How much and what kind of communication are you really doing through Campfire?

At the moment, Campfire is providing real-time conversation that’s focused around one of the larger projects that I’m leading.  The developers are using it to coordinate which tasks they’re working on and provide general alerts on what pieces of the application still need attention.  Though a lot of our chatter during the build phase is development-related, PMs will jump in to provide clarification of a feature or to ask about technical feasibility of a proposed addition.  We’ll also get the design team involved to help us tweak the UI after we’ve done the initial build-out integration.

How are you handling it in practice (what rooms do you have, are people expected to react immediately, etc)?

Much of our traffic occurs in the project-focused rooms, but we have “Lab"-specific rooms as well.  For the development team, we have a room that we just use to talk shop, share links, and poke fun at one another.  As popularity increases (and as we start to make more hires in the NC office), we plan to have more traffic in both these types of rooms. We don’t expect people to react immediately - if we need to get someone’s attention, we’ll rely on IM, phone, and face-to-face conversations as appropriate.

Are you using any other ways of communication? If so, what’s your primary tool?

Besides IM and email, we’re keeping in touch over Skype and other conferencing tools. For day-to-day online conversations Campfire is quickly replacing IM as my primary communication tool.

I didn’t mention this in the original post, but for our Mac users (myself included), we have found Pyro to be a better solution than using the traditional web-based interface.

Darek Rusin said on 07/05 at 04:21 AM

Patrick, thanks a lot for your reply! You touched on some valid points here, especially with scattering the responsibility and PM no longer being the middle-man. That’s definitely a big win.

Ok, we’re going to continue this Campfire adventure and see how it goes :) I just wish there was a better Pyro-like soft on Windows (I’m using Flare now, a similar program, which unfortunately has some problems, at least on my machine).

Thanks again and good luck with your projects!

Trackback: RubyConf Recap » Viget’s Four Labs on 11/08 at 10:50 AM [...] friends, colleagues and clients; and reuniting with our fellow developers, whom we mostly see over Campfire since the opening of our Durham office. For all of these reasons, RubyConf 2007 was a great [...]-----

Name:

Email:

URL:

Not a robot? Prove it by entering the word below.


Remember my personal information

Notify me of follow-up comments?

A Development Community for Viget Labs and Beyond

Every team member here at Viget Labs strives to be an innovator. We members of the development team are no different - that's why we're constantly engaging in community discussions and exploring the unknown that is the next generation of open-source web applications.

Viget Is Hiring!

Viget has job openings for Ruby Developers, Interns, and Front-End Developers. Learn More »

Recent Comments

I think that polymorphic_url(@commentable, :anchor => “comment_#{@comment.id}") should work. You can also refactor the “comment_#{@comment.id}” to a separated method, like dom_id, which returns the dom identifier of the comment.