Backlog Prioritization Issue - azure-devops

We have noticed that when we drag and drop items in priority order on a board, that same order is not shown if someone else opens that same board and has different column rows or has then ordered differently.
This is causing issues with the team understanding the next backlog item that needs to be picked up for grooming.
Does anyone have any ideas on how we can ensure the backlog order stays the same regardless of what order someone else's columns are in?
I couldn't find anything in the documentation related to this.

Please make sure that when you are changing the order of work item, there is no others doing the same operation, which makes it to be reodered. To limit users' permission in this reagrd, please refer to Default permissions and access levels for Azure Boards.
At the same time, there might be some delay when you change the work item order. Also, please make sure your operation are valid, instead of a invalid change of work item order due to your limit permission.

Related

Best way of passing object information throw pages

This question probably already exist but its too specific and hard to seach for it.
So, imagine that we have a ecommerce application.
On page 1 we have a list of products. And when its tapped, we go to a page 2, where it holds more information about the product that you just tapped for. Pretty much like any other ecommerce out there.
Which one of these two situations are better:
When one product is tapped, we pass via arguments all the informations about this product to the page 2. Then, no requests to the database is necessary.
When one product is tapped, we pass its ID only, then we need to do a request to get this product information from database.
You might think its obvious that the option 1 is better, but with option 2 we pretty much guarantee that all product informations have the last update from database, because the owner might change the product price milliseconds after you just clicked.
image describing user interaction
I would go for the second option most of the time.
As you already said, the information will always be up to date. Also if you request all the products with all of their information it creates quite some overhead, depending on the size of the product page and the information about the different products. Another thing is updating the information live. Maybe you'll decide to add a Stream later on, updating the information while the user is on the product page. Querying each product will make that easier as well.
If you can afford the resources of requesting the product every time and your process isn't too expensive it's in my opinion the better option.

How to understand & control the order of items in shown in an iteration on a delivery plan

If you re-order items on a backlog, the board magically also moves tickets/PBIs around. Backlog priority/order changes however do not appear to influence the order of items in the new Delivery Plans 2.0. Any guidance on how DevOps is ordering items in the Deliver Plan iteration and hence how to control this would be very helpful.
The tip here doesnt appear to be true - https://learn.microsoft.com/en-us/azure/devops/boards/plans/review-team-plans?view=azure-devops#interact-with-a-plan
Thank you

AZURE Boards - Priority Changing Does not Change Board Order of PBI's

I have recently started using AZURE Devops boards. I have set up a board based on 'Agile' process. Below is the picture, how my board looks at the moment
The problem I am facing at moment is, if I change the priority of Backlog Item 2 to 1, the board on refresh does not re-order the column based on new priority of the PBI's.
If I do the same action in the backlog also, it does not re-order backlog based on a new priority.
Looking forward for the advice, what Am I doing wrong here.
Thanks,
Bee
Looking forward for the advice, what Am I doing wrong here.
1.It's expected behavior cause the Backlog doesn't reorder automatically based on Priority.
Please check Reorder your backlog, the reorder option of Backlogs is a drag-and-drop reorder feature. We can only reorder the Items via drag-and-drop, the order won't be automatically reordered based on changes in priority.
Meanwhile, the order in Boards will be reordered when you reorder the backlog with this option enabled:
If you've enabled this option in Boards settings, the order in Boards will be reordered automatically once the order in Backlogs has changes. But both orders in Boards and Backlogs won't be affected by changes of Priority, it's by design. (You may have seen the blog shared by Matt above)
2.Though we don't support sorting the Items based on Priority, Define style rules to highlight high-priority cards can also make some help.
You can't reorder them automatically in Boards tab based on Priority, but you can have a style rule to highlight high-priority items automatically in Boards. Not perfect, but it can make some help for you to find those high-priority items easily. (BTW, if you do want a new feature to reorder Items automatically based on Priority, feel free to post a feature request in Our User Voice forum)
Priority is just the relative importance you've defined for that item in the backlog. The actual order that you would want to complete items in the backlog orders by the stack rank.
The backlog priority (stack rank) number can be confusing. The numbers are very large because of performance reasons that they added if they tried to renumber the priority on everything. There was a blog post a long time ago that covered their thinking on that field.

