aymenhs / kanbanik

Automatically exported from code.google.com/p/kanbanik
Apache License 2.0
0 stars 0 forks source link

Enhancement: Archive Tasks #27

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I would like to see a feature to archive tasks.

My current idea would be something like the following.

 * Each task has an archive button which removes it from the board but does not delete it
 * There is a seperate ListView of all archived tasks.

I think this would be great because it combines a tidy board with the 
possibility of seeing the past acitivities.

In the future this could also be combined with a time tracking feature to see 
the time the task took from creation to archivation. 

Original issue reported on code.google.com by fredroth...@gmail.com on 3 Jun 2013 at 7:30

GoogleCodeExporter commented 9 years ago
Hi,

thank you for this input, you have opened two quite important and complex 
topics! I was thinking about this for some time - let me share my thoughts on 
this with you.

== About the archive itself ==

Kanbanik will never be a completely standalone application so it does not need 
to implement each feature we need. What it needs is an API to connect it with 
something what can do this task well (better than Kanbanik would ever do). 
There are lots of quite good issue trackers around so if Kanbanik would be 
connected to them the need to have this archive would not really exist any more.

On the other hand, I like if the application is simple and usable without some 
hacking after installation. The need to install some issue tracker and write 
some code which connects it to the Kanbanik is far too complex and I can not 
expect anyone to do it right after the first installation.

This means that Kanbanik needs both a reasonable fallback (simple archive) and 
a good API - following the principle simple things are done simply (simple 
archive) complex things are possible (write the integration with some issue 
tracker).

I would say that currently Kanbanik is still used only by early adopters which 
don't have a problem to write some scripts to do a simple export of one column 
to the issue tracker (and are happy to do that :) ). And don't need much more - 
otherwise they would use some commercial tool. But they need the API. There is 
a task (http://code.google.com/p/kanbanik/issues/detail?id=23) which I plan to 
do after the work on the current release will be done which will bring the API 
and adjusts the frontend to use it. This has a quite high priority to me.

But from longer perspective, the archive would be awesome to have - but only a 
minimalistic one for simple use cases. Not spend too much time on doing it too 
sophisticated, because this is not a primary goal of a board (think of a 
physical board Kanbanik is emulating).

== About the time tracking ==

I was thinking of implementing the Event Sourcing pattern to do this task 
(http://martinfowler.com/eaaDev/EventSourcing.html). It would be great because 
as a result we could mine any information from this including:
- restore the state of the board to any state in past
- play back from that state like a movie
- do any kind of statistics not only defined by Kanbanik even between columns 
which don't exist any more
- start doing statistics on entities which started to exists after some update 
(e.g. on some marks on tasks like "blocked" which are not yet there)
etc etc.

We could even generate the archive from this collection of events! I would say 
that this is the answer on how to implement the archive.

== "Conclusion" ==

But lets get back to the ground and face the facts. I'm still doing this alone 
in my spare time which is limited. Implementing event sourcing with parsing the 
events to archive list and statistics etc would be really cool to implement, 
but Kanbanik still misses couple of pretty boring but necessary features which 
all Kanban board should have:
- API (!!!!)
- marks (or tags) on tasks
- some intelligent way how to align your boards view if you have more than one 
board
- handy features like "ctrl + click" and than delete or move this batch of tasks
- server push of events (like task moved by one user and all will see it 
instantly)
- and I'm not even mentioning the tasks currently under development (and close 
to done) like editable task type, user picture, fixed delivery date with some 
useful visualization etc. 

So, I think that the key is the API and the boring tasks I mentioned. API can 
be than used both to archive tasks (to some issue tracker or even to excel 
sheet) or do statistics from them and the boring tasks will make the user 
experience good enough to motivate the user to write the scripts.

But this are only my current thoughts and they are changing ~once a month :) 

Sorry for writing this unusual blog post like comment. What do you think?

Original comment by jelkosz@gmail.com on 7 Jun 2013 at 7:04

GoogleCodeExporter commented 9 years ago
I think the API idea is definitely the best solution to archiving. I'm looking 
forward to that (not too much forward to hacking our mantis to connect it).

The time tracking idea with Event Sourcing seems really neat!

But I see that there is also a lot of other stuff to do... We should clone you 
;)

Original comment by fredroth...@gmail.com on 17 Jun 2013 at 6:25