Category Archives: Development

TOOLS OF THE TRADE

One of the common things we deal with when bringing new developers or clients on board is getting them ramped up with our toolset and workflow. We’ve developed some in-house documentation but it seems the casual “what” and “why” is always best explained in person. To that end, I thought it would be a good idea to put together a brief introduction to some of the tools we use here. We’re a small shop and we always have a bunch of projects going at the same time. A lot of them are new developments, but the majority are maintenance and retained development for long-term clients. We juggle tasks and priority daily, and need to make sure that things don’t fall through the cracks. Because the same project gets passed between different developers, people need to get up to speed as quickly as possible and we all need to evaluate the changes from each other to make sure we’re making the right decisions for our customers for a given fix or enhancement. We have a lot of smart people on the team, but the whole group will always make a better overall decision. Although we’re constantly looking at new tools and how they might help us, I think we have a pretty good structure at the moment. Below are some of the things we use on a daily basis.

Atlassian Confluence – This powers our in-house wiki. Not only does it contain all of our company documents (handbook, team calendar, weekly focus sheet, etc.), we use it to store a brief summary of every client and their project(s). This is the first place a developer goes for a quick crash course on a specific project.

Jetbrains Youtrack – This is our task tracking solution. Over the past years we’ve written a few solutions ourselves, used shared spreadsheets in Google Docs and countless standalone application to try to keep track of the day-to-day. About a year ago we started working with Youtrack after having used some of their other tools quite a bit. Haven’t looked back since. Best thing since sliced bread.

Beanstalk – We’ve tried a few other solutions in the past, including self-hosted subversion and git, GitHub, Assembla and a few others. Given that we use Youtrack for all of our project management, we didn’t need an all-in-one. Beanstalk does a great job of focusing on source control only and their deployment system works great.

JetBrains phpStorm – Another fantastic tool from the group over at JetBrains. We’ve used Panic’s Coda, which is pretty and has improved a little with the most recent versions, but phpStorm is a better fit for us.

Tower – There are a lot of git clients out there. This one is our favorite.

Navicat – We deal with a bunch of different databases and need a tool to deal with all of them. Navicat works great for MySQL, PostgreSQL, Oracle and MSSQL. It has support for SQLite as well, but I prefer Base for that. Of course we use many other tools depending on the given project, but those listed above are the primary pieces of the puzzle for web based projects. In the future we’ll expand on these in more detail and talk about workflow within a given environment.