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.)
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.
- 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 :)
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.
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.
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.
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!
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) :)
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).
* 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
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.
67 comments
[ 3.0 ms ] story [ 152 ms ] threadCommunication:
- chat during the day (hipchat)
- 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.
Totally agree with the morning meetings though, plus we have one longer scheduled weekly.
1. Searchable backlog for all discussions.
2. API for connecting bots (which can be used for C&C).
3. Web-based and native clients.
4. Public and private rooms chat rooms.
HipChat is more like IRC than like IM, which, for distributed teams, is often very useful.
- 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 :)
Campfire for chats, dumbot as a minimalistic task manager in campfire https://github.com/tadast/dumbot#tasks
Github issues for technical/code problems.
Google hangouts for standups
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.
EDIT: I use Asana and Google Docs as well.
I like Hamster for time tracking, https://projecthamster.wordpress.com/
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!
Also basecamp for communication with the managers and between them.
- Google Hangouts (thrice weekly check-in meetings)
- Asana (task management)
- Github (all code is submitted as PR to be reviewed by someone else)
was v impressed by Cisco video in contract recently but they were Fortune 500 so I assumed it was beyond us mortals
No idea how much the video costs either, but my employer is a Fortune 500 company.
('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?)
Duet (http://www.duetapp.com/)
Cloud9 IDE (https://github.com/ajaxorg/cloud9/)
Timer Tab (http://www.timer-tab.com/)
Skype
Bitbucket and Github
VirtualBox (running Ubuntu with all the usual stuff)
Photoshop
Notepad++
Calculator
That's pretty much my entire toolbelt.
Photoshop for remote working? I fail to see how it relates.
"VirtualBox (running Ubuntu with all the usual stuff)"
All my terminal stuff is in there. I also use Secure Shell for Chrome for SSH.
tmux, vim
git, Bitbucket, Github
* JIRA - issue tracking and feature management
* Agile - scrum management
* Confluence - documentation, mockups, feedback
* Bitbucket/Git - code repository
* Facetime or Google Hangout for video chat
* 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
* HipChat (sync and async chat with a variety of ChatOps functionality)
* Documentation: Google Drive for non-technical documentaton that might need feedback and some dynamic spreadsheets backed with dataclips: https://postgres.heroku.com/blog/past/2012/1/31/simple_data_...
* 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!
P.S. - If you're interested in remote work, we're hiring! http://jobs.heroku.com/
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.