Best practice for assigning task outside of project team

Hi, we recently rolled out YouTrack to our whole department and we are still setting up processes and best practices.

We often have the case where user A must review some code for project X. In order to get an unbiased opinion, user A does not belong to the team of project X and has hence no access to the issues of X. He also is not in the assignee list.

We manage access to projects using groups.

What's the best way to handle this situation?

The only option I can think of is to add A to the team of X but not to its group, so that visibility of issues remains limited (it is not because of confidentiality, it is not to clutter A's view with unnecessary items). When a review is needed, we open a task, assign it to A and add A to the visibility list of the issue.

Do you have a better idea or would you like to share your approach to this type of issue?

Thanks, Enpa

5 comments
Comment actions Permalink

Hi! 

I'm Sergey from the YouTrack team. Thank you for your post.

Your approach is perfectly fine. The main problem I see is that it requires lots of manual interaction, and hence it's easy to make a human error. 

In this case, you can automate this process using a workflow functionality. It allows you to customize various YouTrack processes. Basically, you write Javascript code using the predefined entities (objects) to manipulate how different issue-related things work in your YouTrack. If you are not familiar with this functionality, please refer to our tutorial.

There are many possible scenarios here, just to name a few:

  • when an issue is moved to the 'Review' state or a similar one you have, create a new issue and assign it to the reviewer automatically. It might also make sense to create a separate field 'Reviewer' or 'Reviewed by' to distinguish it from assignees. You can create this issue in a project visible to A (reviewer). If needed. you can create a separate project for reviews. Lots of rooms here to make it suit your needs. Then once A reviews it, you can sync the statuses between the issues using a workflow as well 
  • use the default visibility setting in the project. The idea is to grant all the reviewers access to the project by default, but restrict issue visibility via this setting (note that it applies to new issues only). Then once you set a reviewer, add them to the visibility list automatically. Then remove them once the issue is reviewed. This all can also be automated via a workflow.

Those are just basic examples, and you, of course, can come up with new ones for your use case. Overall, I think the best practice is to decrease the amount of manual work required in this process, therefore I suggest looking into this direction. 

If any questions appear, feel free to reach out. 

0
Comment actions Permalink

Dear Sergey

Thank you for your answer!

The second approach you described sounds interesting. I think we will introduce a new issue type (Review) and use an automated workflow to change it's visibility.

As far I can judge, it is not possible to have two independent assignee lists for a project and to switch between them depending on the task type, right? This would have been nice, but it isn't a big problem.

Enpa

0
Comment actions Permalink

Thanks for your response.

As far I can judge, it is not possible to have two independent assignee lists for a project and to switch between them depending on the task type, right? This would have been nice, but it isn't a big problem.

If I got you right, you can do it. You can have two fields: Assignee and Reviewers (or whatever you name them). Each can have a different set of users. Additionally, you can control the visibility of the field using the conditional custom field feature. For example, only show the Reviewers field if the issue type is Review. 

0
Comment actions Permalink

Thank you for your help, Sergey!

I think we have a solution:

  • We add a new issue type, called "Review"
  • We add a new field, called "Reviewer"
  • We add a workflow that makes Reviewer visible when the issue has the type Review (and viceversa)
  • We add a workflow that makes the issue visible to the reviewer when this field is changed
  • We add to the field Reviewer the aliases "for" and "assigned to" in order to keep reports and searches working

I was skeptical about the use of workflows because I have no experience with JavaScript, but yesterday I tried the Workflow Constructor: it's excellent! I was able to automate a small task within minutes :-)

Keep up the good work!

0
Comment actions Permalink

Thanks for the update! 

Hope this solution will help you and your team! 

0

Please sign in to leave a comment.