With multiple projects and competing demands, issue trackers can be a lifesaver. Our team at Flower Press Creative Studio relies pretty heavily on BitBucket, which is compatible with our GitHub repositories. Designers and developers work together to tackle new functional requirements, design deliverables and bug tracking. There are plenty of competitors on the market with more features. Atlassian, makers of BitBucket, offer a more elaborate product, Jira. For our team, Bitbucket is a perfect solution.
For each new project, we set up a code repository, which comes with an issue tracker. Every team member working on the project has access to it. At project kickoff, design files are posted to the issue tracker as executables. I group issues according to pages, and functionality. For example UI: Build Login Page. Right in the issue, I include links to the prototype, which I build in InVision. I add any documentation about how the page should function, which is likely written up on Google Docs. Moreover, I attach PSDs right to the issue. Our UI Developer marks the issue as “Open” when he kicks off work. When the work is ready for review, he includes links to the development server in the comments, and re-assigns the issue to me, for review. If the feature is functionally complete, I close the issue, and it disappears from the active list.
For any display problems, I open new issues labeled with the same page title such as UI: Login Page: Font Problem. This helps to keep display problems in bite-sized chunks which can be worked on, tested and validated. I assign display issues to the UI Developer, he makes appropriate edits and then re-assigns the issue to me for review with a link to the dev server. Once issues are corrected, the ticket is resolved, and it disappears from the Active list.
Once all UI work is complete, we create task issues for the back-end development team. Tasks are generally divided by functional area and labeled accordingly such as Enable: Login and Registration. For each issue I include a write up focused on technical requirements. I include links to the prototype, which I create in InVision, and reference the original UI Build Issue, now closed, but still accessible in BitBucket. With all of this reference information, the Back-End Developer can understand the core functionality, and access UI build information in case of technical questions. This information access streamlines the build process and reduces back-and-forth between team members.
Build tasks are generally divided into project milestones which map to our development timeline such as Phase One: User Onboarding. Assigning tasks to a milestone, help developers group tasks with timeline demands in mind.
Another consideration when prioritizing tasks is the impact on team workflow. Bitbucket also has a great feature, which allows you to rank issues in order of priority. If developers are handling different parts of the codebase, their work may impede another developer’s progress. In this situation, issues are marked as Blocker giving them the highest level of priority.
One great thing about BitBucket is that commits applied to the repository are attached to open issues. As a non-developer I can watch my team’s work progress based on issues they have open, which issues commits were tagged with and so on. Also, even after issues are resolved, they are preserved in the project history. We can always go back to closed issues to see what changes were applied as needed.
Once back-end issues are checked in and re-assigned to me, I close them if they are functionally complete. If I notice any issues with functionality, I create new issues referencing the original set of functionality in the title. For example Login: Error on Entering Username. And so, the back and forth continues, until the project is complete, and launched.
Issue trackers allow our team to maintain sanity, efficiency and meet project timelines. I recommend them for any team juggling multiple priorities.
If you are in the market for an issue tracker, check out BitBucket, it’s a fantastic tool.