Hi, as remote working is becoming more and more common, I'm curious about tools/services startups are using. (Features management, bug tracker, video conferences, chat, tasks, knowledge center, etc.)
At Heroku, we are quite distributed and typically use the following. Some teams might have a slightly divergent set of tools or workflow, but engineering-wide this is more or less the baseline:
* HipChat (sync and async chat with a variety of ChatOps functionality)
* Video conferencing: Every single meeting has a corresponding Google Hangout. For some meetings we might use Fuze
* DCVS: git. Our repos are hosted on Github and we use all the usual stuff there: Pull Requests, Issues, in-line commenting, etc
* Project/task management: Trello trello trello - If it's not in Trello, it doesn't exist. This works great when you're widely distributed across geography and timezones. With the right workflow, we can at-a-glance know the status of all of our work-in-progress.
* Mailing lists! Every team has its mailing list and nearly every other thing of interest has its own mailing list. Interested in an upcoming project? There's a mailing list for that. Are you remote or based out of the SF bay area? There's a mailing list for that. Are you into Golang, functional programming, or want to chat about Linux? We have those covered too. Are you into biking or photography? Mailing lists!
Can you share any of your Trello workflow? We still have trouble sometimes making everyone happy with our current Trello workflow, I'd be really interested in hearing how you organize your cards!
Sure! The basics are that each team has their own board and chooses a Trello board layout that most closely matches their workflow.
Generally, we'll start with new work on the left side of the board and completed work at the right side of the board; this roughly resembles a kanban board. The standard columns are:
Ready/Next (backlog) -> Doing -> Done
* Ready/Next are the top items from the backlog (usually a separate Trello board just so only active items are on the primary board) that are next in the queue
* Doing is work-in-progress
* Done is completed work (of course :))
Some teams also use additional columns for:
* Blocked - Work that is blocked on something else. In planning meetings and standups these are called out so we can unblock the items as quickly as possible
* Shepherding - Work that is mostly coordinating cross-team efforts. These items generally don't take up alot of active cycles of the "Shepherd" but they are an additional context switch throughout their work
* Interrupts - Usually this is called something else, but the gist is that some teams track operational items separately. For example, if support escalates a support ticket to an engineering team, the trello card referencing the ticket and any troubleshooting info will end up in one of these columns
As for ensuring that the Trello boards are up-to-date, many teams have standups and walk through their Trello board and confirm that it's consistent with reality.
Thanks! I guess we're not too far off, I think it's the last step we've been doing poorly -- team-specific checkins to make sure the board is accurate.
There is a tendency to slap together a suite of freebie tools form various providers and hope it all sticks. However this doesn't scale. Multiple logins. Different UIs. Flaky integration between the tools.. Nightmare. I went through this exercise myself and in the end decided to centralize it all with Atlassian’s OnDemand suite. Cheap and chips for small teams!
We use Jira w/ Agile for tickets & project management, Confluence for knowledge base, HipChat for communication, Bitbucket for code repository et al. Wrote about this and how we use it here: http://www.theroadtosiliconvalley.com/engineering/medlert-ca...
Hope this helps!
- skype for voice calls, usually to quickly discuss something
- Google hangout (highest bandwidth communication, I run my daily standups on google hangout and sporadically for "crisis" moments or "clarification" moments)
Project management:
- trello
Product management:
- prodpad
So the trick is to have a daily scrum meetup on google hangout every morning so that you can explain tasks, check how far everybody got the previous day and update the trello board to reflect the new state. It's the only moment in the day that communication is cheap and high bandwidth.
Knowledge center:
Google docs and github wiki
There are other auxiliaries like github, airbrake, circleCI and papertrail that report into hipchat so you can get a sense of the work being done.
Interesting, why do you use hipchat AND Skype AND Hangouts? Those all seem to overlap quite a bit. Our team meets and chats in Skype, I didn't see the need for hipchat while we're all using Skype.
Totally agree with the morning meetings though, plus we have one longer scheduled weekly.
We too use Hipchat, Skype and Hangouts. All for different things and since some tools offer features which others don't:
- Hipchat: Internal discussions and exchange, syntax highlighting, easy room and pwemission management, updates from other services (github, new relic etc). Furthermore to push notifications to email, mobile device and/or via text.
- Skype: easy 1on1 communication with externals (sometimes replaces the regular phone), internal LAN file transfer
- Google Hangouts: group video conferences (our company uses Google Apps so everyone has it and can access it from anywhere through a browser)
I probably missed some features and usecases, but I think I got the most important ones :)
I work in a very large distributed enterprise so this list is a little off topic, but maybe it'll be useful for someone and maybe it will awaken a few ideas for how incredibly rich an opportunity the enterprise space is. I write code and help the rest of the team write code. We use Windows. These tools have been helpful.
- Microsoft Lync (excellent product! Love it. Seriously it's only serious flaw is it needs Windows.)
- Microsoft Outlook
- Microsoft Sharepoint (meh, it's better than nothing)
- Trello (useful for ad-hoc teams)
- GitBlit ('cause outside the Firewall GitHub/BitBucket isn't allowed)
- HP's Agile Manager (expensive, but a very good Agile/Scrum product)
- Rally (before HP Agile Manager, a very good Scurm product)
- Adobe Captivate (decent for screencasts; save time sharing your ideas inside your firewall)
- TechSmith's Snagit (the best screen capture tool I've used; great for quick-and-dirty 'do this' email or doc)
- IntelliJ IDEA (great IDE, we don't use it collaboratively or anything but it got into our Enterprise because individual DEVs could buy it at a reasonable price for themselves, then other DEVs wanted it and mgmt started signing POs... smart tactic).
Sum it up. Lync is awesome (friends in smaller/not-so-MS-focused shops use Skype w/ success). A good asynchronous communication tool like Captivate/Snagit is useful. Some shared space to manage the work is necessary (Trello, HP Agile Manager, Rally, numerous other good products). I wish I had Campfire or something like it.
You'd be surprised how good many MS tools make remote development/communication. I don't work at MS HQ in Redmond (I'm in Boston) so my whole team does tons of work with people remotely every single day.
For example, Lync on the Windows Phone is really great: you can join a meeting from your calendar/meeting reminder and instantly get video or a PowerPoint slide deck. I am frequently running late to a meeting in the morning so I just dial-in on my phone while I walk to work.
Remote desktop performance is good enough to actually code on, which I never found to be the case with VNC (even TightVNC which was darn good and I was happy to rely on for everything but coding). This is huge for me since all of my development machines can be headless (no kb/mouse), for use remotely or in my office.
Outlook makes starting an online meeting/conference call one click.
I don't think Roundtable devices are for sale anymore, and they don't always work which is really annoying, but they work most of the time and make conference calls with video and lots of people really good.
Screen sharing over Lync isn't super amazing (I don't even think you can go full screen) but it's so convenient I use it frequently.
Presence is baked into everything really well, so if you're actually using MS for everything you will get presence everywhere. It's also pretty good about being more than just presence, so you get pictures/avatars, online status, location, out-of-office messages/status, quick links to start an email/IM/etc.
As for non-MS software, I really like using Sublime Text as a code navigator. It has AMAZING performance when browsing code on a network share. I can load all the MS Office code from a remote development machine, over the network, into Sublime Text and the file-search works within seconds. I have no idea how it indexes all the files so quickly.
I hate using Lync for group conversations, but I feel compelled to point out that it also works on Mac OSX. If you don't need the video/desktop sharing (which crawls after you get more than 8 people involved), you can use Pidgin/Adium to connect to the Lync server as well.
If you're looking for a more stable multi-platform chat product with video support, Ignite's Openfire works great (and also has AD integration).
One of the most surprising things I have seen at Mozilla is the use of Bugzilla, its still mostly black magic and its terrible as a tool for non familiar people to file and find bugs, but as a company wide source of truth for most issues from event relations, it issues to plain bugs and project management its actually ... good.
And its usually pretty hard to say anything nice about Bugzilla.
I started contributing to Mozilla lately and I'm amazed how good Bugzilla has become compared to when I last tried to use it (around 5 years ago). I'm also amazed at how effective Mozilla works with it.
Yeah, we create a hangout and keep on using the same for a few months, then it expires. We have a redirect in place so everybody goes to the same place.
In job #1 (5+ years remote): features and bugs have no formal platform, mostly wiki and sprint planning in spreadsheets. Ocassional phone calls but mostly Skype meetings. Knowledge base: dokuwiki. Code hosted on Bitbucket. Cisco compatible VPN (on Ubuntu: network-manager-vpnc-gnome), Virtualbox, Windows Remote Desktop for accessing servers. Trello (soon) and we used Pivotal Tracker with little success. Server monitoring with New Relic.
In job #2 (remote, almost 4 months in): Features, bugs, release planning, code and some documentation, all in Github. Chat: IRC Cloud or Skype. Calls and screen sharing: Skype or Google Hangouts. No VPN but lots of SSHing into machines on Digital Ocean. Some other documentation in Google docs.
We've been using a free trial of Slack (https://slack.com/) for about a month now and I can't imagine working without it. It's great for war rooms centered around solving a problem. It's great for team members in different timezones, they can catch up on the days events without asking. The mobile apps and thick clients are fantastic.
https://jitsi.org/ is the best chat/cam software I've found. It works perfectly on Linux, and I've not heard of Mac/Win problems either. Skype has never worked well for me on Linux.
Git(hub), Goplanapp, Hangouts, Google docs, Dropbox, Webex. Still haven't found a good alternative for Skype, but for me Skype these days hogs so much CPU that I removed it. Webex is much better anyway IMHO (compression works so well that it works on slow connections as well), but it's not for the same purpose as Skype.
Hangouts - for voice/video (standups)
Hipchat - for chat
Trello - Tasks
Google Docs - Knowledge, collaborative editing
Github - code versioning
Has anyone tried sqwiggle.com, we tried it, but we get the same thing from impromptu google hangouts for free. A truely native sqwiggle app that integrates more into what we are doing makes sense.
Thanks for trying out Sqwiggle! Solid feedback, we're working hard to make the experience more seamless with the OS. Would love to hear if you have any other thoughts or ideas. Let us know at howdy at sqwiggle dot com.
* Salesforce chatter for IM though Hipchat is a better solution. We're a small company so we need to be able to answer questions from marketing, sales, operations throughout the day
We're using Producteev, Skype, Google Docs. Nothing fancy really, nothing very expensive either. Tried (and loved) Basecamp, but it was really just too expensive. All the real "work" is done via SSH on one Ubuntu server or another at various hosts. Ansible makes things way easier as well.
Our remote stack is based on: gitlab/github, skype, trello, google docs (we shifted from dropbox) and that's it. We don't need persistent chat because we're not big and we have a habit to use trello A LOT (we have like ~20 boards) :)
Small team of <5 developers
- Jira
- Confluence
- Gmail
- Hangouts (chat and video)
- Gyazo (just started using) for quickly posting images
- Beanstalk App (source control)
For my remote work, I use Google Docs (tracking things) and Sqwiggle (video conferencing). Everything else is just normal stuff I use in my regular job and regular life.
The client side of the VPN is pretty straightforward. It's a closed source program that basically creates a `tun` device. So I run it in a VM so it can't harm my home machine, and just use iptables to route work traffic to it. No idea what is needed on the infrastructure side.
No idea how much the video costs either, but my employer is a Fortune 500 company.
There's also "OpenConnect", an open source replacement for Cisco's VPN client. On the infrastructure side, you'll have a Cisco router or firewall providing remote access VPN services.
Yeah, the problem with OpenConnect is that every time they bump the 'cstub' binary on the cisco remote end, OpenConnect stops working until you grab the new one somehow.
('cstub' is a wonderful program that is downloaded over HTTP and runs as root. It's supposed to monitor security, or something. I did mention I run this on a VM, right?)
autossh (sometimes you need a tunnel), ssh (to connect), x11vnc (when I have a running X session remotely), xvncserver (when I haven't), and vinagre (to show the desktop remotely).
- P2 WordPress theme from Automatic: http://p2theme.com/
- Sqwiggle: https://www.sqwiggle.com/
- Trello: https://trello.com/
- GitHub: https://github.com/
- Campfire: https://campfirenow.com/
- Zapier: https://zapier.com/
- GTalk
- Dropbox/Box
- RelateIQ: http://relateiq.com/
- Help Scout: https://www.helpscout.net/
- HelloSign: https://www.hellosign.com/
We wrote a lot more about how we use them here: https://zapier.com/blog/how-manage-remote-team/