Our take on devops, part 2: Baboon
After our Devops 101 post, we’ll start introducing you to our gang of automation monkeys. First off, Baboon, who automates the creation of 'entities' in all November Five tools to help with housekeeping, security and reporting.
At November Five, we’ve always paid close attention to our way of working. We offer different services, around which we’ve built our company, although as a whole we are always product-centric. We’re confident that our seamless working methodologies and our end-to-end approach are what sets us apart.
As a general rule, we use clearly defined processes to help us keeping everything nice and clean.
For example, we have defined that for each client, we need a set of folders and files (copied from a template file) in Google Drive, a folder structure in Dropbox, a category in Jira/Confluence, a client in Toggl and Teamleader, a couple of channels in Slack and a separate Fabric organization. The same goes for products, product versions, statements of work (our offers), product platforms (e.g. iOS or React), invoices etc.
And for maximum security, we generally follow the principle of least privilege, only granting our team members access to the clients, products, repositories, and organizations that they need.
If you’d want to enforce something like this in a large enterprise, you would need to use tightly integrated Microsoft/Oracle/SAP/etc solutions. We have the luxury of a more manageable workforce, but that also means we use several cloud-based tools (hip and cool) with a lot of APIs.
A quick list of the main tools we use:
- Google Drive - for client/product specific documents, spreadsheets, meeting minutes etc.
- Dropbox - for design files and keynote presentations
- Bitbucket - for git repositories
- Jira - for issue tracking
- Confluence - for product documentation
- Toggl - for time tracking
- Fabric - for beta distribution and crash reporting
- Slack - for team communication
- Teamleader - for CRM and invoicing
- AWS - for mobile testing (through AWS device farm) and hosting web applications
- Lastpass - for password management
- LDAP - for Wi-Fi access and directory purposes
They sometimes offer SSO solutions (integration with for example our G Suite organization), but rarely allow you to define complex authorization rules or integrate with each other in a way we can work with.
And that, of course, is where Baboon comes in.
The first in our series of “office monkeys” is an automation tool that helps us unite and streamline this collection of tools, leaving the humans free to focus on what really matters.
Firstly, Baboon handles the creation and removal of accounts for all team members in these different services. We treat Google’s G Suite as our master account: when a new employee starts, we create a new Google account for him/her.
Baboon takes it from there.
The Baboon component for user synchronization is a background process that periodically checks for changes in our Google organization, and replicates them in the different services through the usage of the APIs of each of those services. Ultimately, user IDs for all those different services are stored in our local LDAP service, which holds the identity of each team member together with their user names in e.g. Slack, Bitbucket, Jira etc.
Thanks to this, our onboarding process has simply become following a set of invite mails, starting with Lastpass for password management, followed by all other services. Whenever a password for a certain service can be set through the API of a service, that password is automatically pushed to the team member’s Lastpass account, granting her access whenever she’s logged in.
When we need to say goodbye to a team member, Baboon can perform the inverse process. When a G Suite account is being suspended or removed, all linked accounts are disabled automatically – including the physical access to our offices with the company badge.
Client and Product Management
Now that we have our team members set up, it’s time to get some work done.
The second component of Baboon is a slick web interface, where client and product management magic happens.
Our Directors can use it to create new clients when we start talking about prospective projects, and assign a Client Service Manager to that client. The CSM can then create products, statements of work, versions, platforms and add team members to them, together with one or more Project managers.
For every ‘create’ action, a whole set of API calls are executed to facilitate that process: creating Projects in Toggl to register all time spent on each product’s development, creating a dedicated Slack channel and automatically inviting all team members to it, creating a Google Spreadsheet for keeping demo and retrospective notes, … And all of these actions and calls follow strict naming conventions, allowing anyone to find what they’re looking for.
Again, we’re also keeping track of all those entities in different services, this time in a dedicated MySQL database. The web interface allows you to keep track of our November Five lingo (‘clients’, ‘products’, …), with direct links to every repository, document, folder or bug tracker managed by Baboon.
Reporting and bookkeeping
To say it in managerial mumbo-jumbo: ‘If you can’t measure it, you can’t manage it’.
The third component of Baboon is responsible for gathering data on clients, products and projects from all of our services, and then combining and visualising that data.
This mainly includes data concerning the time spent on a specific product version (taking into account things like estimates vs. actuals, rate cards, …), the time spent on business development, training, support and bug-fixing, and finally, invoicing.
We follow a proactive approach here, so any significant event (such as a task exceeding its estimated time) is automatically signaled to the product owner(s), team members or directors through Slack.
Invoicing is also automated. Every month, Baboon makes sure that every invoice is generated automatically, based on the contents of the SOWs and the delivered performances.
Onwards and upwards
We’ve got quite a few new tricks in mind for Baboon to learn in 2017! We’re planning to invest more in analytics (knowledge is power, after all!), investigating BI tools such as Quicksight to use on top of our Baboon data. And as always, we’re planning to add even more services and superpowers to this monkey’s scope.
Want to see Baboon work its magic? Check out our jobs page!