Apps, Apps, and More Apps
With the variety of tools and web apps available to modern dev teams, it can be difficult to “cut through the static” and figure out which ones are essential, and which ones you can go without. We put together this list of apps that are so vital to our process that we couldn’t move forward efficiently without them.
1. Pivotal Tracker
Software development, especially as part of a team, is a complex operation. With so many moving parts, constant changes, and multiple milestones to work towards, it can be difficult to manage and organize development progress. That’s why we find Pivotal Tracker so darn useful. Within an agile development team, it's important that each member knows exactly what’s going on. Pivotal tracker allows team members to see what others are doing, what project they’re working on, and how far along they are. This transparency allows for better communication, eliminates redundancy, and speeds up progress.
What sets Pivotal apart from other project management software is its point tracking system. Each task is assigned a point value (we use the Fibonacci scale, of course), and Pivotal lets you run analytics and automatically calculates your average points completed per week. This is an excellent way to gauge how much of the project is getting done and how much longer it will take. This process also helps us be more aware of how long tasks actually take to complete vs. how long we expected them to take.
Modern programming and software development happens largely in online repositories where banks of code are hosted. GitHub is arguably the most popular repo hosting site, and we use Github for all of our open-source projects, but for private work we prefer Bitbucket.
The advantages of Bitbucket are numerous, but we like that they have no restrictions on the number of private repositories, only on the number of users. For us, this means that we can host as many private projects as we need to (and boy do we need to). Depending on the project, we often prefer Mercurial over Git for source control management. Bitbucket lets us choose which source control management system is best for the project.
This is where things get interesting. Toggl is an elegantly simple time tracking web app that allows each of our employees to easily track their hours independently. A simple click of a button allows a user to clock in when they’re working, and quickly clock out when they start to wander on social media for too long. Best of all, the tracker conveniently shows up on almost every website we use in our workflows.
But for us, Toggl does much more than just track our work hours. We’ve integrated Toggl and our other favorite web apps Bitbucket and Pivotal Tracker to get high resolution statistics about our workflow. By combining these three tools, we’ve created a handy feedback loop that improves project estimation and gives us a valuable reality check on resources during the most complex pieces of projects. All of this information lets us pinpoint hangups and issues and manage projects down to the nitty gritty details.
Twilio is a global web communications platform that allows for the integration of voice, video, and text messaging in a variety of apps and programs. Twilio has tools and APIs made specifically for developers to integrate these services into whatever they may need them for.
Right now, we’re using Twilio to bring our telecommunications into the 21st century. With just a few hundred lines of code, we’ve recreated a virtual PBX private phone network to handle our phone lines. Who needs wires? Using Twilio and some custom-built software gives us a VOIP and virtual SMS system we can customize and scale. This lets us integrate phone lines into Slack, email, and other web-based tools that we already use.
AWS, or Amazon Web Services, is Amazon’s cloud and hosting service suite that powers hundreds of popular apps and services. Netflix, Reddit, Instagram, and basically half of the public internet runs on AWS.
Our software lives on the cloud, which is why we need reliable, affordable hosting to make sure our software runs like it’s designed to. With such a wide range of services available including elastic computing and content delivery networks, and a pricing plan that scales dynamically and affordably, AWS is a no-brainer for software developers of all sizes.
We primarily use AWS for content delivery and cloud computing, but we also use it for the abstraction of domain services, centralized health reports, and some other high-level AWS hacks. We invested over 300 hours last year researching and developing our CI/CD pipeline atop Amazon’s ECS (Elastic Container Storage). On top of all that, we use the popular new Lambda service to automatically run code without the need for dedicated servers, minimizing hardware costs by abstracting common software requirements like scheduled tasks.
6. Google Apps for Business
Everyone is familiar with Gmail and probably Google Drive, but the rest of the Google Apps for Business provide an incredibly useful suite of cloud-hosted apps that rival any office software out there. We use Drive for all of our shared documents and assets, and Gmail for email communication (when we need to go outside of Slack).
Google Docs lets us easily and remotely collaborate and edit documents (like this one), and Sheets lets us manage client lists and sales leads with ease. Calendar lets us sync our event schedules with each other and with our community (Domi Station, our coworking space, has a shared Google calendar). For the price, Google Apps provides an amazing amount of value, and since we manage so much on our end, worrying about email and file sharing is something we’re happy to leave to the pros at Google.
7. Sublime Text
Text editors are the number one tool in any programmer or developer's belt. And seeing as coders spend the majority of their time using text editors, it’s important to employ one that’s convenient and easy to use. Our weapon of choice is Sublime Text, for several reasons.
Not only is Sublime simple and relatively pretty, but it also comes preloaded with a number of tools that make programming in any language more efficient. It also lets us control programming standards in Python and JS so that our code is consistent across projects and team members. Cross-platform, loaded with functionality, and highly customizable, Sublime Text is the bee’s knees.
(Side note: this section was written to the chagrin of one of our engineers, Katie Russ, who is adamant about her support for GitHub's Atom)
Header image via Russ Hendricks, Tools Are Home.