To keep up with a constantly changing industry, we are always trying new tools and processes. About a year ago, we joined our development team in using JIRA as the primary tool to track our design tasks. At the same time, for larger projects we started using a Dual-track Scrum, where designers and developers work in parallel. Since making these changes, we've learned how to better integrate ourselves as designers into JIRA and the Dual-track Scrum process. Here's what we've learned.
Staying ahead of the game
An issue that became apparent immediately after implementing this new process was that we could not do design and development for the same task in a single two-week sprint. We realized that it was not enough time to complete wireframes, designs, and development work for a single task. Therefore, we had to stagger our work, so that we were designing for tasks that would be developed in the following sprint.
For instance, in sprint one, it would be my responsibility to create designs for the "login" and "sign up" user flow. Then, in sprint two, the developers would take my completed login designs and code them up. The size of the project and the complexity of the project affected how far ahead of development we had to be. With a smaller project, staying one sprint ahead of the developers allowed us to provide the designs that development needed for their next sprint. However, in other cases, being one sprint ahead of developers was not enough.
On larger projects to which both a dedicated UX and UI designer were assigned, we had to not only stagger the design and development work, but also the UX and UI work as well. We realized that by having UX work complete a sprint ahead of the UI allowed us to have a more complete and well thought-out user experience. By staggering designers and developers like this, we were able to quickly and more efficiently complete project tasks.
Sprint zero: for designers
We now knew that designers had to be completing designs ahead of the developers, yet, we were still falling behind, especially at the start of a project. The reason that we felt so behind in the beginning of a project was because we were starting design work at the same time as development, therefore, we were not getting the time we need to get ahead of development. In a perfect world, sprint one would be where we work on designs for sprint two. In order to do this we need to start a project ahead of developers.
We do so to provide ample time to conduct user research and set a design direction. While developers are getting their environments set up, we can start on design tasks. We refer to all of this upfront research and concepts as "sprint zero". All of the necessary tasks that build a framework, such as user personas, user flows, site maps and style guides for an entire project are done during this sprint. Once all of this is established, we can take on tasks and start handing off elements to developers.
Tracking design tasks in JIRA
Getting in sync with our development teams was only part of the solution. We also needed to have more visibility and organization of our design tasks in JIRA. Originally, we were just using development tasks to keep track of the design work that needed to be done. The problem is that design tasks are very different from development tasks; they are broken up and grouped differently.
For example, one design task may be connected to several different development tasks. We needed to not only have our own design tasks, but we also needed to make sure that they were being linked to the correct development tasks. Separate design tasks give the whole team more visibility into what the designers are working on and how it relates to other tasks.
The team can see what design tasks are in progress and when they are completed. Once the team sees that the design task is completed, they know that the designs for that task are finalized and they can start work in the following sprint. Having development tasks that link to a single design task allows us to keep all designs and assets in one place rather than posting designs to multiple development tasks. This allows us to post any notes about the designs and make easy updates if necessary. Having more visibility into what everyone, including designers are working on will create a more efficient process.
Communication between team members
Visibility and organization of tasks are important when working with a team, almost as important as good communication. We move very quickly through tasks, and everyone is off by themselves just trying to get things done. We forget that we need to communicate with each other to make sure that everyone is on the same page. In order to do this, we have daily stand-ups where we discuss what we are working on and what we are going to be working on the following day.
In doing this, we can better prepare for problems that may arise and adjust accordingly. For instance, if one task was taking longer than anticipated, then in our next stand up meeting we can adjust the tasks in the backlog to allow for more time. This is also a great opportunity to ask questions if we do not quite understand something. It is even a great way to collaborate and come up with new innovative solutions, therefore improving our overall quality of work. Without these standup meetings and good communication, we would most likely run into more issues on a project.
We have learned a lot since implementing this process. Going forward, we will be focusing on making sure that the team has more visibility and clarity into what design work is being done with individual design tasks in JIRA. We also want to work on having more consistency in this process across different projects and teams, especially at the start of projects, where the design team is far enough ahead of the development team. We will continue to make sure that good communication is at the core of every team. We are always working together across all of our teams to make this process smoother and more efficient.