Being a remote worker is pretty great. But it's not an entirely better experience than working in an office. Instead, it just comes with its own brand of downsides.

One that frequently comes up is the feeling of loneliness. Even a team with great communication can feel very far away from time to time. So, at PipelineDeals, we tried to come up with some ways to fix this.

More meetings! Yay!

Our first attempt at closing that remoteness gap was to just schedule a meeting and hang out. We wanted it to feel somewhat productive, so we branded it "Lunch and Learn". (So clever) "Lunch" is a somewhat relative term with a team that spans time zones, but the focus was the "Learn" part. Each week, we'd hang out for an hour or so and talk about some sort of educational topic. Since this was just the dev team (for now [foreshadowing]), it was usually some Ruby best practice or conference talk we'd watch together or even a book we'd read. (Well, I didn't read the books. I don't like to read.) Sometimes, someone would have something specific to present: a cool bit of code they wrote or came across, or perhaps an interesting thing they felt like sharing.

This – like most plans – worked beautifully for a little while. But the inherent problems with the format started to creep up. The week's meeting would arrive, and no one would have anything to share. So, we'd say "Well, let's just try again next week". So, then we started assigning a week to a specific person. But that didn't make it any better; we'd still arrive at the meeting time unprepared. Rather than just enjoy each other's company, the format was getting in the way.

Less structure = More fun

OK. Easy solution, right? Let's skip the "Learn" half and leave the agenda for the fates to decide. If we just meet up once a week for a little face time, we'll get the benefit we sought in the first place. And if the discussion turns into a "Learn"-worthy exercise, so be it.

This was pretty promising. There wasn't much of a reason to skip a week, because there was no longer such a thing as "unprepared". Great. Well, new problems arose.

As the dev team grew and more people started to join the weekly meeting, we found it became slightly more awkward. We'd all just sit in a Google Hangout and no one would say anything. It didn't seem to make much sense, but it was nevertheless a deterrent. Attendance started to go back down, and then it stopped altogether. "If we're not all going to attend, what's the point?" Valid question.

What we need is a metaphor

So, what can we try now? Well, we seemed to be right about the whole "agenda is bad" experiment. If we could identify the new problem, we might be able to come up with a clever solution.

We came to the realization that the weekly meeting had become somewhat like a party. If you invite 15 prople over to your house, you don't all sit in a circle and try to make conversation magic happen. No one would feel like bringing anything up, lest it be uninteresting to other people in the Magic Circle™. What happens instead is that people break off into little groups and have their own conversations. And those groups might change as the night goes on, but they keep their general size pretty small.

What we need is software

This felt like something we could manage with some software. (I guess being a software developer has that "every problem looks like a nail" hazard.) So, after this conclusion, I went to work.

Here's the plan:

I called it Mingle.