diff --git a/.gitignore b/.gitignore index 74c375c4..f501b280 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /build/www/** /src/test/javascript/coverage/ /worktrees/ +TODO-progress.png ###################### # Node diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..f959725d --- /dev/null +++ b/TODO.md @@ -0,0 +1,87 @@ + +## TODO + +This document is just for tracking the initial development project and thus only in German. + +### Kommunikative Aufwände + +| ID | Beschreibung | Budget | Aufwand | Leistung | +|:----|:------------------------------------------------------------|--------:|--------:|---------:| +| PRE | Vorbesprechungen bis inkl. KickOff-Meeting | 8 | 4 | 4 | +| PRJ | Zweiwöchige Projektbesprechungen | 12 | 2 | 2 | +| RET | Vierwöchige Retrospektiven (optional) | 6 | | | +| TRA | Einarbeitung von Mitarbeitern des Auftraggebers (Training) | 12 | | | +| E2E | Unterstützung beim Aufbau der E2E-System-Integrations-Tests | 40 | | | +| MIG | Unterstützung bei der Datenmigration | 16 | | | +| INS | Unterstützung ei der Inbetriebnahme / Einführung | 16 | | | +| APP | Abnahme (Approval) | 4 | | | +| SUP | Unterstützung nach der Abnahme (Support) | 12 | | | +| | | | | | + + +### Allgemeine Leistungen + +| ID | Beschreibung | Budget | Aufwand | Leistung | +|:----|:-----------------------------------------------------------|---------:|--------:|---------:| +| DEV | Aufbau der Entwicklungsumgebung (bis inkl. Unit-Tests) | 16 | 12 | 16 | +| ATN | Entwurf des Authorisierungs-Systems | 40 | 68 | 36 | +| ATZ | Auswahl und Implementierung des Authentifizierungs-Systems | 20 | | | +| ITS | Aufbau einer Umgebung für Integrationstests (*1) | 4 | 4 | 4 | +| ATS | Aufbau einer Umgebung für Akzeptanztests (*1) | 16 | 3 | | +| PIP | Aufbau einer Build- und Testpipeline | 20 | | | +| ARC | Aufbau einer Architekturkontrolle | 8 | 2 | 2 | +| | | | | | + +(*1: ITS+ATS sind aufgesplittet aus TST mit 20 geplanten Stunden entstanden) + +### Leistungen bezogen auf fachliche Objekte + +| ID | fachliches Objekt | Persona | Ops | Budget | Aufwand | Leistung | +|:----|:-----------------------|:---------------|:-------------|-------:|--------:|---------:| +| ROL | Rollen | Hostmaster | Scrulojtx | 26 | 10 | 5 | +| USR | LDAP-User | Hostmaster | Scrufojtex | 29 | 10 | 5 | +| USR | LDAP-User | LDAP-User | rufojex | 20 | 10 | | +| GRP | Gruppen | Hostmaster | scrulojtx | 26 | | | +| CBD | Customer Base | Sachbearbeiter | ScruLojia | 20 | 10 | 4 | +| CBD | Customer Base | Kunde | sr | 5 | 1 | | +| MSV | Managed Virtual Server | Hostmaster | crudfoj | 20 | | | +| MSV | Managed Virtual Server | Owner | rulojt | 15 | | | +| MWS | Managed Webspace | Hostmaster | scrudfojte | 26 | 2 | | +| MWS | Managed Webspace | Owner | srulojte | 18 | 1 | | +| MWS | Managed Websppace | Admin | srulojte | 6 | 1 | | +| ACC | Unix-Account | Owner | scrudfojte | 26 | 2 | | +| ACC | Unix-Account | Admin | sruloje | 15 | 1 | | +| DOM | Domain | Owner | (scrudfojte) | 9 | 1 | | +| DOM | Domain | Admin | (srle) | 3 | 1 | | +| EMA | E-Mail-Address | Owner | (scrudfojte) | 9 | 1 | | +| MAL | E-Mail-Alias | Owner | - | 0 | 1 | | +| DBP | Database Postgres | Owner | (scrudlojte) | 9 | | | +| DBP | Database Postgres | Admin | (srle) | 3 | | | +| DUP | Database-User Postgres | Admin | (scrudlojte) | 9 | | | +| DUP | Database-User Postgres | Admin | - | 0 | | | +| DBM | Database MariaDB | Owner | - | 0 | | | +| DBM | Database MariaDB | Admin | - | 0 | | | +| DUM | Database-User MariaDB | Admin | - | 0 | | | +| DUM | Database-User MariaDB | Admin | - | 9 | | | +| | | | | | | | + +**Ops Agenda**: **S**: Schema, **V**: View, **C**: Create, **R**: Read, **U**: Update, **D**: Delete, **L**: List, **F**: Filter, **O**: Optimistic Locking, **J**: Journal (Audit), **H**: Historization, **U**: Undo, **I**: Inactivate, **T**: Tombstone, **A**: Archive, **E**: Event, **X**: Extraordinary + + +### Wöchentlicher Status + + +![hsadmin-ng Projektfortschritt](TODO-progress.png) + +In der folgenden Tabelle sind Aufwand und Leistung akkumulierte Werte. + + +| Datum | Budget | Aufwand | Leistung | Verbleibend | +|------------|-------:|--------:|---------:|------------:| +| 2022-07-17 | 553 | 44 | 0 | 553 | +| 2022-07-24 | 553 | 8 | 0 | 553 | +| 2022-07-31 | 553 | 143 | 40 | 513 | +| 2022-08-04 | 553 | 147 | 78 | 475 | + + + diff --git a/tools/todo-progress b/tools/todo-progress new file mode 100755 index 00000000..43d57ca7 --- /dev/null +++ b/tools/todo-progress @@ -0,0 +1,33 @@ +#!/bin/bash +# check if required programs are installed +declare -a required=(gnuplot sponge) +for cmd in "${required[@]}"; do + command -v $cmd >/dev/null 2>&1 || { echo >&2 "Required '$cmd' not installed => aborting."; exit 1; } +done + +# calculate current values +let budget=`grep '^| ... |' ' >.todo-progress.md +sed -e '1,/todo-progress begin:/d' -e '/todo-progress end./,$d' TODO.md >>.todo-progress.md +if [ "$1" = "--recalculate" ]; then + echo "| $(date --iso-8601) | $(printf "%6d" $budget) | $(printf "%7d" $effort) | $(printf "%8d" $output) | $(printf "%11d" $remainder) |" >>.todo-progress.md +fi +echo '' >>.todo-progress.md + +# replace the generated todo-progress part +if [ "$1" = "--recalculate" ]; then + uniq <.todo-progress.md | sponge .todo-progress.md + sed -i -e '/todo-progress begin:/,/todo-progress end./!b' -e '/todo-progress end./!d;r .todo-progress.md' -e 'd' TODO.md +fi + +# re-generate progress chart +sed -e's/^|//' <.todo-progress.md | tr '|' ';' | grep ';' | grep -v -- '---' >.todo-progress.csv +gnuplot tools/todo-progress.gnuplot +rm .todo-progress.md .todo-progress.csv + +echo "HINT: To recalculate the current values and add a new line, use '$0 --recalculate'." diff --git a/tools/todo-progress-line.csv b/tools/todo-progress-line.csv new file mode 100644 index 00000000..f254b253 --- /dev/null +++ b/tools/todo-progress-line.csv @@ -0,0 +1,6 @@ + Datum ; Soll-Leistung + 2022-07-11 ; 0 + 2022-07-31 ; 102 + 2022-08-31 ; 253 + 2022-09-30 ; 399 + 2022-10-31 ; 550 diff --git a/tools/todo-progress.gnuplot b/tools/todo-progress.gnuplot new file mode 100644 index 00000000..30701ef9 --- /dev/null +++ b/tools/todo-progress.gnuplot @@ -0,0 +1,23 @@ +set xdata time # x-axis values are time (date) values +set timefmt "%Y-%m-%d" # date value format +set datafile separator ";" # CSV column separator is semicolon +set key autotitle columnhead # first data line contains column titles +set format x "%y-%m-%d" # display date format + +set xrange ["2022-07-11":"2022-10-31"] # x-axis value-range +set yrange [0:600] # y-axis value-range + +set key inside # graph legend style +set xtics rotate by -45 # rotate dates on x-axis 45deg for cleaner display +set title 'hsadmin-ng Projektfortschritt' # graph title + +set terminal png # output format +set term png size 920, 640 # output canvas size +set output 'TODO-progress.png' # output file name + +plot '.todo-progress.csv' using 1:2 with linespoints linetype rgb "black" linewidth 2, \ + '' using 1:3 with linespoints linetype rgb "red" linewidth 2, \ + '' using 1:4 with linespoints linetype rgb "green" linewidth 2, \ + '' using 1:5 with linespoints linetype rgb "blue" linewidth 2, \ + 'tools/todo-progress-line.csv' using 1:2 with linespoints linetype rgb "gray" linewidth 1 \ +