emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Sébastien Gendre" <seb@k-7.ch>
To: "Dr. Arne Babenhauserheide" <arne_bab@web.de>
Cc: emacs-orgmode@gnu.org
Subject: Re: How do you manage complex project with Org-mode
Date: Wed, 02 Mar 2022 21:00:15 +0100	[thread overview]
Message-ID: <87h78gt7ti.fsf@k-7.ch> (raw)
In-Reply-To: <87fso2awqa.fsf@web.de>

Hello Arne,

Thank you for your reply and advice. :)

"Dr. Arne Babenhauserheide" <arne_bab@web.de> writes:
> Do I understand it right that what you need is to track the time
> required to reach milestones, not following the *progress*?

Well, what I want by "follow the progress" is to see:

* How many work I have done
* How many work remains to be done
* How many time left
* How many time other project need

I want to avoid spending to much time on a project sufficiently finished
to the detriment of another project. Or, if no project can be finished,
do enough of work to have a not so bad grade.

As you suggest, having milestone with their own deadline seems to be a
great idea. A better idea that having one big task for representing an
entire project (like I wanted to do). I will try using effort
estimation. But I will avoid customizing too much Org-mode. In the past,
I ended up several times with a too much complex workflow.

I think I will make a "Project" workflow. Something simple:

* Each project is a headline with the status "PROJECT"
* Each project have the deadline defined by the school work deadline
* Each project have a complete description with every info needed to work
* Each project have one or many tasks (as sub headlines with a status)
* Each task have a importance, time and effort estimation
* Each task have its own deadline, distributed along the remaining time
* When I set a task deadline, I look at its estimations and also other projects tasks
* To create a new project, I use Org-capture with a template

Every time I create a new project, it start with one task: "Planning the
project". With a deadline at 2 days max. The description of this task is
a checkbox list of thing to do when planning the project.

And finally, 2 times per week, I got a repetitive task: "Review the
projects progress". With this, I should be able to adjust spending time
and effort.

I think it would be simple and need only a few Org-mode configurations.
And by doing like that, every time I look at the agenda, I will see what
work I need to do every days. Task of each project or review of all
projects.



"Dr. Arne Babenhauserheide" <arne_bab@web.de> writes:

