- During the end of 2014 I found that the Gantt Chart by TaskJuggler was a struggle to really achieve any decent task management with (fine for higher level overviews though).
- I had been following the approach described at this link
- I decided to code up an alternative based on the theory explained on this link
Project Management Graphics (or Gantt Charts), by Edward Tufte
Computer screens are generally too small for an overview of big
serious projects. Horizontal and vertical scrolling are necessary to
see more than about 40 horizontal time lines for a reasonable period
of time. Thus, for large projects, print out the sequence on a big
roll of paper and put it up on a wall.
The chart might be retrospective as well as prospective. That is, the
chart should show actualdates of achieved goals, evidence which will
continuously reinforce a reality principle on the mythical future
dates of goal achievement.
Most of the Gantt charts are analytically thin, too simple, and lack
substantive detail. The charts should be more intense. At a minimum,
the charts should be annotated--for example, with to-do lists at
particular points on the grid. Costs might also be included in
appropriate cells of the table.
About half the charts show their thin data in heavy grid prisons. For
these charts the main visual statement is the administrative grid
prison, not the actual tasks contained by the grid. No explicitly
expressed grid is necessary--or use the ghost-grid graph
paper. Degrid!
The Results:
I used the example for a fictional Journal Paper submission from my favourite reference for anything to do with Project Management:
Aragon, T., Mier, H. M., Payauys, T., & Siador, C. (2012).
Project Management for Health Professionals. [http://www.academia.edu/1746564/Project_Management_for_Health_Professionals](http://www.academia.edu/1746564/Project_Management_for_Health_Professionals)
With the following results (PS SVG format allows you to zoom in).
The codes:
library(disentangle)
library(sqldf)
library(lubridate)
datin <- read.csv(
textConnection("
container_task_title , task_id , allocated , fte , blocker , start_date , effort , status , notes
01 Start , Start , ivan , 1 , NA , 2015-03-15 , 1d , DONE , NA
02 Update Lit Review , Repeat MEDLINE search , ivan , 1 , Start , 2015-03-16 , 5d , DONE , NA
02 Update Lit Review , Retrieve articles , ivan , 1 , Repeat MEDLINE search , NA , 5d , DONE , NA
02 Update Lit Review , Read articles , ivan , 1 , , 2015-03-26 , 11d , DONE ,
02 Update Lit Review , Summarize articles , ivan , 1 , , 2015-04-06 , 9d , TODO ,
03 Write Draft , Write introduction , ivan , 1 , , 2015-04-09 , 6d , TODO ,
03 Write Draft , Write methods , ivan , 1 , Start , , 15d , TODO ,
03 Write Draft , Write results , ivan , 1 , , 2015-03-30 , 10d , TODO ,
03 Write Draft , Write discussion , ivan , 1 , , 2015-04-15 , 10d , TODO ,
04 Internal Review , Send to co-author for review , ivan , 1 , Write discussion , , 2d , TODO ,
04 Internal Review , Revise draft 1 , ivan , 1 , , 2015-04-19 , 10d , TODO ,
05 Peer Review , Submit article 1 , ivan , 1 , Revise draft 1 , , 5d , TODO ,
06 Revise and Resubmit, Revise draft 2 , ivan , 1 , , 2015-04-30 , 10d , TODO ,
06 Revise and Resubmit, Submit article 2 , ivan , 1 , Revise draft 2 , , 5d , TODO ,
07 End , Accepted , ivan , 1 , , 2015-05-15 , 1d , TODO ,
"),
stringsAsFactor = F, strip.white = T)
# or
# datin <- get_gantt_data("gantt_todo", test_data = T) # need to
# adjust min_context_xrange to 2015-01-01 or something
datin$start_date <- as.Date(datin$start_date)
str(datin)
datin
dat_out <- gantt_data_prep(dat_in = datin)
str(dat_out)
dat_out
svg("tests/gantt_tufte_test.svg",height=10,width=8)
gantt_tufte(dat_out, focal_date = "2015-04-13", time_box = 3*7,
min_context_xrange = "2015-03-16",
cex_context_ylab = 0.65, cex_context_xlab = .7,
cex_detail_ylab = 0.9, cex_detail_xlab = .4,
show_today = F)
dev.off()