When Atlas first started out, .Net was in its infancy and so were most of the surrounding tools for running a software company. We only had Visual Source Safe for source control, who remembers not being able to edit a file because a co -worker locked it and went on holiday! *shudders”
Technology has come a long way since then. We have tried out many different products and even rolled out some of our own while trying to find the right balance between ease of use, workflow enforcement and flexibility.
We have ended up with a collection of SaaS products which we use on a daily basis to manage product development here at Atlas. This post will go over the tools we use and how we use them to keep productive while keeping everything in order.
BitBucket (Source Control) bitbucket.org
Atlas has changed source control a few times over the years. We started with Visual Source Safe, then later moved to Team Foundation Server 2005, 2008, then 2010 and finally we made the jump over to Git and haven’t looked back. We use a SaaS based git provider called BitBucket which is by Atlassian. We also use GitHub for our open source projects. If you aren’t using Git, we can’t recommend it strongly enough. Even when working on small projects with just 1 developer, we would still recommend using Git.
Harvest (Time Tracking) getharvest.com
When we are working on an agile basis, we track all development time against a project in Harvest. We then bill our customers once a month based on the reports we generate from Harvest. This ensures our customers only pay for time we are actually working on their project which keeps them happy. When we are working on a waterfall basis, we still track our time in Harvest against the project, but we use the time reports to see how much dev time we have spent vs how much work we have left. This keeps the project managers happy.
Because it’s easier to track all time rather than decide if what you are doing should be tracked or not, we even track things like moving desks, internal meetings, teleconferences, phone calls etc. This means we can also run reports on how much time we are spending doing things other than development. Having this information means we can more accurately work out how many actual days are required to deliver a project that has been estimated in dev hours.
Trello (Task Management) trello.com
Trello is basically a digital Kanban board which we use to break down projects into small units of work which the developers work against and track time against. We have considered switching Trello out for Jira by Atlassian because it would give us better integration with BitBucket but we keep going back to Trello because it is so simple and gives us a lot more flexibility. In an ideal world all projects would be handled the same way and the task management system would facilitate a single workflow. Unfortunately customers have different needs and sometimes need us to work slightly differently. There is no one size fits all workflow when working with customers. We do however stick to a single workflow that we know works well for all internal product development.
Forecast (Scheduling) getharvest.com/forecast
We always have multiple projects going on at the same time being developed by different teams but sometimes team members switch between projects based on their skillset and the requirements of each project. It soon gets difficult to manage everyone’s time without a dedicated tool for it. We use Forecast which is by Harvest. We can see easily when we have gaps for members of staff which need filling and we also use it to let potential new customers know the earliest start date for their project.
Confluence (Wiki) atlassian.com/software/confluence
As businesses grow staff and customers come and go, but what needs to stay is a record of everyone you have worked with. This is especially important for software companies as we write systems which last years if not decades which are still under support agreements. When one of these old customers calls up with an issue, new members of staff who have never dealt with them need to have somewhere they can check to find out about the customer. We store all of this kind of information in a wiki which all our employees can access and contribute to. We use Confluence for our wiki mainly because it is an Atlassian product who also own BitBucket. It’s easy enough to use and offers a lot of features.
Office 365 (Email) office.com
We used to host our email internally with Exchange which resulted in a lot of spam because managing Exchange wasn’t something we really had time to do. We then moved to a POP3 based email provider for a while, then moved to Office 365 once it had been running for a while. Office 365 costs a bit more than other email providers, but we feel it is well worth it. Having the power of Exchange but none of the maintenance is exactly what we wanted. The web portal is also really useful and I find myself using it whenever I am out of the office heading to meetings.
Summary
This list will undoubtedly change over time as new products enter the market and development methodologies change. Right now I think we are in great shape and have never been as productive as we are now. We have created some internal tools to pull data from Trello and Harvest for reporting purposes but thankfully all of the systems we pull data from have good APIs. If you are looking at adding some SaaS to your business, as well as checking out the user features, remember to check out the API features too. Pulling together multiple systems requires use of these APIs and if you embed yourself with a system which you later find out has a terrible API or worse yet no API at all, you could be in for a world of pain.
Thanks for reading, hope you found some of these useful.