I've been working in a company with remote teams for 3 years now.<p>We try to use Scrum and/or Kanban, and it seems to be reasonably successful. We do struggle constantly with shipping all the features we want introduced in a timely fashion, but I think that is true of all software development.<p>Here are some pain points, and some partial solutions.<p>Trying to run meetings over Skype is a pain. It works well enough that you think you are okay, but there are issues. Many times we would start a call, and then need to check who actually made it, and often, hang up and call again so that two more people can join. There was a lot of incidental complexity just getting a meeting together. The chat also gets really cluttered and isn't great for searching.<p>The best change we made, in my opinion, was switching to Sococo for our meetings. You have a virtual office building, go into a room, summon other people to the room, turn on your microphone (or web cam, or share your screen), and chat. It surprises me how much less friction there is in just talking to someone on the spur of the moment. You just knock on their door, and talk. If you need someone else, you grab them. It is a piece of cake to look and see who is (and is not) in your meeting. We've also got Slack integration working, which helps with recording typed messages and searching them in the future.<p>(One more nuisance is that are CEOs are often travelling and fail over to Skype when they have poor internet connections. It is a pain.)<p>Other pain points is that you simply aren't in a room together. Things that would be easy together -- like writing on a whiteboard, or pointing out things on a co-workers screen -- are hard. For just making notes on a whiteboard, and roughing our class diagrams, I like sketchboard.me. For tracking a scrum/kanban board, Youtrack is okay. (I really don't like Jira, and none of the tools I've tried are as simple and flexible as a real whiteboard with cards and swimlanes). Still haven't solved the pairing up issue; we can share screens readily, but typing/pointing/controlling another screen isn't built-in to Sococo, is a little awkward with Zoom.us (because it sends key codes but doesn't compensate for different keyboard layouts), and was okay with, um, TeamViewer.<p>Being spread around the world is a pain for synchronicity. If you can, get your devs to work core hours together (if they are working in teams, anyways, and not as scattered soloists around the globe). You'll also find that even when you are in the same timezone, different cultures take lunch at different times. (I expect noon in Canada; my coworkers in Mexico want lunch at 2pm). We also try to work on the same days, but you'll find the stat holidays are different; for example, Easter was a week earlier here than in Macedonia, and the mind-numbing start/end times for daylight saving time also differ.<p>All in all, though, we work together, and ship software, so I think it works :-)