Asking this here rather than softwareengineering, simply because there is a tag for VSTS here while there isn't one there...
So currently I'm seeing this:
What I'd like to see is 'Tasks' in there alongside Epics, Features, and Stories, and have it mapped to the 'Tasks' WIT.
How do I do this?
I've had a look at https://learn.microsoft.com/en-us/vsts/organizations/settings/work/customize-process-backlogs-boards?view=vsts, but I'm not sure if that's what I want.
This can't be achieved with the standard Task work item. The Task Level is a special kind of level which enables the Task Board and iterations. The distinction of pretty artificial and it stems from the time when TFS didn't event have a Feature or Epic level and there were just two kinds of plans: Longterm (story, pbi, requirement) or short term (tasks).
Related
I'm curious with usage of DevOps boards/sprints/kanban, what is the industry standard for handling usage by multiple stakeholders?
More specifically, DevOps comes with standard states like "Active/Resolved/etc", but what if we want to capture more, such as "Deployed to env X", or even testing statuses. I know we can add additional statuses, but is that the right thing to do?
The challenge we have, is if the Kanban is used, then all those statuses must be represented on the Kanban, because movement on that board actually sets the status, so if we remove a status column from the Kanban, any WI with that status would effectively be hidden.
So effectively, I've added a bunch of statuses to cater for environments, testing, different reasons for on-hold, etc, but its being argued that this makes the Kanban too complex to get an easy snapshot of whats happening.
It's been suggested that we remove all these statuses, and instead use Tags and Swimlanes, which seems much less robust to me, it accomplishes the same thing, but without a single source of truth like the status provides.
Just curious if anyone with more experience with DevOps can shed light on how they've tackled this.
It looks that you want to get feature which is not implemented - Allow multiple states in the KanBan Board Columns
Actually the TFS allows only one state for every column in the KanBan Board which makes the whole developing process messy. We had to create several columns for all the states that our dev team has. It would be great if TFS could allow to assign multiple states to the columns, and doing and done columns to reduce the number of columns in the whole process.
There is no way to overcome this and what you need.
You can create custom field with pick list and then configure Kanban to display this field on the board:
This maybe helps you a bit.
Our team is having difficulties identifying tasks in a sprint that are open for work. We use Azure DevOps and assign our stories and tasks to a sprint iteration. Our team workflow is modeled after the DevOps Scrum template. All tasks are child work items of stories. Additionally, we set Successor and Predecessor relationships between tasks. We also set Successor and Predecessor relationships between stories. We typically break stories down into tasks small enough so we can swarm a story and get it done quicker. Identifying concurrent work is crucial for our team.
Typical Azure DevOps Sprint Taskboard
The sprint taskboard looks like a complete mess. Each story is a blob of tasks. Developers and testers have difficulty going to the sprint taskboard to find the next open task, because they need to view each task under each story to ensure the predecessors for a task are closed. I'm not sure how to interpret the taskboard view to get this same information.
Typical Work Item Relationships
Azure DevOps allows you to visualize a work item to show its immediate work item relationships. This does not provide enough context when stories have numerous tasks and the relationships between tasks are deep. Each task work item is a child of a story in addition to the predecessor/successor relationships between tasks. On top of that, we order tasks under stories as well.
To be honest, I frequently resort to creating flowcharts just like the one above. It gives a clear visual representation of an entire story from start to finish. You can clearly see areas in the workflow where we can assign work to multiple developers or testers. I just can't shake the feeling I'm missing something in DevOps...
Question:
Is there an automatic order to tasks in the Azure DevOps taskboard view that communicates the predecessor/successor relationships between tasks under a story, beyond the explicit ordering of tasks in the sprint?
Epilogue: I understand that this question will receive comments that we should break stories into smaller pieces, or that one developer should work on a story and we should plan stories that we can work on concurrently. I tried this approach with our team for years, and this is the most efficient way for us to complete work. I fought this hard for a long time, but the fact is the team does extremely well with this breakdown of work — except with identifying the next thing to work on.
The answer to your question is simply "No". You can however write a query and sort the tasks by Priority.
In Microsoft's VSTS, is there a way to have User Story as a child of Epic in the Agile process template, eg including when performing "mapping", without creating a VSTS custom process template? In the image below in the main content area, hide / remove Feature, and in the "Mapping" panel on the right, have Epics for mapping User Stories.
I'm asking because in my org's agile practice we have epics and user stories but we don't see the need / benefit to the extra layer of Feature WIT.
OOTB Agile process template has Epic > Feature > User Story and when you view Product Backlog (aka user stories) you can map them to Features and when you view Feature portfolio backlog you can map them to Epics, but you can't (that I know of) turn off the Feature WIT so that User Stories can be mapped directly to Epics in the GUI.
Btw, it isn't possible to rename OOTB WITs otherwise I would simply turn off Epic WIT and rename it to "Epic OOTB", and rename Feature WIT to "Epic My Org".
UPDATE: Per Add a portfolio backlog level it is possible to add a portfolio backlog level with a new WIT:
You'll first export your process, add or update definition files, and
then import that process to either update existing team projects or
use it to create a team project.
but I want to remove one. I may try the reverse using this procedure but first I'd like some reassurance that it likely works for removing an OOTB level.
Some of the docs I've consulted include:
Agile process work item types and workflow - Microsoft Docs
Define features and epics - Microsoft Docs
There isn’t such feature in VSTS, also you can’t custom too: Modify the backlog and boards
Why don't you use tools like Jira or Rally to map in your agile practices? It will be immensely beneficial in long run.
Agile, by its very definition, means that you should be flexible. As such, ignoring the User Story as a sub-class of feature can be done. However, I think that if the focus of your delivery has a strong user-component to it, then marrying that up in deliverables will give a better indicator to your product owners.
If you're scrumming it, then you'd generally be working on a feature-task loop anyway, so I wouldn't worry, VSTS seems to cope well with both.
VSTS doesn't really concentrate heavy on Workflows OOTB like JIRA pushes (I've seen some crazy JIRA workflows in my time), although it is quite extensible, I believe the VSTS Team have gone Zen Agile in terms of offering a service that helps teams develop code first and foremost, and consigns the machinations of the upper tier management of software delivery and work tracking second.
See the process guidelines for more info: https://learn.microsoft.com/en-us/vsts/boards/work-items/guidance/choose-process?view=vsts
Will be setting up first VSTS team project and picking the process template, it seems to be down to either agile or scrum. Reading other posts, it seems scrum is the simpler and for the most part it makes sense for our small team. However, I do not think we want to use sprints and the "sizing" method for kanban typically uses is more loose also. My question is if I choose the scrum template, am I forced to use the sprints and if not, can I remove them?
https://learn.microsoft.com/en-us/vsts/work/work-items/guidance/choose-process?view=vsts
https://learn.microsoft.com/en-us/vsts/work/kanban/kanban-basics?view=vsts
The concept of "Iterations" is a fundamental part of the work item tracking experience and you cannot change that.
However, there's nothing stopping you from setting up a completely flat iteration structure consisting of only a Backlog iteration with no defined start or end dates, then managing everything from the backlog view in a Kanban fashion.
There is no difference between any of the process templates in this regard, only in the work item names and in some rules around state transitions. I believe Agile has looser rules for state transition, whereas Scrum has stricter rules.
Background:
JIRA offers a single set of statuses for all types of issues in a project.
Problem:
The problem is that the status set for a task is ToDo, InProgress, and Done. While for a UserStory in the same project it might be Designing, Developping, Testing, Releasing, and Done. It can even be different for a bug or an Epic.
Question:
How do you keep track of the workflow of your product and at the same time manage the status of your tasks using the single set of JIRA status.
PS: I know they can be customized for each project, but it doesn't help because you can't customize them for each issue type separately.
I think one of the reasons that JIRA offers the To Do, In Progress, and Done is that these can apply to anything. You either haven't done it, you're doing something, or you finished. That set can apply to any type of item.
That being said, I feel your pain in wanting to have a better view into the true state of an issue. What we have found we use for our OnDemand agile boards is to set up something like the following:
To Do
In Progress
Ready for Review
In Review
Done
For most types of issues, this can work. It adds that bit of extra layer to be able to identify what is ready for testing.
One of the things that is tricky is dependent tasks. For example, I noticed you mentioned "Designing" as a stage, and I'm not sure this makes sense in an agile sense. If the design is emerging from the development, it may be better to allow the design/development to flow within the development team. However, we all know that sometimes you need to get some details ironed out before you can proceed, or there may be some people that need to become involved before a dev can proceed. We made the mistake of trying to turn this into a stage, but what we found was that this was really either a sub-task for part of the team, or an impediment (blocker). By flagging stories, you can identify that a story requires something to be done before the development team can proceed.
If you are using Kanban, and not a Scrum board, the sub-task approach will not be for you. In those cases, you'll just need to make sure you have stages that make sense for all the issues you create. Stages will have to be fairly 'generic'. This sounds bad.
But it is not!
I believe teams generally use the stages for a few reasons:
Checking on status of an iteration
Inform other team members that they can pick up an item
Try to get a visual estimate on how close to Done an issue is.
More stages doesn't necessarily give a better status on an iteration as you really just need to see how many points you've closed and how many are in progress. So, at least for that goal, a more generic set of stages should work.
As for informing team members, too often I've seen teams retreat to the digital board to replace communication with each other. The fewer stages you have, the more you can force your team to talk to each other and work together to get a story to done. Things will work better this way, I guarantee it! Having a bit of a break-down helps, especially if you are working on a lot of items at once or have distributed teams working in different time zones, but keeping it simple is usually better.
Tracking the "how close to Done" is the hardest to do with generic stages. However, the multiple stages can be misleading. An item that is almost all the way across might have a severe bug in it that hasn't been found yet, so no matter how many stages you have your view on this item isn't any more accurate than a single "In Progress" stage. It isn't Done until it's Done :)
This was a long way for me to recommend keeping your workflow simple and letting your team use communication to keep on top of things. Maybe I should have just started with that!
The statuses that are available to each project is determined by the Workflow to which it is assigned. Not only does a workflow define the statuses, but it also defines what statuses you can progress to from a particular status. You can either create your own Workflows or you can download predefined workflows that suite your need.
In order to have separate workflows for different issue types, we need to define a Workflow Scheme:
1- Go to Jira Administration -> Workflow Schemes
2- Edit the Wokflow Scheme that is assigned to your project
3- Click the "Add Workflow" to add a new workflow for the issue types for which you need a different workflow and assign those issue types.