We are using GitLab internally in my company, but I'm pretty new to this tool. We are only a few sprints into a new project, but have started arranging the backlog into epics and issues. I would now like to re-organize some of the epics and at least one needs to be a child of another epic. Both the (potential) child epic and the (potential) parent epic have issues of their own. I can create a new epic as a child, but want to just change an existing one.
In the Epic view, on the right hand side menu, there is an entry that says "Ancestors" but it isn't editable. Is there a different way to re-organize the epics into a hierarchy?
Related
I know in DDD that deleting the Aggregate Root must remove everything within the Aggregate boundary all at once.
But in the Agile example that vaughn vernon gave it here https://vaughnvernon.co/?p=838 the BackLogItem and Product Aggregates are exist in separate Aggregates and the BackLogItem Aggregate Root is referencing Product Aggregate Root by Id.So, If I want to delete the Product Aggregate Root wouldn't mean that I should delete its BackLogItems?
So, my question how to delete multiple Aggregates in DDD and if so would be that possible using Domain Services , Domain Event or whatever?
P.S
Depending on vaughn vernon that we should not modify more than one
aggregate in the same transaction(in some cases we are forced to use
eventual consistency).
The usual mechanism for behavior distributed across multiple aggregates is to use a process manager.
I recommend starting from Rinat's writeup, because it really does get to the core of the matter; a process manager is just a stand in for a human being that reacts to events by sending commands to other aggregates.
Oh look, the Product was removed
I should load a list of the BackLogItems that reference that Product
And remove each of them in turn
If your modeling of the back log items as belonging to a distinct aggregate from the product is correct, then it follows that the changes to the back log items can be separated in time from the changes to the product.
Also, see Udi Dahan: Don't Delete -- Just Don't.
Use Saga Pattern. It executes a scenario in the transaction and imitates clients work. Saga sends multiple commands just as client does.
I would argue that your problem is not only how to delete multiple aggregates, but also which aggregates you should delete. In your question, you mention that when you delete the Product Aggregate you should delete its Backlog Items, but is that all? What about the Kanban Board and its custom columns and workflow, and N other features associated with that Product Aggregate?
The point of having the BacklogItems knowing about the Product, but not the other way around is to avoid having a God object, which knows about everything because dozens of features can be attached to the Product Aggregate over time.
When deleting the Product Aggregate, there's not a single place that knows everything that needs to be deleted, but everything that needs to be deleted will know. Therefore, leave the responsibility to delete (or something else) to every other aggregate: From the ProductAggregate, publish a ProductDeletedEvent and subscribe to it from all the other aggregates that care about it.
What is the data model for an issue in JIRA for software projects? Is the hierarchy as follows - project->epics->stories->subtasks?
I want to create a Project management board with multiple stages . In this project, you can proceed to the next stage on only completing the earlier stages.
I wanted to create a 2-level hierarchy of workflows where the epics are in one workflow and the stories have their own workflow. Hence, there will be two boards
one showing the status of the epics in their workflow and
another
showing the status of the stories/tasks in their workflow
Is it possible to customize JIRA to allow this type of functionality?
The nice thing about JIRA boards is that they are simply views on issues. This means you can define what shows up on boards using JQL.
As an example, you could have a workflow for epics and then a board to show this workflow using a JQL that is something like this:
project = "myproject" and type = epic
Then you define a different workflow for your stories and show them on a different board using a JQL like this:
project = "myproject" and type = story
This means that even though the epics and stories both exist in the same project they can still be shown on different boards and with different workflows.
Was wondering if anyone could offer some insight to how I would remove an Implicit Share in CRM 2011... The situation goes like this: I have a custom entity that can get nested under other entities of the same type. The parent entity is owned by Team A. The child is owned by Team B. Users who are members of Team A can see the entity owned by Team B because of the Relationship Behaviors (parental) that were set up...
This behavior was giving us a big headache because we were trying to control visibility of that record by team ownership. We finally pinned it to the Relationship Behaviors setting. We set that for Referential, and the problem has gone away for any new child entities we create, but not for the ones that are already there. I'm looking to remove this implicit share without having to remove/recreate the affected entities as that would take some time due to the number of them there.
Just looking for a different angle on this, or some ideas/direction on how to easily remove these relationships.
Thanks for any help! :)
So, here's what I found... We can either zero out the relationship in the POA, or we can recreate the records... We tried reimporting the records from a development org we have, but the problem persisted since we are using clones (same guids)... We have to reimport to the dev org with new guids, and then can promote to test org using clones at that point...
Note: Due to low reputation I can't post images so i have added the links accordingly.
I have this assignment I'm working and I am stuck in a recursive relationship, following is part of the case scenario that I am currently modelling;
Now, from the first Three paragraphs i have deducted the following business rules;
Employee is allocated ONE branch and a branch employs ONE or MANY employees
Each branch is designated ONE manager and ONE assistant manager
Employee is managed by ONE manager and supervised by ONE assistant manager
Employee submits ZERO, ONE or MANY previous employment records, a instance of a record is associated to ONE employee only
Employee is assigned ONE job position only, a job position can be assigned to ONE or MANY employees
(note: I have assumed in rule n.2 that a branch is also designated an assistant manager)
And now this is the ERD diagram for the above rules;
So from the scenario, the assistant manager only supervises the staff, but it does not say that it has any relationship with the branch entity, however i assumed that a branch should have a relationship with the the manager and the assistant manager, but i am a bit confused so i havent added it yet to the erd diagram. Can you guys help me out?
Firstly it appears you seem to be drawing a UML Domain model not a ER diagram. These are not the same thing. You've identified an employee but seem to be trying to use it polymophically for all things. This premature optimisation (and for re-use), when you should be following the rules of normalisation of entity relationships. Take a step back, create tables for manager, assistent manager and employee. Add the fields to those, THEN try to normalise.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 5 years ago.
Improve this question
The Product owners have specific requirements around how the Product should enable the users in a complex business process workflow (approvals and what not). The easiest way to document the requirement is in the form of a process diagram/flowchart.
In Scrum however, it is advised for requirements to be in the form of user stories. What is the best way to approach this?
Option 1
Have generic user stories that encompass the workflow, and attach the flowchart diagram as a supporting document. e.g. As an author, I want to be able to submit my article for approval process so that it will get published.
Pros
it's easier for people to understand and digest - rather than reading 10-20 user stories.
Cons
it becomes an epic
Option 2 Break down the complex flowchart into its own user stories. e.g.
As an author, I want to be able to submit my article.
As an editor, I would like to get notified when an article has been submitted so that I can review it.
As an editor, I need to approve an article
As an editor, I would like to be able to request for more information
...
Pros
pure Scrum. easy to prioritize/estimate/plan
Cons
As you can see even a short business process workflow will easily explode into a lot of user stories.
I agree with pma_. Do what makes sense. In this case, you have some great looking user stories.
"As an editor, I would like to get notified when an article has been submitted so that I can review it."
If you have a ton of these, then perhaps they are too small. They would all be 1-2hrs. That's probably not a good thing to have. In that case, try grouping them. Perhaps
"As an editor, I want to be able to manage articles". That would include several of the ones you have already.
Keep in mind the goals of user stories...
Track items on a burndown chart
Deliver fully functional work (not an unusable subset of work)
Have estimatable portions
If you can achieve those goals, you're good. If not, try again.
Oh, and one last thing - keep the flow diagram, don't throw it out in favor of stories. But supplement the stories with it.
If this business workflow is like most business workflows, each of those steps will have a significant number of rules. Those rules should map into acceptance criteria for those stories and ideally, automated tests to prove that the code works as intended. Because of the potential for a lot of acceptance criteria, I would lean towards the second option.
I tend to go towards Features/Epics early on with the core end user/stakeholder value-adding functionality, such as in your example to "Publish an article so that the subscribers can get the latest news". Then once the Feature is getting closer to implementation I'll split it into implementation sized stories if needed.
Most non-trivial business workflows benefit from being split up during implementation so that they can be continiously deployed and verified in order to get early feedback from the stakeholders. The big con of having everything as one big bang implementation is late validation. I think that having early feedback is outweighing the increased administrative burden of handling multiple stories.
A tip on how to split epics into stories: Lasse Koskela has a great writeup on how to split stories in different ways.
For me all agile is about using common sense. I this case you have perfect desing so just implement one and don't look for unecessary things.
We're currently building a business process based content management system. We split our processes into stories as per your 2nd option.
But, of course, we keep the flow diagram handy. In fact, we print it out and stick it to the wall. We even keep every old version of it so we've our own paper based version control stuck to our wall (in addition to using git for the electronic version ;-) )
In Scrum however, it is advised for requirements to be in the form of user stories. What is the best way to approach this?
The two options that you have mentioned are not really options, they are sequential stages, IMHO. During Agile Requirements Gathering or Product Planning the first step is to create EPIC stories. After you have those Epics, you need to break them down into smaller chunks.
Without the EPICs you will most likely to run into the issue of creating random stories without getting a grasp on the sense of belonging of a story. You can in a way create a hierarchy in User Stories. Without understanding that, everything is just random, hence it makes it tougher to wrap your head around or manage the stories as a PO.
Offcourse there is much more to all this than what I mentioned in the above paragraph. That's why probably you need an experienced Scrum Coach or do a lot of diligent reading/implementing on Agile Planning and User Story writing.
Hope this makes sense. I would suggest reading Agile Estimating and Planning by Mike Cohn for anyone who even remotely thinks of taking up a PO role. Best of Luck!
Workflows are an interesting entry to writing user stories and epics, but user stories don't map to work flows, they map to business capabilities. So you are incorporating some fallacious thinking from the start in this question. Workflows are a good tool for the conversation, but will live independently of workflow as they are about functionality, not timing. Timing lives in the business rules.
On that note, business rules are not Acceptance Criteria, they are the connection between Acceptance Criteria, which are features that can be demonstrated by a product owner, and Test Cases. Again, Acceptance Criteria are about features, not behavior. Behavior lives in the business rules.
For instance I might have User Story for an ATM that says "As a user, I can check my account balance." And the Acceptance Criteria could be "If I am overdrafted, I get an alert notice." The rules for what constitutes an over draft (I had $1000 in my account and deposited my $2500 pay check, but that won't clear before my $1500 mortgage payment, etc.) are not acceptance criteria. They are business rules whose execution results in the demonstrable action of the Acceptance Criteria. Note, that this user story could be captured through a workflow analysis, but might live in many workflows (or none).