> [[PGP Signed Part:Undecided]]
> Hello Seb,
>
> It sounds like org-mode can be a great fit.
>
> Sébastien Gendre <seb@k-7.ch> writes:
>> But, as a student, I regularly have big and important projects to do for
>> the school. The kind of project who need several days to be done, with
>> deadlines too soon, and if you fail one them the consequences can be
>> disastrous. And generally, I have to many of these project in the same
>> time and not enough time to do all the work. So, I also need to follow
>> the progress of each project to choose which is sufficiently advanced to
>> be stop for the benefit of another less advanced project.
>
> Do I understand it right that what you need is to track the time
> required to reach milestones, not following the *progress*? So following
> progress seems like it would take more mental bandwidth than needed.
>
> You could have one org-mode task (headline) per milestone, with a
> DEADLINE (org-deadline), and then SCHEDULE (org-schedule) appointments.
>
> To track how much time you will still need, you can use org-set-effort.
> I did that at work for a while to train to get better at estimating. By
> having the effort in a clocktable I could see progress *when needed*.
> Hitting R in the org-agenda shows the clockreport-mode and you can see
> the Effort in the agenda by setting
> (org-agenda-clockreport-parameter-plist (quote (:link t :maxlevel 2
> :properties ("Effort")))). For a while I had the clocktable active by
> default.
>
> You can also add that to the column-mode (org-columns) to get a quick
> overview for a file (leave with org-columns-quit). Customize:
> (org-columns-default-format
>    "%25ITEM %TODO %3PRIORITY %TAGS %17Effort(Estimated Effort){:} %CLOCKSUM")
>
>> And I don't know how to manage this kind of projects with Org-mode. How
>> to do it, without failing a 6 days project because I spent to much time
>> on something else and I have only 3 days left with 3 half-day important
>> appointment I cannot cancel. I can't risk failing a single one of these
>> project by trying. So, when I am in a period with a lot of these
>> projects, I stop using Org-mode and concentrate on doing these project
>> as fast as I can. And because I often have this kind of project, I spend
>> most of the year without being able to use Org-mode.
>
> I found that org-mode is the only organization tool for which using the
> tool actually reduces the time I need for organization. That works by
> taking notes in org-mode, too, and keeping it simple.
>
> What I do:
>
> ** Custom starting point: agenda-with-kanban
>   A function to show the agenda it besides the Kanban table. I start
>   each day and after each larger break by hitting F12. It shows me the
>   agenda and entry points into my work. This enables me to stay focussed.
>
> ** One planning file
>   I have a single file for all my tasks. That keeps working
>   surprisingly long. Once a year or so it needs some cleanup to become
>   faster again.
>
> ** Kanban Table at the top
>   I have a kanban table. It shows as most important information the
>   tasks I am doing right now. If I am doing more than three work-tasks
>   at the same time, it’s warning sign that I’m becoming inefficient.
>   With this I start every day in org-mode by clicking on the link of the
>   project from the kanban table to get to its notes (which I also track
>   in org-mode). See
>   https://www.draketo.de/light/english/free-software/el-kanban-org-table
>   → https://hg.sr.ht/~arnebab/kanban.el
>
> ** Capture tasks for Projects
>   Projects have as many tasks as I need to track. At work they are
>   usually Stories (3-5 days). Nowadays I create new tasks by using
>   org-capture templates with one template per larger project and one for
>   bugs, but I used to just use two templates (which might be a
>   better fit for you):
>   - (i) task to start immediately and
>   - (l) task to start later
>
> ** Setup
>
> (with-eval-after-load 'org
>   (setq org-agenda-custom-commands
>         '(("o" "Agenda and TODOs"
>            ((agenda) ; nil ((org-agenda-compact-blocks nil)(org-agenda-block-separator ?-)(org-agenda-overriding-header "")))
>             (tags-todo "-notodo-TERMIN" ((org-agenda-block-separator ?-)))
> 	        (tags "KANBAN" ((org-agenda-block-separator ?-)
>                             (org-agenda-compact-blocks nil)
>                             (org-agenda-overriding-header ""))))))))
>   (defun my/org-agenda-show-kanban ()
>   (interactive)
>   (save-excursion
>     (search-forward ":KANBAN:")
>     (org-agenda-goto)
>     (org-narrow-to-subtree)
>     (show-all)
>     (fit-window-to-buffer)
>     (widen)
>     (recenter-top-bottom 0)))
>
> (defun agenda-and-todo ()
>   (interactive)
>   (org-agenda nil "o")
>   (delete-other-windows)
>   (my/org-agenda-show-kanban)
> ;;      desktop systemsettings shortcuts: map f12 to
> ;;        emacsclient -e '(progn (show-frame)(agenda-and-todo))'
> (global-set-key (kbd "<f12>") 'agenda-and-todo)
>
>
>
>> So, if you have any suggestion on how to manage, in Org-mode, projects
>> with:
>> * Lot of work to do (many days)
>> * Short deadline (not enough time)
>
> This is something to fix. Also outside org. Always feeling like having
> to catch-up can burn you out otherwise.
>
> As an analogy: Even if you have to sprint sometimes, what you really
> want to do is to take a brisk walk, so you can still talk to your fellow
> students and think about the best way to address the tasks — do things
> well thought-out.
>
>> * High importance (disastrous consequences in my future in case of fail)
>> * Many of them in the same time
>> * Progression need to be followed to chose where to sacrifice time to
>>   limit the damages
>
> Ideally have a plan beforehand which things to drop when time becomes
> tight. For example tag them or such. These are optional, otherwise you
> could not drop them when times becomes tight.
>
>
>
> (also I have a nicer clocktable layout so level2-entries look good:
>
> ;; nicer org clocktable layout
> (defun my-org-clocktable-indent-string (level)
>   (if (= level 1)
>       ""
>     (let ((str "└"))
>       (while (> level 2)
>         (setq level (1- level)
>               str (concat str "──")))
>       (concat str "─> "))))
> (advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)
> )
>
> Here’s the relevant part of my org-agenda setup:
>
> (use-package org-agenda
>   :defer 8
>   :custom
>   ;; provide desktop alerts, so I can have appointments in org-mode, too
>   (alert-default-style 'libnotify)
>   (appt-disp-window-function 'alert-for-appt)
>   (org-agenda-include-diary t)
>   (appt-delete-window-function (lambda ()))
>   (org-agenda-clockreport-parameter-plist (quote (:link t :maxlevel 2 :properties ("Effort"))))
>   (org-columns-default-format
>    "%25ITEM %TODO %3PRIORITY %TAGS %17Effort(Estimated Effort){:} %CLOCKSUM")
>   (org-global-properties
>    '(("Effort_ALL" . "0:30 1:00 2:00 3:00 6:00 8:00 16:00 40:00")))
>   (org-agenda-start-with-clockreport-mode t)
>   :config
>   ;; Rebuild the reminders everytime the agenda is displayed
>   (add-hook 'org-agenda-finalize-hook (lambda () (org-agenda-to-appt t)))
>   ;; Run once when Emacs starts
>   (org-agenda-to-appt t)
>   ;; Activate appointments so we get notifications
>   (appt-activate t)
>   (defun appt-reparse-diary-file ()
>     "force reparsing the diary file"
>     (appt-check t))
>   (add-to-list 'midnight-hook 'appt-reparse-diary-file))
>
>
> Best wishes,
> Arne



  reply	other threads:[~2022-03-02 20:44 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-01  1:43 How do you manage complex project with Org-mode Sébastien Gendre
2022-03-01  4:03 ` Matt
2022-03-02 19:44   ` Sébastien Gendre
2022-03-01  6:43 ` Dr. Arne Babenhauserheide
2022-03-02 20:00   ` Sébastien Gendre [this message]
2022-10-08 19:53     ` Jean Louis
2022-03-01  7:12 ` Tim Cross
2022-03-02 20:33   ` Sébastien Gendre
2022-03-02 21:55     ` Tim Cross
2022-03-20  5:16       ` Ihor Radchenko
2022-03-20 21:24         ` Tim Cross
2022-03-21  9:25           ` Ihor Radchenko
2022-03-20  5:06     ` Ihor Radchenko
2022-03-01 19:26 ` Antonio Carlos Padoan Junior
2022-03-02 20:53   ` Sébastien Gendre
2022-03-01 21:06 ` Milan Zamazal
2022-03-02 20:58   ` Sébastien Gendre
2022-03-02 16:29 ` Quiliro Ordóñez
2022-03-02 21:05   ` Sébastien Gendre
2022-10-09  5:08     ` Jean Louis
2022-10-08 19:15 ` Jean Louis
2022-10-09  9:13   ` Christian Moe
  -- strict thread matches above, loose matches on Subject: below --
2022-03-01  4:38 Eric Abrahamsen
2022-03-02 21:26 ` Sébastien Gendre
2022-03-02 23:35   ` Eric Abrahamsen
2022-10-09  9:19 Payas Relekar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87h78gt7ti.fsf@k-7.ch \
    --to=seb@k-7.ch \
    --cc=arne_bab@web.de \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).