Jeff and Tim at The Pragmatic Bookshelf wrote a great blog post on “The Only Agile Tools You’ll Ever Need” which reminded us that it’s been a while since we talked about tools here.
At Highgroove, we love our tools. We blogged about ‘Trusting Your Tools’ almost a year ago, and then about some of the other tools we use later that month. We’re still using Pivotal Tracker, Github, Skype, etc, but there’s a lot that has changed.
As much as we’d like them to be, all tools are not necessarily awesome, and Jeff and Tim’s criteria for picking which tools to use is spot on. We’ve tried out a lot of things, experimenting with new tools and ‘failing fast’ (something else we love to do so we don’t waste time) when something doesn’t work right. It’s pretty easy to get used to using something that is inefficient, or to spend all your time tinkering with new tools and gadgets and not getting any actual work done, so it’s important to consciously bias towards simplifying your toolset. Here’s some examples of things that we tried and scrapped.
- CruiseControl.rb - We deployed a server in the cloud for continuously running all the tests on all of our projects. The e-mails when test suites failed was nice, but more often than not it was because we needed to install a Gem on the server or change some configuration. The time we spent on this tool was more than just running tests before commits, which most of us were still doing anyway. Some developers still use tddium which is a SaaS that does something similar, but it’s no longer a requirement for all of our projects and we’re no longer maintaining a server for testing.
- Yammer - We tried out Yammer for a while to try and have a more persistent online space for the office than our Skype channel. It would be really nice if it could completely replace Skype, but we still need Skype to talk with clients so using both meant two places to check for things and post things, and a lot of wasted time context switching. We’re back to just using Skype. We also tried having two Skype rooms, one for ‘chat’ and one for ‘important’ things but it was almost as frustrating as using two tools. The solution: If something is important, stick it in an E-Mail or Pivotal Tracker.
- Wall chart of active projects and assignments - This never got updated and was pretty hard for people outside of the office to see, and when we didn’t have an office it worked especially poorly. Megan (our office manager) already was creating an online spreadsheet for capacity planning, so with a few more details in that spreadsheet and sharing it with the office we all know what’s going on.
- Basecamp for various aspects of project management was nice, but we’ve gotten so good at using Pivotal Tracker that having to update both places slows projects down. We need to stick with Pivotal Tracker for the finer details of the development process, so we’ve been using it for sharing files, setting deadlines, and the higher level aspects of project management. Basecamp is out the door and we’re hoping to cancel our subscription there soon.
- VirtualBox and VMware were nice for letting us use IE for browser testing, but most of what we do is backend development and it’s the designers responsibility to make sure their design works everywhere. Keeping virtual environments up to date takes up time and system resources (and license costs), and instead of having these tools on every developers laptop we just use Browsershots and other similar tools as needed. Also, browsers and the libraries we use keep getting better so the differences between user experiences on different platforms continues to shrink.
- Google Docs for documentation - We already have git and Github for sharing and working with code, so having a complete separate sharing system for documentation was getting pretty frustrating as documentation was getting out of date. We’ve moved all code documentation into the correlated code repository, and moved it into the actual code files wherever possible. This saves a lot of time for both finding documentation and keeping it up to date.
- Freckle for time tracking - While Freckle is by far the best time tracking tool, We’re ROWE (officially!) and tracking your time sucks. We still use this for a very small percentage of our projects that require time tracking, but hope to be completely done with this soon.
- Turntable.fm was awesome for playing music from everyones playlists in the office, but recently it’s required a page-refresh on our mac mini after every song ends before it will play the next one. Hopefully they get around to fixing this, but the time we spent connecting to our Mac Mini to refresh the browser was getting pretty crazy so we’re all back to headphones.
The tools that we still use are great, but they make it pretty hard to see how we’re doing as a whole company. We currently have over 100 git repositories and 10s of active Pivotal Tracker projects, and have grown from 4 full time employees to 12 in just over a year, and this month are (so far) working on 13 different projects for clients. To address this, we’ve built a few internal tools and scrapped most of them because they weren’t quite right because they placed requirements on developers that slowed down projects. The perfect tool would let us all see how we’re performing as an individual and how the company is performing as a whole, all while being awesome and useful without requiring a lot of effort to use. Hopefully we’ll come up with something that we’ll be able to share! Two separate tools are currently in the works, check back in a few months for updates.
Lastly, theres some things that are totally up to individual developers. The editor, screenshot app, clipboard management app, git UI, etc, that people use don’t really matter to Highgroove as long as they let each developer get their job done. Some people on complex projects with multiple team members find it worth their time to learn some of the more advanced features of git and set up all kinds of shell aliases that help them out. (For example:
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)< %an>%Creset' --abbrev-commit --date=relative is pretty sweet), while others stick to ‘convention over configuration’ when the basics work for them and they don’t repeat themselves too often.
What’s your favorite tool that you’re no longer using?