Crucible Workflow

Shawn Goertzen April 10, 2012

We are evaluating Crucible right now, and I am running into some issues with the workflow built into the product.

Here is the workflow I would like:

  1. Author creates a code review
  2. Reviewers look over the code and comment or create defects
  3. Author replys to comments or fixes defects identified.
  4. Reviewers (or someone) confirms all defects and comments have been dealt with.
  5. Review is closed.

My issue comes with the steps 4 and 5. As far as I can tell there is no way to be sure the author acts upon the feedback from the review. I can't even find a good report that shows what defects were raised during the review. The software just seems to allow the review to be closed with issues left unresolved.

This is basically a show stopper, and seems like a pretty big issue. I am hoping that I am missing something in the software, or perhaps there is a different way to do things. How are other people using Crucible to make sure the feedback is not lost?

Thanks,

Shawn

[Side Note: Queries]

I have created a few reports that can assist us in getting the information we need, but this is really just a hack and not something I would like to use moving forward. You can see these below and they might help to understand the data I am looking for.

declare @reviewID integer
set @reviewID = 7  -- This would be set to the review you want details for

-- Get all comments that don't have a defect raised or reply
select u.cru_displayname, c.cru_message 
from cru_review r
inner join cru_comment c on r.cru_review_id = c.cru_review_id
left join cru_comment cr on cr.cru_reply_to_comment_id = c.cru_comment_id
inner join cru_user u on c.cru_user_id = u.cru_user_id
where c.cru_deleted = 0
and c.cru_defect_raised = 0
and cr.cru_comment_id is null
and r.cru_review_id = @reviewID



-- List all defects from a review
select u.cru_displayname, c.cru_message from cru_review r
inner join cru_comment c on r.cru_review_id = c.cru_review_id
inner join cru_user u on c.cru_user_id = u.cru_user_id
where c.cru_deleted = 0
and c.cru_defect_raised = 1
and r.cru_review_id = @reviewID

4 answers

1 accepted

3 votes
Answer accepted
Renjith Pillai
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 11, 2012

Some additional points

If the reviewers have the practice to create Jira issue (directly from Crucible for the defects as explained here) and in the Jira project is setup in such a way that issues cannot be closed if there are blocking sub-tasks, then there is no chance that we miss any defect from getting corrected.

And like Seb says, finally it is the trust that matthers.

And this may help in getting out the metrics in a bit easier way for the ever changing requirements of management :) http://code.google.com/p/crucible-excel-dump/wiki/InstallationAndUsage

John Werner
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 11, 2012

+1 for the tool pointer. I ended up modifying it a little as we are not using JIRA (conscious decission), but other than that it worked.

Renjith Pillai
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 12, 2012

Good to know that :)

2 votes
seb
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
April 11, 2012

Hi Shawn,

Crucible does not have any mechanism to block workflow steps based on your requirements currently. However, here are some notes to keep in mind. The review Moderator could be setup to ensure that any review rework is carried out to his/her satisfaction. With the appropriate permission configuration, the Moderator could be the gatekeeper for closing reviews.

Within the FishEye/Crucible team we use an agile workflow where the review author is reponsible for actioning defects, and adding those changes back to the review so that the reviewers are able to confirm and check. However, this is not a process that is bound by any application logic - we trust that our devs are diligent enough to do this appropriately. One of our conventions is that all commits contain the JIRA issue key that is being worked on, and any review rework contains the Crucible review key in the message as well. This makes it easy to find code which is associated with issues and reviews.

With regards to defect metrics, the Crucible advanced comment search feature would allow you to find any defects for a review, author, project etc. Access this by going to the Crucible dashboard, then it's the last panel in the sidebar: https://skitch.com/sebruiz/81c2f/crucible-seb-ruizs-review-dashboard

You could also consider creating a simple Crucible plugin which does a more specific report.

Regards, and hope that helps

Seb

Shawn Goertzen April 11, 2012

It appears that part of the problem is our Crucible installation isn't complete. We don't have the "Advanced Search" in the sidebar, or the linking to Jira (as Renjith mentions below). I think the next step is to contact Atlassian support and get some help.

Thanks to both of you for your comments, it definitely got me going in the right direction.

Shawn

Shawn Goertzen April 11, 2012

Thanks John, that is exactly what I was doing wrong. Now to get the Jira integration working...

John Werner
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 11, 2012

Make sure you are looking at the "Review Dashboard" (it will say "REview Dashboard" in the top left), not just the "Dashboard." You may have to click on Reviews in the top menu to get there.

This actually had me going for a little bit until I found the difference.

0 votes
Alexander Taler
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 29, 2012

A client of mine was facing a similar problem, code reviews needed to be performed and audited for compliance reasons.

I created a plugin with stricter rules than those built into Crucible, it doesn't consider a complete unless it has reviewers who have marked it complete, even if it's closed in Crucible. Look for Flyover on marketplace.atlassian.com.

0 votes
Shawn Goertzen April 10, 2012

Would love some feedback on this. I am sure other people have figured out how to work around it. Maybe someone from Atlassian can chime in?

Suggest an answer

Log in or Sign up to answer