Problem/Motivation

Smaller, more concise Task creation screens woul allow them to be created more quickly and allow the UI to not look as cluttered. It would also allow subtasks to be created within the edit dialog of the Parent Task.

Proposed resolution

Task creation within a larger context (like inside a Board Column, or as a subtask of a parent) should use a simplified entry screen that just asks for the minimum data needed to create the entity.

  • Task name
  • Type of task. Defaults to "Task", or possibly a default bundle designated in /admin/structure/burndown_task_type

All other contextual data (Project, Status, Priority, StartDate, EndDate) can be passed in the POST when available.

After task creation, User can click on the new link/card to edit further details or add child tasks in the a full editing dialog if necessary.

Screenshots from another app are included here as examples:

Adding subtask to parent Screenshot

	Adding a task to workflow column

Comments

adarkling created an issue. See original summary.

swirt’s picture

I do like the idea of being able to add child tasks while in the parent. Making it a bit more like managing an epic. The rest of this is a bit muddy for me. In what displays would we want "quick add" to be the default and when would we want the full add. Could most of the speed concern you are raising be addressed simply by modifying the order of the fields on "manage form"?

The quick add would encourage creation of context-less tasks that require people to decipher later (been there, didn't like it ;) ).

adarkling’s picture

"Quick Add" would always be the default. But it is never without contextual data. That has to be enforced.
The current Add dialog would become the Edit dialog.

After checking the documentation for a few apps, the consensus is that a Task is never added on its own. Its always inside a larger context, so all required data will already be available to it. The flow is thus:

  1. The Task is created and saved using a minimal form. Task Type, Title, and sometimes Status (Swimlane) is specified by the User;
  2. A Row/Card appears on the list, showing the new Task;
  3. Then that Task/Card can be clicked to appear in edit mode. Here you see the entire editing form. All other data can be filled in. Child Tasks can now be created on this form because their ParentId is now available.

Step 3 usually will not be necessary. Typically, most Tasks entered just have Titles. Especially if they're not complex.

In Burndown's case, it would not be triggered anyplace else than the following 2 types of places:

  1. Nested inside a full parent Task Form, so Child Tasks can be easily created;
    • "project" would be inherited from the parent entity;
    • "priority", would be inherited from the parent entity;
    • "relationships" would be a pointer back to the parent entity;
    • "swimlane" would default to Backlog , but can also be set to any status on the list, as depicted above;
    • TaskType could either be selected or not. I don't know what the consensus is on nesting Epics and such for Project Management. People seem to treat it as an added feature.
  2. At the end of each list of cards on "Backlog", "Board" or "Completed" swimlanes, where User wants to quickly create a Task on a Swimlane that is already happening.
    • the "+ Create" link would trigger the minimodal (see the example image above);
    • "project" would already be known and specified.
    • "swimlane" would be set to whatever swimlane the "+ Create" link was in. A selection list for this should not be visible.
    • TaskType would be selectable.

There is another hypothetical use case such as a Trouble Ticketing system where someone might want Users to enter the full editing form. That would be better served by the WebForm module. Then the Ticket Task can be filled properly and assigned by the Project maintainer.

swirt’s picture

Issue summary: View changes

I am not sure I agree with the few of the "consensus" items here. For context, as a Tech Lead I have spent close to two decades in Jira and use it daily but have also used Trello, Zenhub, and Taiga.

After checking the documentation for a few apps, the consensus is that a Task is never added on its own.

I add a lot of tickets that are not part of an epic. So there are many that I create that are "on their own".

The workflow you are describing of creating a simple version of a task and then having to go find it in the backlog to add detail to it is not one that saves me any time.

Step 3 usually will not be necessary. Typically, most Tasks entered just have Titles. Especially if they're not complex.

That just not match with the reality I live. I have not seen a project yet that does well with only titles for tasks. Not only do I not create tasks like that, I would be disappointed in any engineer I worked with that created tickets like that.

When I click the "Create" button in Jira, I get the full ticket form. The only place I get the mini "Add a ticket" is when I am in an epic, adding the childrent.

At the end of each list of cards on "Backlog", "Board" or "Completed" swimlanes, where User wants to quickly create a Task on a Swimlane that is already happening.

If you have columns/swimlanes for "To Do", "In progress", "QA" and "Release" why would we want to create an interface that supports birthing a new card in QA or Release without ? I can see having a choice to create it in the backlog, or promoted directly to the active board, but I don't understand why we'd want a quick way to circumvent the motion of the board... unless we are trying to create something more like an idea board or a retro board than a sprint or kanban board. This is something that could be done in the full task edit form if needed, exposing the column field in the form allows you to create position it wherever the task belongs. Adding multiple buttons to a board to enable this...I am not yet convinced it is worth the effort to build that or the screen real-estate it will take up.

adarkling’s picture

I add a lot of tickets that are not part of an epic. So there are many that I create that are "on their own".

I see that I wasn't clear. "on their own" meant on the screens outside the Projects or Spaces, not as a child of another Task.
I see that I'm incorrect on that, though. I never used or noticed the "+ Create" tag up top next to the Search Bar. The training docs that I used directed us to navigate directly to the Project/Space and use the "+ Create" links in the swimlanes.

That just not match with the reality I live. I have not seen a project yet that does well with only titles for tasks. Not only do I not create tasks like that, I would be disappointed in any engineer I worked with that created tickets like that.

That's why I said "especially if they're not complex." I entirely get your perspective as an senior engineer. However, I'm thinking about it from the perspective of a business manager, organization admin, or a user that just wants to organize their personal life. "Fix the entry lock", "Fire Kate", "Take dog to the vet" don't require anything but the title unless weird stuff happens.

The workflow you are describing of creating a simple version of a task and then having to go find it in the backlog to add detail to it is not one that saves me any time.

Play around with it in JIRA. Its more of a nested form than a modal that floats above. I labeled it incorrectly in the title. When you press "Enter" the card is still under your cursor. You don't have to go look for it.

I can see having a choice to create it in the backlog, or promoted directly to the active board, but I don't understand why we'd want a quick way to circumvent the motion of the board

Some Users' main reason to use the module is to offload these lists that they're keeping in their head. Some of these items have already started when they came to the module. Some have already been completed, and they'd like to make a note of that.

Some Users are also not near a computer for most of the day, so the motion of the board isn't being circumvented. It just hasn't caught up to Life. And that has to happen fast, because it's 3AM and the new day starts in a few hours.

I'm starting to see the need of User Stories. I keep them in my head, 'cause I usually work alone and don't like the extra writing. Would it be helpful if I opened some Issues as Stories?

Also, regarding the "+ Create" links in the swimlanes -- the above example images are from JIRA's Kanban Template. Do you not have the "+ Create" links in the swimlanes on your boards?

swirt’s picture

Had me laughing at 'Fire Kate'. 😄 It did help me get out of my own context/persona and understand yours.

I think user stories can be very helpful on issues, especially on a module like this where there are so many varied ways that people might be using it. An issue could have multiple user stories based on the personas we are considering. The resulting changes come out of trying to satisfy most of the personas.

jeremylichtman’s picture

Would it make sense to have a new board type (i.e. kanban, sprint, simplified) for this?

It seems like this is for a somewhat different use-case than the other two, which pertain to specific ways of managing projects (typically software ones), and which need functionality to support either kanban or sprint flows.

A simplified flow wouldn't bother with a separate backlog, for instance. Tasks would be created on the board and would appear in the initial column (i.e. To Do), and would be manually moved across columns. The final "done" column would be on the board. Closing the task would move it off the board into a completed board (or it could just be left on the board). The add/edit task forms would be stripped of anything not needed for a highly simplified workflow.

swirt’s picture

The additional type is not a bad idea... but the overhead and tech debt of it seems less than ideal. Especially when this module is so flexible already that a person wishing to have a simple board could do the following, and end up with pretty much the same thing being described:

  1. Create a new project called "Simple Project"
  2. Create a simple columns "to do", "doing", "done"
  3. Create new task type "Simple Task"
  4. Make the edit form show only Title, Description, Column, and any other minimal fields they want.

I guess the only thing missing would be "Bypass the backlog and go straight to board".... though we could probably add that as a Task type setting??? so that people could choose that behavior if they needed it for simplicity.

adarkling’s picture

I don't know if "Backlog" in Project management is a new concept, or if the self-help Time Management Gurus just decided to skip it. I've only learned of it recently, and I'm starting to appreciate it more and more.

The "To Do" "In Progress" and "Done" structure of the traditional Kanban Board seems too overwhelming in full use, where you have 300+ items in the "To Do" column.
Just for you.
Not a team.
You know most of that list can't be touched for at least a year, and you're reminded of that fact every time you scan it, even though you're just looking for what to do next today.

In my eyes, having the Backlog on a separate screen allows me to peruse, maintain and pick from those when I want to. Not every time I look at the Kanban Board.

It also helps that its presented in the more information-dense List format, which allows visual scanning and picking to be done more efficiently.

All of this to say that I like it the way you've done it here, with the modification we're discussing. Let lower-level users use just the Kanban Board. Enter and move things there. They can expand to utilizing the Backlog when they realize its value.

jeremylichtman’s picture

I think I have a solution that meets the original story of this ticket without drastic modifications.

1. We already can edit the form, so that part is okay (unless we want to add support for custom view modes).
2. We could add a series of optional fields to the project entity that represent default values for a number of ticket fields (regardless of whether displayed). That way, somebody would have a lot of flexibility with regards to how they set up their projects, and how new tickets would be configured by default.