Moodle, guest and frontpage

I've exhausted my search on moodles site and the web-at-large.
I have a need to grant an individual (not a registered/regular user) temporary access to take a course/quiz, capture results and archive actions.
I want to manually enter said user into moodle and assign them a "guest" role so that I can then enrol them into a course and accomplish said goal.
The problem is, when I exercise this, the "guest" can view categories, courses and some other items within the site. I do not want the guest to be able to see ANYTHING but the assigned course (and their grade)...I want to "lock-it-down".
I have been through every permission to the extent of "Prohibiting" everything, however, the guest role is still able to select some items and "peak" into other categories/courses.
Moreover, I don't want them to see the same menu items either...such as Dashboard
If you can point me in the right direction or solve this problem, I will be forever grateful.
Thank you,
Mark
Manually entering said user will make her registered whatsoever, nevermind assigning her a guest role, which is, as I understand, heavily modified by you at this point (best practice here is to create your own copies of role instead of modifying existing ones).
The solution will require code modifications, since role capabilities are not covering everything. However, you may prohibit user to peek into any course(not category) by prohibiting self-enrolments, if it suits your strategy.

CQRS: how do you retrieve information about an executed command?

In most command interfaces I've seen, there is typically an "Execute" method which takes takes a command input and either returns void or some generic structure indicating if the command executed successfully or not (we are using the latter). Now, I've never thought of this before, but we suddenly got the need to know some more details about the result of the command than what you can expose generically.
Consider the following example:
you have a team and you are creating a screen where you can add members to your team. The members of the team are shown in a grid below the "add new member"-stuff. Now, when you press "add new member" you want to run some jquery/roundohuse/whatever and add the new member to the list of team members. No problems so far, but: you also want to include some identification data in a hidden field for each member and this id-data comes from the server.
So the problem is: how can I get that id-data from the server? The "AddNewTeamMember" command which I am pushing through the "ExecuteCommand"-method does not give me anything useful back, and if I add a new query method to the service saying something like: "GetLastAddedTeamMember" then I might just get the last entry added by someone else (at least if this is data which is very aggressively added by different users). In some situations you have a natural unique identifier generated on the client side which we can use, but for team members we did not.
Given that you have no choice but to update an on-page widget when another command completes, I see two choices for you:
Shoot off the command, display something locally that indicates it is submitted, and then wait until you get a notification from the server that the team member list has changed. Update the widget to reflect that.
Add a correlation ID to your command when you submit it, and add the team member provisionally locally to the list. When you get a confirmation from the server that a team member update happened because of your correlation ID, update your local data.
I would suggest the first approach, where the "provisional indicator" could be throwing a marked version of the normal indication into place; then, when you finally get an update you should have the data you need.
Given you went with CQRS to solve this problem I assume you have frequent updates to the content of those widgets happening in the background already, so have presumably solved the "background update" problem.
If not, I suggest you either ditch CQRS as a bad - over-complicated - solution in your problem space, or solve the background update problem first.
If you want to add an existing team member, you should query the read side of your application for this data. If you need to add a new team member, you have to consider if it's necessary to show the user in the grid below at once. Can you wait until the team member is in place on the read side? You can also query a service on the server side to get an unique ID (it can return a GUID). Then you add the team member to the grid, and of course, send the command to the server. But, if it's possible, try to design the application in a way that you don't have to show the team member at once. It's also possible to give the user a message saying something like this: "Team member added, waiting for response from server.". Then use AJAX to query the read side for new team members. When it appears on the read side, show it in the grid. You might have to deal with team members added by other users, but does it matter? CQRS gives you a great way to collaborate with other users, so maybe you should take advantage of that. As I see it; CQRS forces you to think different, and that may not be a bad thing.