We really like Asana. It's powerful and incredibly flexible. You can use it however you'd like. However, it doesn't work well for us and our engineering team because it's too far from the code.
Asana makes things easy because it doesn't force you into it's own ways. While it is very flexible and allows you to organize things however you like, it is too far away from our code to keep the conversation simple and organized.
We write a lot of code and have a few different projects (apps and services) that we build every day. Tasks are created in Asana, then someone would grab a task and start working on it. A task could be as simple as "Let's change the text on the checkout flow." Once they've completed the task on a separate branch, they'd create a pull request. (Using github's pull request feature helps us keep things organized.)
When it was time to review the changes, we would create a pull request and include the link to the Asana task in the commit message. A special bot would read our commit messages looking for these links, and make a comment on the asana task and send out emails to everyone on that task. This is the time that someone would review it (for the sake of this narrative, I'll be the reviewer).
I'd click the link in the github pull request, which takes me to the task in asana's website. Then I'd read the task to know what it's all about in Asana, then go back to github to review the code and test it.
This looks like a great start
I'd say to myself.
Can we tweak the text here to read "Sidestep Pickup" ? I think that'll really drive the point home.
But where do I put this? In asana? In an email? Slack? Github? I could type it in Asana, but then it's far from the code, or I could type it in github, but then it's far from the task.This is where all the confusion began. And for each and every pull request or task, the confusion increased.
You see, asana works great for tasks and project management, but when the tasks are so closely related to our code, it makes more sense for the discussion around the code to be as close to it as possible. We were managing conversations in two different places. It wasn't the easiest things to follow.
It is to be very important to keep things tightly integrated and free of distraction. So we're switching to github issues for simplicity around our code. It's the closest way to keep the conversation right next to our code. Theres no need to jump back and forth between the code, github, and asana. We can do it all in one place. We'll still use Asana for other tasks (not code related), but for anything that's tied to code: keeping the conversation as close to the code as possible makes the most sense and is the simplest thing to do. Issues and pull requests are automatically attached to a repository and we can easily reference different pieces of code right in the messages.
Just a side note: Asana isn't a bad tool. We'd have the same issue that we did when using Asana with any other todo platform or manager. It's about keeping things simple and together.
What works best for you?