Gitea: SCRUM backlog/sprint backlog per project

Created on 8 Feb 2018  ·  42Comments  ·  Source: go-gitea/gitea

I would love to see people participate in this issue as much as possible and collect a lot of suggestions and ideas.
I would find it quite interesting to have features like Miscrosoft's VSTS (https://www.visualstudio.com/team-services/).
Not necessarily exactly like those, but something befitting the agile process model SCRUM.
:) Have fun discussing.

kinproposal

Most helpful comment

For some teams having an integrated board on the same tool were the issues are created is a must. It would be really useful to have boards like Gitlab or Github has. I was thinkering with the idea of a gitea integrated board/projects tab, and I created a prototype of the idea, it's based on the Gitlab approach:

board-some-columns

board-many-columns

It's not really working, it's just fixed data, but I think the visual should be something similar to this. The code is here:
https://github.com/rudineirk/gitea/blob/projects-board/templates/repo/issue/list.tmpl

Something that is missing is the visual to create/select boards, like Gitlab has. It would be really useful to be able to create boards for multiple teams.

All 42 comments

Could you please point out which features do you especially want?

In SCRUM you have basically one Product-Backlog, containing User Stories, which are sorted by priority or by some predefined value.
Every User Story consists of most likely a title, description and maybe a name for the value to measure the priority in(more or less like "issues", but sorted by priority) as well as that priority field.
Also a field, which could indicate, whether the User-Story was implemented, removed(because of some issues, not finished or needs more description)

In every Sprint(defined period of time) the devs take some User stories from the Product-Backlog and add them to their Sprint-Backlog, which other than the P-Backlog also consists of (maybe optional) ideas how the developers want to solve the specific problem, which is described by their chosen User-Story. Every developer can see every other developer's assigned user story, but can not edit it (maybe only comment on it)
Devs should be able to only modify their own solution notes, but not the description/title of the user story, thus the need of at least two roles (product owner and developer(not exclusive))
Has dev-1 finished his assigned user stories, he could ask another dev-2 to assign his (other dev-2)user story to dev-1 (well, open for discussions at this point).

Is the sprint finished, meaning the time's up, there could be some kind of overview of the finished user stories and also unfinished ones.
These user stories need to go through two phases.
The finished ones need to go through both phases, one is the Sprint review (e.g. showing the customer the finished improvements)(only finished user stories).
The second phase would be the Sprint retrospective, where the dev team takes a look at what was finished and especially, what was good in the process, and also which user stories were not finished and why not(moving them to the product backlog)
(Maybe some "bulletin board" with information about the definition of "Done", meaning when to consider a user story as done and some process optimization stuff)

Some functionality to kick off a new sprint and maybe based on the normal issue system, the product owner could take these suggestions and convert them into User stories, adding priority, more detailed description etc.

I don't know what would be better, to use the existing issue system and use it as input for the product owner to take from or to use the scrum stuff exclusively, excluding the normal issue system and see the scrum stuff as an own issue system.

TLDR :D
In general there need to be two roles, one being product owner(by default project owner with the possibility to change roles by the first product/project owner) and the other being developers.
Moreover a Sprint is needed, which has a defined(product owner?) duration and some mechanism to kick off a sprint. Kicking off a sprint makes no sense if there is nothing in the sprint backlog, thus the need of a sprint backlog containing assigned(?)(maybe everyone of the devs can change assignments) user stories, which cannot be changed, but commented on(one sticky comment with sub comments?).
Every developer needs to be able(only within a sprint? or whenever he/she pleases?) to change the status of a user story from unfinished to finished (question is, what kind of states can a user story have?)
When the sprint comes to the end, the state of the "issue tracker" should change its state to review phase, only showing finished user stories(And only the sticky developer comment? no comments? all comments?). (What states should we need? : suggestion: planning, sprint, review, retrospective)
Then the product owner(?) should be able to change the state to the retrospective, where maybe the "bulletin board" with suggestions, patterns, good practices, bad practices, etc. as well as well as all, finished and unfinished user stories should be visible again.
After this phase the product owner(?) should be able to change the phase to the next one, planning, where unfinished user stories should(?) go back to the product backlog and finished user stories either archived or deleted(in order not to point fingers at people, when a bug is found afterwards).
And in the planning phase the dev team can can add the user stories again to their sprint backlog.
And after this step somehow a sprint needs to be kicked off, maybe by the product owner.

Have fun discussing(I hope)

User stories could also have all the properties an issue in the normal issue tracker has, e.g. tags and so on.

This was already discussed in #805. Personally, I think that workflow of teams may greatly differ, and for this reason we should not have any "projects" feature similar to GitHub's or GitLab's, or the Scrum system of Bitbucket. I don't think there's any viable one-size-fits-all, but Issues are a good compromise for small projects where one can expect not to have a huge amount of things to keep track of.

Gitea unto itself should, as far as I'm concerned, stick to GitHub/Lab-style issues and only provide tools to deal with them using APIs and webhooks, or allow people to use external issue trackers (something we already have!).

