Jeremy Turowetz is Unito’s Marketing Tech Lead. In this post, he covers how he coordinates development work with external contractors between GitHub and Asana.
At Unito, like many organizations, our website is a key part of our product experience. It’s not just another WordPress site that you set and forget. We’re constantly adding functionality, running experiments, and improving performance, all to smooth out our customers’ experience. That amounts to a lot of software development time.
With no shortage of website work on my plate, I have to carefully determine which tasks require my expertise and which ones can be outsourced to freelance web devs. I’d rather put my time into improving website performance and reliability, while outsourcing front-end work — such as creating new web pages or implementing design changes.
Below I’ll show you how I oversee a pool of contractors working out of GitHub while closely collaborating with the rest of the marketing team in Asana.
The tool stack
Unito allows me to dispatch and track work with contractors in Github without leaving the marketing roadmap, campaign plan, or backlog projects in Asana. This means the whole marketing team not only has visibility on development progress, but they can also collaborate directly with contractors for design, SEO, and copy reviews, often without my involvement.
Asana
- Used by the marketing department to manage projects and campaigns.
- Hosts the website roadmap, with the upcoming development work well defined.
- Keeps a backlog of all web development tasks.
- Everything is private to internal staff by default.
GitHub
- Hosts the code repositories for the website and web properties managed by the marketing department.
- Tracks individual work requests and updates with issues for web developers, both internal and external.
- Pull requests group a set of changes, for one or more issues, ready to be reviewed by the marketing team (code, SEO, design, copy).
- Access is tightly controlled so contractors only access the code they need.
Bottom line: Unito allows me to crank out the work of a whole team on-demand, and with minimal management overhead or friction.
Before Unito
Ironically, it took a while to set up Unito to integrate Asana with GitHub. When I could deliver all development work myself, I just worked with the rest of the marketing team in Asana. But as tasks started ramping up and external contractors got involved, the need for a modern and collaborative software development process became painfully clear. That wasn’t going to happen in Asana.
- I could not invite contractors to the main Asana marketing projects. There were security considerations, but there was also too much information for contractors to sift through.
- There was no simple way to share marketing briefs from Asana with contractors and tie them to the actual changes made. All that information had to be copy-pasted. Even when duplicating information, the context and discussions that lead to those specs were lost. This led to more time spent explaining projects to contractors.
- Any code change made by a contractor needed code review, but also design, SEO and copy review. While I could jump into GitHub to review a pull request, other members of the marketing team wouldn’t due to unfamiliarity with the tool interface.
- Contractors had no visibility into a backlog of opportunistic improvements they could slip in with their work.
The result was what you’d expect: copy-paste and chat hell in Slack, with requests, specs, screenshots, links, comments, and status update requests flying back and forth.
How things changed with Unito
Contractors in GitHub, marketers in Asana
Marketing hasn’t changed its ways: they are organized in Asana with the same projects and roadmaps they are used to. But now those projects have “For Development” sections. Moving any task there will create a matching issue in GitHub and keep them in sync.
Contractors get invited to the relevant GitHub repository only and never have to get into Asana. That being said, I went one step further to leverage Unito’s ability to sync assignees: I created placeholder guest users in Asana for each contractor. By mapping those Asana users to the matching GitHub contractor, I can assign tasks to a contractor in Asana and the equivalent GitHub issue will be automatically assigned to the right person.
Clear, time-boxed work for contractors
Before dispatching any tasks from Asana to GitHub, I ensure they have enough details for the contractor to execute. This includes the specifications, but also time range estimates. That avoids any misunderstandings with contractors — which can be costly.
Should something be missing, the magic of two-way syncing kicks in. The contractor will comment from GitHub and that comment will be sent to Asana. I’ll answer from Asana, and the GitHub issue is automatically updated. No need for a parallel chat or additional meetings.
Marketing-wide reviews and collaboration
Web development contractors can work independently in GitHub from start to finish. Once that work is done, associated GitHub issues sync back to Asana tasks under a “for review” section. From there, it’s easy to involve marketers right in Asana. Screenshots, copy changes, test results, and more can be exchanged seamlessly through comments that sync back and forth between tools. I no longer have to be the single point of contact for all contractors.
Contractor access to a groomed backlog with quick wins
Even the website backlog in Asana has a “For Development” section. This lets me keep a set of opportunistic improvements available for contractors to pick up. That helps contractors get more work done, and I can clean up our backlog to focus on high-priority items.
Ready to try this one yourself?
Follow our dedicated GitHub-Asana guide to see how easy it is to sync these powerful tools with Unito.