Zwerg Alex: Projektüberwachung

Hallo,

nach langer Zeit melde ich mich mal wieder mit einer Frage.

Und zwar habe ich folgendes Problem. Ich stelle dezentralen Stellen unterschiedliche Auswertungen zur Verfügung (nennen wir sie P1, P2 ... Pn). Diese Auswertungen müssen nun von den zuständigen Stellen (Frau Müller, Herr Mann) bearbeitet werden. Nach dem die Bearbeitung abgeschlossen ist, prüfe ich die Bearbeitung zentral und schließe den Vorgang ab oder sende den Bericht zur weiteren Bearbeitung nochmal zurück, wenn etwas fehlt.

Diesen Vorgang würde ich nun gerne "überwachen". Das heißt ich hätte gerne einen Überblick, wie der derzeitige Bearbeitungsstatus ist.

Ich habe hier versucht das ganze einmal grafisch darzustellen, in der Hoffnung, dass dadurch der Vorgang deutlich wird:

Statusmonitor

Ich habe mir das so vorgestellt, dass ich den Bericht freischalte und damit auch das Datum der Freigabe in die entsprechende Spalte (Zelle der Datenbank) eingetragen wird. Schließt die zuständige Stelle die Bearbeitung ab, wird wiederum ein Datum in die dortige Spalte eingetragen usw..

Was mir nicht ganz klar ist, wie ich mit der Prüfung umgehe. Trage ich ein Datum ein, wenn die Prüfung abgeschlossen ist, weiß man auf Anhieb nicht, ob die Prüfung positiv oder negativ ausgefallen ist. Ist sie negativ ausgefallen, muss der Bericht weiter von der zuständigen Stelle bearbeitet werden und das ganze beginnt eigentlich wieder von vorn. Lösche ich jedoch dann einfach das Datum bei "Bearbeitung abgeschlossen", ist wiederrum nicht ersichtlich, dass schoneinmal geprüft und beanstandet wurde. Eine weitere Spalte für Beanstandung ist wiederrum nicht immer erforderlich; manchmal ist sie hingegen mehrfach erforderlich, wenn nach Beanstandung und erneuter Bearbeitung wieder eine Beanstandung erfolgt.

Idealerweise sind am Ende alle Spalten mit einem Datum gefüllt, wenn sie erledigt sind, da ich so am einfachsten prüfen kann, ob alle Vorgänge abgeschlossen sind. Ferner ist dies erforderlich, da ich daran evtl. die Berechtigung koppeln will (bspw. Bearbeitung nur möglich, wenn Freigabe gefüllt und Bearbeitung nicht abgeschlossen)

Ich hoffe es wurde deutlich, was ich meine und vor allem, wo ich derzeit nicht weiter weiß. Hab das jetzt bewusst erstmal abstrakt formuliert, könnte bei Bedarf aber auch konkreter werden.

Hier nochmal als Frage formuliert:

Wie würdet ihr den Statusmonitor (bzw. die Datenbank dahinter) aufbauen, so dass man jederzeit erkennen kann, in welchem Status sich der Bericht befindet?