@jxsl13 I can recommend you https://github.com/opf/openproject that can work along Gitea. It support multiple workflow and you can setup gitea to use it as your ticket/issue manager (by setting the url in gitea)

@sapk thanks, looks quite promising

@sapk I've installed open-project and change the ticket/issue manager at Gitea but I've a question, is there any relation between open-project and gitea? or only Gitea link to OpenProject?

My question is because I don't know if there is any way to relation my gitea issues with openproject task (the code of gitea, the same number of issue in gitea and openproject).

Thanks for your reply!

It maybe possible to link more tightly between openproject and gitea via api but I don't know anyone that as done it (and maybe require some ajustement to gitea or openproject code).
I use it mostly to do advanced project management aside from code hosted in gitea.

I do like the Gitlab approach of allowing to create scrum/kanban "boards" out of labels and turn them into a different view...nothing really changes, it's just a different view, but a very useful one IMHO.

For some teams having an integrated board on the same tool were the issues are created is a must. It would be really useful to have boards like Gitlab or Github has. I was thinkering with the idea of a gitea integrated board/projects tab, and I created a prototype of the idea, it's based on the Gitlab approach:

board-some-columns

board-many-columns

It's not really working, it's just fixed data, but I think the visual should be something similar to this. The code is here:
https://github.com/rudineirk/gitea/blob/projects-board/templates/repo/issue/list.tmpl

Something that is missing is the visual to create/select boards, like Gitlab has. It would be really useful to be able to create boards for multiple teams.

@rudineirk Were you able to work on this?

I would like to see this happen, too! It would enable many small teams to directly and primarily work with gitea instead of struggling with external and possibly hard to set up tools like Taiga.io, etc.
With external tools things like linking commits to issues etc. is likely not possible, that's a huge bonus of this approach! (Being able to just mention the issue ID in your commit to make it appear in the issue/ticket is pretty cool :)

I am really interested about this feature as our team is currently using https://taiga.io/ but the real value is to have an inregrated issue tracker with kanban/scrum planning functionality.

I think that there is a lot of things to learn from GitHub implementation which originally started exactly like gitea. Their implementation is generic enough to allow users to use it for both scrums and kanbans even it it has no idea what a sprint is. If people can define columns and drag and drop cards they will likely find a way to do the planning with it.

Lodging my agreement here that Kanban style boards would be excellent. No one has yet mentioned Zenhub, which provides several of these features (and more) "over the top" of Github.

Here are the things that I think would be really useful:

  • Kanban view of issues – this view would be almost entirely a UI, probably would need some DB interaction for tracking the column and order of an issue in a column)
  • Gantt charts – Gitea already provides issue due dates and dependencies as well as milestones, meaning all the data is there to generate a Gantt chart, I think this would be a really helpful feature. There are libraries like mermaidjs or React Google Charts which would seem to have a reasonable integration cost. Note that #7405 would be helpful for this too.
  • Organization Milestones – This is probably the easiest to implement, but just like we have the "Issues" (/issues) feature at the top of Gitea, a Milestones feature would be nice. In other words, if I could see all milestones that I'm related to that would be really cool. Currently, I can only view milestones within a single project.

Undoubtedly, each of those would be a feature in their own right. Maybe this combined thread needs split into the individual features/components?

Edit: someone is working on a zenhub like Chrome plugin for gitea at https://github.com/funktechno/git-kanban-enhanced-chrome-extension .

@adelowo has a branch over here that people might want to check in on. I'm quite hopeful for what he's hacking on.

I'd love to see more PM type tools make their way into gitea given the simplicity of hosting an instance, however I'd be extremely happy just to be able to do workboards in gitea over the next year or so. I think if people want to hit PM stuff hard they can turn to taiga or alternatives right now and be _happy enough_.

Yup, the diff can be viewed here https://github.com/go-gitea/gitea/compare/master...adelowo:kanban_board?expand=1

@adelowo when we could see a PR ?

In about 8-10 days

@adelowo i got a 500 if it try to get _localhost/user/project_/projects (by your menu):

2019/09/12 10:30:44 ...ers/repo/projects.go:62:Projects() [E] GetProjects: no such table: project

looks like the database bootstrap does not work yet @ version e7cf2b77afe50b5818c52405364faf3c914b9e63

That is weird the migrations are there. Can you run gitea migrate?

https://github.com/adelowo/gitea/blob/kanban_board/models/migrations/v95.go

Nothing special shown up:

2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column email_notifications_preference db default is ''enabled'', struct default is 'enabled'
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column passwd_hash_algo db default is ''pbkdf2'', struct default is 'pbkdf2'
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column diff_view_style db default is '''', struct default is ''
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column theme db default is '''', struct default is ''

But:

