In the last couple of years I have worked as an employee and as a freelancer doing software development with Ruby on Rails and Cocoa for the iPhone. The projects have been new projects started from scratch with small budgets. Clients and managers have asked for tool recommendations so I thought I’d put together a list to refer to.

Source code management

GitHub: private repository code hosting (plans from $9/month), private wikis, a basic issue tracker.

Features and bug reports

Pivotal Tracker: agile user story management, updates to the user interface in real-time (Free).

Project tasks and due dates

For project information that doesn’t fit into a bug report or feature request, a project management tool may be better. This is also useful to collaborate with non-programmer team members.

  • Basecamp: simple project management. First project is free. A private google group also works and gives you 100MB upload space. Both can be used to read and send emails to project members.
  • PBWorks is a more advanced wiki I’ve used in the past. We found GitHub wikis to be “good enough” but use other tools for issue tracking.

Sharing files

Dropbox: really easy file sharing, works on all platforms (even mobile). Generous free account and affordable paid accounts. Public directory can even be used to serve web pages you don’t want to publicly release. Use this to share mockups.

Staying in touch with email and chat

  • Google Apps for Business: create email addresses using your own domain name. Google has guides for configuring DNS records with most domain registrars (GoDaddy, namecheap, dotster etc.).
  • Campfire: group chat tool.
  • Skype has been the most reliable video conferencing tool (video and screen sharing is 2 people only, on Mac).
  • iChat works well for screen sharing if both parties have Macs. Skype conference call (audio only) can have up to 100 participants!

Sharing screenshots and videos

  • Skitch: share screenshots, images are private by default, very fast and saves headaches related to attaching files.
  • Little Snapper is another option, which also has an iPhone application.
  • Screenr: like skitch for video. Will tweet video unless Publish box box is unchecked. For short videos, it is a fast workflow. Videos are public by default, but can be downloaded as .mov files then deleted from the website, thus the website can be used simply to capture videos. Videos can be shared on Dropbox or by email (free).

Tracking time and invoicing clients

  • Harvest: time tracking and invoicing. Can generate a PDF invoice to send to clients. I have used this as a subcontractor to send an invoice of hours completed to the contractor that hired me. 30 day free trial.
  • Tick very simple time tracking. Used this on a project.
  • Freckle simple time tracking. I have not used this personally.

Hosting the application

  • Heroku: Rails project hosting. (free based on load).
  • webbynode: low cost virtual private server. The 256MB server was reduced to $9/month! I have not used Webbynode as of this writing.
  • Slicehost: very reliable and offers low cost full slice backups. I have used slicehost on a number of projects and the website has great documentation.
  • Linode: another VPS option. I have not tried Linode. It offers a server with more memory for the same price as Slicehost.

Mockups, Wireframing, shared whiteboard

Personally I prefer to draw by hand, scan the drawing at various states, then share the scanned document. Two online mockup tool options I’ve tried briefly:

  • Balsamiq (uses Flash)
  • Mockingbird (no Flash, requires newer browsers)
  • Twiddla is a shared whiteboard space for making drawings with others at the same time. Twiddle supports loading a web page and drawing on top of the web page with others.

Virtual machine hosting

Professional graphics tool

  • Photoshop. Unfortunately Photoshop is very expensive. Buying a used version or buying as a student will discount the price.
  • Gimp and Inkscape are free alternatives to Photoshop and Illustrator.

What software and hardware tools do you recommend?