Vielen Dank schonmal für alle die bis hierher gelesen haben :-)

  1. Wie würdet ihr den Statusmonitor (bzw. die Datenbank dahinter) aufbauen, so dass man jederzeit erkennen kann, in welchem Status sich der Bericht befindet?

    Ene Zusatzspalte die mir den aktuellen Status wiederspiegelt. In einer Programmiersprache wäre es ein array("offen","in beaerbeitung", "beanstandung", "erledigt", "kaffe trinken!");
    Es ist Irrelvant das wievielte mal der Prozess beanstandet wird. Fakt ist das das Projekt wieder im Status "beanstadung" ist und man eventuell eine gute erklärung bekommt (Kommentar) wieso das so ist.
    In einer Datenbank reicht ein Tinyint Feld. Die verschiedenen Staties wären dann Integerzahlen. Das erhöht die Performance wenn man danach sucht. Wenn die Datenbank gut lesbar sein soll und die Performance eher zweitrangig ist, empfehle für spätere Debugger die Spalte nicht tinyint sondern char 16 und den Status als Textform ab zu speichern.

    Gruß
    T-Rex

    1. Hallo T-Rex,

      vielen Dank für deine Antwort.

      Ene Zusatzspalte die mir den aktuellen Status wiederspiegelt. In einer Programmiersprache wäre es ein array("offen","in beaerbeitung", "beanstandung", "erledigt", "kaffe trinken!");

      Das ist auf jeden Fall ein weiterer Ansatz. Was mir daran nicht gefallen würde ist, das man dort nicht sofort den Fortschritt erkennt. Was ich meine ist: Wenn ich jetzt schon "kaffee trinke" bin ich dann weiter als ich vorhin bei "in Bearbeitung war". Welche Schritte kommen als nächstes, wenn ich denn Kaffee getrunken habe oder bin ich dann fertig? Idealerweise sind die Arbeitsschritte 1-n vorgegeben und jedesmal wenn ich was erledigt habe wird dort das Datum eingetragen und die Ampel geht auf grün. Wenn alles grün ist, weiß ich, dass dort nichts mehr zu machen ist und wenn irgendwo noch was rot ist, muss halt noch was erledigt werden. Da passt halt nur eine Beanstandung nicht rein, weil hier ein Datum ja schlecht ist (=> rot).

      Außerdem könnte man bei jedem Arbeitsvorgang noch hinterlegen wer (welche Stelle) gerade an der Reihe ist. Ist die Berichtsbearbeitung abgeschlossen, weiß ich, dass ICH prüfen muss. Ist die Berichtsbearbeitung noch nicht abgeschlossen, weiß ich, dass ich solange Kaffee trinken darf, bis die zuständige Stelle das erledigt hat.

      Es ist Irrelvant das wievielte mal der Prozess beanstandet wird. Fakt ist das das Projekt wieder im Status "beanstadung" ist und man eventuell eine gute erklärung bekommt (Kommentar) wieso das so ist.

      Das stimme ich teilweise zu bzw. war dies auch mein Grundgedanke; deswegen fehlt dies auch in meinem derzeitigen Modell. Ich hätte halt nur gerne dokumentiert, dass der Bericht derzeit noch in Bearbeitung ist, weil er schon dreimal beanstandet wurde und immer wieder fehlerhaft zurückkam und das ganze nicht deswegen noch in Bearbeitung ist, weil die zuständige Stelle garnicht tätig wurde.

      Evtl. werde ich dies aber jetzt wohl doch über ein Textfeld (Kommentar) lösen (wie du das auch angeregt hast), wo ich dann sowas reinschreibe wie: "Bericht wurde am ... geprüft, beanstandet und zur weiteren Bearbeitung wieder freigegeben". Ich hatte gehofft so freie Texte weglassen zu können, weil diese ja immer schwierig -maschinell- auszuwerten sind.

      1. Deine Kette kann man mit dem tinyint Feld erstellen.
        offen = 0
        in bearbeitung = 25
        beanstandung = 45
        erledigt = 128

        Je höher die nummer desto näher ist die aufgabe an erledigt. Wenn du die Beanstandung mitzählen willst kann man das in einem zusätzlichem Feld machen was man immer wenn du die Beanstandung setzt hochzählt. Das könnte sogar ein Datenbanktrigger übernehmen.

        Das was du Kommentar nennst habe ich nicht angeregt. Die Idee war als alternative weg von den Nummer 0,25,45,128 und hin zu aussagekräftige Texte. Das soll aber nciht als Kommentarfeld zu verstehen sein.
        Das was du da als Kommentar ansieht ist eine Meldung an den User und das hat an dieser Stelle nichts in der Tabelle zu suchen. Denkbar wäre heir eine extra Meldungtabelle mit entsprechenden Meldungsnummern.
        Kommentare wiederum die vom User erstellt werden, die gehören in diese Tabelle. Dann kann Herr Korrektor, Frau Problemstelle ein paar nette Worte als Kommentar hinterlassen das sie endlich mal ihren A*** $§%"%"§%§$!$ ;).

        Gruß
        T-Rex

        Ps. was du da machst ist Projektmanagement. Ich kenne da ein paar recht geschickte Menschen die daran schon verzweifelt sind.

        1. Deine Kette kann man mit dem tinyint Feld erstellen.
          offen = 0
          in bearbeitung = 25
          beanstandung = 45
          erledigt = 128

          Danke, das war der Wink mit dem Zaunbrett vor meinem Kopf den ich fast in den Sand stecken wollte ;-)

          Ich glaube darüber lässt sich auch gut ein Statusbalken basteln 128 = 100% oder so ...

          Ps. was du da machst ist Projektmanagement. Ich kenne da ein paar recht geschickte Menschen die daran schon verzweifelt sind.

          Ich bin kurz davor gewesen zu verzweifeln, aber ich hab dank dir/euch jetzt neue Hoffnung geschöpft. Ist nur traurig, dass diese "Arbeit drumherum" so wenig wertgeschätzt wird. Hatte nebenbei mal angesprochen, dass ich gerne die Berichtsläufe "überwachen" würde und die Idee fand meine Chefin gut. Als ich mich dann aber kurz mit zwei Kollegen dazu besprechen wollte, hat sie uns angemacht, dass wir uns nicht mit so einem Scheiß aufhalten sollen, sondern zusehen sollen, dass die Berichte rausgehen. Naja, mach es jetzt trotzdem heimlich und wenn sie hier nicht mitliest und sich angesprochen fühlt, kriegt sie es ja auch nicht mit. Sollte sie doch mitlesen: Ich werd mich direkt nach diesem Posting wieder damit beschäftigen, dass die Berichte rausgehen.

          Also nochmal vielen Dank an alle die sich mit meinem Posting beschäftigt haben und insbesondere an T-Rex und splinter für die Hilfe.

          Viele Grüße
          Zwerg Alex

  2. Eine weitere Spalte für Beanstandung ist wiederrum nicht immer erforderlich; manchmal ist sie hingegen mehrfach erforderlich, wenn nach Beanstandung und erneuter Bearbeitung wieder eine Beanstandung erfolgt.

    Wenn sich das Problem als "dynamische Anzahl Spalten" umschreiben lässt, ist's imho immer besser eine zweite Tabelle für diese Werte anzulegen.

    Wie würdet ihr den Statusmonitor (bzw. die Datenbank dahinter) aufbauen, so dass man jederzeit erkennen kann, in welchem Status sich der Bericht befindet?

    Kann ich so nicht beantworten. Welche Daten sind nach der Bearbeitung vorhanden? Wenn die Bearbeitung beanstandet wird, werden diese Daten dann überschrieben?

    1. Hallo Splinter und danke für deine Antwort.

      Eine weitere Spalte für Beanstandung ist wiederrum nicht immer erforderlich; manchmal ist sie hingegen mehrfach erforderlich, wenn nach Beanstandung und erneuter Bearbeitung wieder eine Beanstandung erfolgt.

      Wenn sich das Problem als "dynamische Anzahl Spalten" umschreiben lässt, ist's imho immer besser eine zweite Tabelle für diese Werte anzulegen.

      Das habe ich fast befürchtet; habe sowas ähnliches mal für eine Bildergalerie mit Kommentarfunktion gemacht. Tabelle 1 mit den Bildname und Tabelle 2 mit evtl. Kommentaren. Dies würde hier aber imho zu weit gehen. Ich glaube da wäre es mir lieber, wenn nur das Datum der letzten Beanstandung dokumentiert wird.

      Wie würdet ihr den Statusmonitor (bzw. die Datenbank dahinter) aufbauen, so dass man jederzeit erkennen kann, in welchem Status sich der Bericht befindet?

      Kann ich so nicht beantworten. Welche Daten sind nach der Bearbeitung vorhanden? Wenn die Bearbeitung beanstandet wird, werden diese Daten dann überschrieben?

      Die Daten werden überschrieben.

      Also vlt. noch kurz zum Inhalt. Die Empfänger erhalten unterjährig Plan- und Istwerte zu einem Produkt und sollen einen Prognosewert zum Jahresende abgeben und evtl. Abweichungen zu dem ursprünglichen Planwert begründen/kommentieren.

      Sollte jetzt eine Begründung nicht ausreichen oder falsch sein oder vlt. eine Prodnose fehlen und dies bei der Prüfung auffallen, bekommen die Bereiche den Bericht mit ihren Prognosen/Kommentaren wieder und ergänzen/bearbeiten diese. Am Ende bekomme ich dann wieder nur die korrigierte Fassung wieder. (Da eröffnet sich mir zwar gerade eine weitere Fehlerquelle, aber das lass ich jetzt mal weg um nicht noch weitere Verwirrung zu stiften.)