# sqlite3 data/gitea.db .schema | grep proj
CREATE TABLE `repository` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `owner_id` INTEGER NULL, `lower_name` TEXT NOT NULL, `name` TEXT NOT NULL, `description` TEXT NULL, `website` TEXT NULL, `original_url` TEXT NULL, `default_branch` TEXT NULL, `num_watches` INTEGER NULL, `num_stars` INTEGER NULL, `num_forks` INTEGER NULL, `num_issues` INTEGER NULL, `num_closed_issues` INTEGER NULL, `num_pulls` INTEGER NULL, `num_closed_pulls` INTEGER NULL, `num_milestones` INTEGER DEFAULT 0 NOT NULL, `num_closed_milestones` INTEGER DEFAULT 0 NOT NULL, `num_projects` INTEGER DEFAULT 0 NOT NULL, `num_closed_projects` INTEGER DEFAULT 0 NOT NULL, `is_private` INTEGER NULL, `is_empty` INTEGER NULL, `is_archived` INTEGER NULL, `is_mirror` INTEGER NULL, `is_fork` INTEGER DEFAULT 0 NOT NULL, `fork_id` INTEGER NULL, `size` INTEGER DEFAULT 0 NOT NULL, `is_fsck_enabled` INTEGER DEFAULT 1 NOT NULL, `close_issues_via_commit_in_any_branch` INTEGER DEFAULT 0 NOT NULL, `topics` TEXT NULL, `avatar` TEXT NULL, `created_unix` INTEGER NULL, `updated_unix` INTEGER NULL);
CREATE TABLE `issue` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `repo_id` INTEGER NULL, `index` INTEGER NULL, `poster_id` INTEGER NULL, `original_author` TEXT NULL, `original_author_id` INTEGER NULL, `name` TEXT NULL, `content` TEXT NULL, `milestone_id` INTEGER NULL, `project_id` INTEGER NULL, `priority` INTEGER NULL, `is_closed` INTEGER NULL, `is_pull` INTEGER NULL, `num_comments` INTEGER NULL, `ref` TEXT NULL, `deadline_unix` INTEGER NULL, `created_unix` INTEGER NULL, `updated_unix` INTEGER NULL, `closed_unix` INTEGER NULL, `is_locked` INTEGER DEFAULT 0 NOT NULL);
CREATE INDEX `IDX_issue_project_id` ON `issue` (`project_id`);

Works for me, thx - here some small issues:

High Prio:

  • [ ] Move Issues between Boards
  • [x] add Project to current Issue
  • [x] view project

- [x] create project

Medium Prio:

  • [ ] Projects icon (ATM the same then MergeRequest)
  • [ ] create Issue during viewing project
  • [ ] select project during create Issue

Low Prio:

  • [ ] rename Board
  • [ ] add Board
  • [ ] remove Board
  • [ ] move Board
  • [ ] drop Label | Milestone in beside Search
  • [ ] search for Issue to add them to Project (untested)

Issues can be moved across boards though.

Thanks for this list. Projects can now be selected when creating an issue. Kindly pull latest

https://github.com/go-gitea/gitea/commit/c55d44e0233f46094fbebd33feac82e5072e1ba7

Issues can be moved across boards though.

does not stored, a reload reset it to Uncategorized


Projects can now be selected when creating an issue.

Does not show list of project

Hmm, I will take a look again. Let’s move feature discussion to the PR so it is all in one place.

Thanks

zero value comment: can't wait for this to happen, :shipit: :rocket: :four_leaf_clover:

Please help to try #8346 and give more advices.

Is there an update on this issue? (It's been a month since last post.)

EDIT: I didn't realize that some people (like @storrgie) could be offended by people being interested in their work. I didn't mean to offend anybody.

@tinxx you either:

  • build the PR that is linked just above and provide feedback in the actual PR
  • figure out a way to financially motivate people to work on this (e.g. contact @adelowo directly for a donation or do something like bountysource to get more eyes on it)

you don't clamor for work to be done when you're not financially or intellectually contributing, that's toxic in open source.

Jetbrains just released new version of YouTrack with gitea intergration

@adelowo any news?

Another suggestion in the meantime: kanboard

It is not exactly an eye candy (out of the box) but it is fast and offers enough features to be very useful.

Askers: Please have a look at the PR. Seems like it's not so far away :wink:

Yeah @gsantner . Just a few UI fixes left. Which I should get to this weekend

@adelowo any news on when will this be available?

@zuhairamahdi it is planned to be released in 1.12.0. see #8346 PR for more.

Is there any Interest ho have a issue on multible projects and/or boards ?

https://github.com/go-gitea/gitea/pull/8346#issuecomment-617175388

I do like the Gitlab approach of allowing to create scrum/kanban "boards" out of labels and turn them into a different view...nothing really changes, it's just a different view, but a very useful one IMHO.

I'm missing this feature too. Would be great if labels of an issue would update when you move them to different lanes / project boards. Changing labels and thus moving issues between lanes by actionable references in commit messages (i.e. Fixes #1) would be useful too.

@0xC4N1 Please send a new issue, I think we could have more improvements on this feature.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

junkb picture junkb  ·  51Comments

lunny picture lunny  ·  77Comments

ShalokShalom picture ShalokShalom  ·  77Comments

demonpig picture demonpig  ·  60Comments

andreynering picture andreynering  ·  49Comments