# Empty
# Create the tibble tib.all <- finmetrics::get.FilteredTibble(here::here("inst/extdata", "opics_delivery.csv"), date_from = Sys.Date() - months(18)) tib.anom <- anomalities(tib.all, action = 'SELECT') tib.all <- anomalities(tib.all, action = 'REJECT') tib.all$Priority <- factor(tib.all$Priority, levels=c("Critical", "High", "Medium", "Low", "None"), ordered = TRUE) tib <- tib.all %>% finmetrics::exclude.OpenCases() %>% finmetrics::compute.CycleTime() %>% finmetrics::compute.Week() # Taking a one year subset after calculating cycle time for 18 months. tib <- tib %>% filter(crdt > Sys.Date() - months(18)) # Collecting only stories, filtering out abnormalities stories.closed <- tib %>% filter(cldt > crdt) %>% filter(Type == "Story") # Collecting only Epics, filtering out abnormalities epics.closed <- tib %>% filter(cldt > crdt) %>% filter(Type == "Epic")
The below Five-number summary will provide a high level distribution of the cycle times. The 75% Qartile value is significant because that is the number which you can typically see as the turn around time (TAT) to service a work item.
tabulate.TypeAndPriorityBasedCycleTimeStat(tib)
loess_plot.CycleTimeTrend(epics.closed, col_date="crdt")
# tabulate.PriorityBasedCycleTimeStat(epics.closed) tabulate.TypeAndPriorityBasedCycleTimeStat(epics.closed)
loess_plot.CycleTimeTrend(stories.closed, col_date="crdt")
#tabulate.PriorityBasedCycleTimeStat(stories.closed) tabulate.TypeAndPriorityBasedCycleTimeStat(stories.closed)
line_plot.NumClosed_For_FloorDate( gen_ds.NumClosed_For_FloorDate(epics.closed) )
The plot below shows the number of epics closed in every week, marked separately in different color based on priority
bar_plot.NumClosed_For_FloorDate( gen_ds.NumClosed_For_FloorDate(epics.closed, priority_based=TRUE), data_values = TRUE )
Tells us the number of work items (stories) completed aggregated for each week which is an indication of how stable the throughput is.
line_plot.NumClosed_For_FloorDate( gen_ds.NumClosed_For_FloorDate(stories.closed), show_trend = TRUE )
The plot below shows the number of stories closed in every week, marked separately in different color based on priority
bar_plot.NumClosed_For_FloorDate( gen_ds.NumClosed_For_FloorDate(stories.closed, priority_based=TRUE), data_values = TRUE )
Gives and indication of the densities especially the occurrence of multiple maxima in the data. This can be due to multiple categories of work items which may be investigated further.
stories.closed %>% violin_plot.CycleTimeVsPriority()
tib_epics_work_in_progress <- tib.all %>% dplyr::filter(Type == 'Epic') %>% finmetrics::compute.WIP()
areaPlot.WiP(tib_epics_work_in_progress)
tib_stories_work_in_progress <- tib.all %>% dplyr::filter(Type == 'Story') %>% finmetrics::compute.WIP()
areaPlot.WiP(tib_stories_work_in_progress)
flow.epics.merged <- tib.all %>% get.InflowOutflowTibble.Epic(include_priority = TRUE) bar_plot.InflowOutflow(flow.epics.merged)
line_plot.InflowOutflow.CumSum(flow.epics.merged)
line_plotly.InflowOutflow.CumSum(flow.epics.merged)
DT::datatable(flow.epics.merged, filter='top')
flow.stories.merged <- tib.all %>% get.InflowOutflowTibble.Story(include_priority = TRUE) bar_plot.InflowOutflow(flow.stories.merged, data_values = TRUE)
line_plot.InflowOutflow.CumSum(flow.stories.merged)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.