Verfahren und Einrichtung zur Software-Entwicklung
Die Erfindung betrifft ein Verfahren zur Softwareentwicklung, bei dem ein Projekt in ein oder mehrere Komponenten aufgeteilt und zu jeder Komponente eine Software-Teillösung bereitgestellt und/oder entwickelt wird. Die Erfindung entspricht' weiterhin eine entsprechende Einrichtung sowie ein Computerpro- gra m zur Implementierung des Verfahrens .
Zur Realisierung von Softwareprojekten jeglicher Art ist es zweckmäßig, das Projekt in ein oder mehrere Komponenten aufzuteilen, zu denen jeweils eigene Software-Teillösungen entwikkelt werden können. Diese Teillösungen werden anschließend zur GesamtSoftware zusammengefügt. Häufig sind die Teillösungen zu einzelnen Komponenten des Projektes bereits bekannt und als Routinen gespeichert und verfügbar. Es ist dann möglich, sich auf die Entwicklung einzelner Teillösungen zu konzentrieren und diese mit bereits vorliegenden Softwareroutinen zu verknüpfen.
Da die zu realisierenden Softwareprojekte meist sehr umfassend, komplex strukturiert und somit sehr umfangreich sind, gestaltet sich die manuelle Aufteilung eines derartigen Projektes in einzelne Komponenten sowie das Suchen nach bekannten Teillösungen sehr aufwändig. Für die zu entwickelnden Teillösungen steht häufig das erforderliche Know-How im eigenen Haus nicht zur Verfügung, so dass extern nach Lösungen gesucht werden muss. Dies wiederum hat den Nachteil, dass beauftragte Su- bunternehmen (externe Entwickler) nicht über die erforderliche Entwicklungsumgebung verfügen. Außerdem gestaltet sich die Überwachung des Projektablaufs schwieriger.
Aufgabe vorliegender Erfindung ist daher ein Verfahren und eine Einrichtung zur Software-Entwicklung zur Verfügung zu stellen, durch die Softwareprojekte jeglicher Art weitestgehend automatisch zu realisieren sind, insbesondere sollen Module und Systeme bereitgestellt werden, die einzelne Schritte der Software-Entwicklung automatisieren.
Diese Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst, vorteilhafte Weitergestaltung ergeben sich aus den jeweiligen Unteransprüchen und der nachfolgenden Beschreibung.
Beim erfindungsgemäßen Verfahren werden von einer zentralen Projektstelle über ein Kommunikationsnetz Anforderungen zur Entwicklung der Software-Teillösungen zu den Komponenten eines Projekts und eventuell eine Beschreibung der jeweiligen Komponente und/oder des Projektes Entwicklern, zur Verfügung gestellt, die sich daraufhin bewerben könne, wobei unter mehreren Bewerbern zur Entwicklung derselben Software-Teillösung zumindest ein Entwickler nach Auswahlkriterien ausgewählt wird.
Die Entwickler können interne oder externe Programmierer oder Softwareunternehmen sein. Beliebige Entwickler, die an das Kommunikationsnetz angeschlossen sind, kommen für die Realisierung des Projektes in Frage. Als Kommunikationsnetz kann das Internet, ein Intranet oder Extranet, verwendet werden, wobei innerhalb des Kommunikationsnetzes auch mit drahtloser Datenübertragung gearbeitet werden kann. Letztere bietet sich insbesondere an, um mobilen Entwicklern Zugang zum Kommunikationsnetz zu ermöglichen. Ein Intranet dient zur internen Vernetzung eines Unternehmens, während ein Extranet ein erweitertes Intranet darstellt, bei dem auch externe Teilnehmer mit Zugangsberechtigung und mehrere voneinander getrennte Netze im
Intranet-Verbund arbeiten. Die externen Netze sind über das Internet miteinander verbunden. Dies ermöglicht eine Online- Kommunikation zu Geschäftspartnern über das Internet mittels Zugangsberechtigungen zum jeweiligen Extranet.
Die Erfindung nutzt derartige Kommunikationsnetze, um Komponenten eines Projektes auszuschreiben, so dass es Entwicklern ermöglicht wird, Einblick in die Anforderungen zur Software- Entwicklung und/oder in eine Projektbeschreibung zu nehmen und sich daraufhin zu bewerben. Hierbei kann es sinnvoll und. notwendig sein, eine Vorauswahl an Entwicklern zu treffen, denen dann ein Zugang zu der Ausschreibung gewährt wird. Bewerben sich mehrere Entwickler auf ein Teilprojekt, wird anhand vorher angelegter Auswahlkriterien ein Entwickler bestimmt .
Andererseits ist es auch möglich, bevorzugte Entwickler direkt über das Kommunikationsnetz zu adressieren, indem ihnen ein Angebot unterbreitet oder gleich die zu entwickelnden Komponenten zur Verfügung gestellt werden.
Denjenigen Entwicklern, die zur Projektrealisierung bestimmt worden sind, werden über das Kommunikationsnetz die jeweiligen Komponenten/Teilaufträge übermittelt, indem die Entwickler direkt adressiert werden oder diesen ein Zugang zum Abrufen der Komponenten zur Verfügung gestellt wird. Nach Fertigstellung der entwickelten Software-Teillösungen werden diese wiederum über ein Kommunikationsnetz an die zentrale Projektstelle übertragen, wo sie zu einer das Projekt realisierenden Gesamtsoftware zusammengefügt werden.
Das Projekt seinerseits kann über ein Kommunikationsnetz der zentralen Projektstelle übermittelt werden. Diese tritt dem Kunden oder Auftraggeber dann als Generalunternehmer auf . Dieser überwacht das Projekt, verteilt Aufträge an interne und externe Entwickler und ist für das Abliefern einer qualitativ
einwandfreien Softwarelösung verantwortlich. Die Erfindung ermöglicht eine nahezu vollständige Automatisierung dieser Vorgänge .
Es ist vorteilhaft, zu einzelnen Entwicklern Beurteilungskriterien zu speichern und diese zur automatischen Auswahl von Entwicklern für ein Projekt oder dessen Komponenten zu verwenden. Als Beurteilungskriterien kommen insbesondere Preis, Qualität und Schnelligkeit der vom Entwickler geleisteten Arbeit sowie seine zeitliche Verfügbarkeit in Frage.
Nach Auswahl eines Entwicklers für ein Projekt kann dieser automatisch für eine bestimmte Zeitdauer von weiteren Projekten gesperrt werden. Andererseits kann es einem Entwickler auch ermöglicht werden, sich selbst für eine bestimmt Zeitdauer von Projektangeboten zu sperren. Der für eine Ausschreibung oder für ein direktes Angebot in Frage kommende Entwickler ist dann automatisch für die von ihm bestimmte Zeitdauer ausgeschlossen.
Weiter ist es vorteilhaft, bei Bedarf dem für das Projekt angenommenen Entwickler die erforderliche Entwicklungsumgebung zur Verfügung zu stellen. Jedoch wird insgesamt eine Plattform- und herstellerunabhängige Software-Entwicklung gewährleistet .
Zur Projektüberwachung können Rückmeldeintervalle festgelegt werden, innerhalb derer sich ein für das Projekt angenommener Entwickler mit der zentralen Pro ektstelle in Verbindung setzen muss. Sollte dies nicht der Fall sein, geht bspw. eine E- mail-und/oder SMS-Nachricht an den jeweiligen Entwickler mit der Aufforderung, sich mit der zentralen Projektstelle in Verbindung zu setzen und dieser bisher fertiggestellte Teillösungen zu übermitteln. Hierdurch kann dann der Zeitplan für das Projekt überwacht und evtl. korrigiert werden sowie Intervall-
weise eine Qualitätsüberwachung der bis dato fertiggestellten Teillösungen erfolgen. Außerdem kann vorgesehen sein, bei Mängel (zeitlicher Rahmen überschritten/Qualität nicht einwandfrei) eine entsprechende (E-mail) Nachricht an den in der zentralen Projektstelle zuständigen Projektmanager (automatisch) zu schicken, der dann weiter Schritte unternimmt.
Zur weiteren Automatisierung des Projektablaufs ist es vorteilhaft, zur Entgegennahme des Auftrags durch die zentrale Projektstelle eine vorbestimmte Eingabemaske vorzusehen, . über die der Auftraggeber sämtliche Projektdaten der zentralen Projektstelle mitteilt. Durch Abgleich mit in einer Datenbank gespeicherten Daten kann dann das in der Eingabemaske beschriebene Projekt automatisch kategorisiert und in einzelne Komponenten zerlegt werden. Insbesondere ist es dann möglich, Software-Lösungen oder Software-Teillösungen für das Projekt bzw. seine Komponenten zu ermitteln. Für noch zu entwickelnde Software-Teillösungen werden dann, wie bereits beschrieben, Teilaufträge an Entwickler vergeben.
Um während des Projektablaufs absolute Vertraulichkeit garantieren zu können, ist eine verschlüsselte Datenübertragung von Vorteil .
Im Folgenden soll eine erfindungsgemäße Einrichtung zur Softwareentwicklung beschrieben werden, die den oben dargestellten Projektablauf ermöglicht.
Die erfindungsgemäße Einrichtung^-weist ein AusSchreibungsmodul auf, das über ein Kommunikationsnetz Anforderungen zur Entwicklung einer Software-Teillösung sowie evtl . zusätzlich eine Beschreibung des Projektes oder der jeweiligen Komponente dem betreffenden Entwickler zur Verfügung stellt, wobei die Möglichkeit eine Rückmeldung eines Entwicklers bei Interesse an der Teilnahme am Projekt vorgesehen ist.
Die Ausschreibung ist eine öffentliche Einladung an Entwickler, am Projekt teilzunehmen. Alle Anforderungen werden evtl. mit einer kurzen Beschreibung auf vom Ausschreibungsmodul generierten Ausschreibungs-Pages angeboten. Eine Anzahl verschiedener Ausschreibungen können gleichzeitig existieren. Entwickler sollen signalisieren, dass sie mit den Bedingungen einverstanden sind und am Projekt teilnehmen wollen. Neue Angebote können mittels dem weiter unten beschriebenen Web-Front-End, PIM (Personal Information Manager) und dem Instant-Messaging-Modul verbreitet werden.
Vorteilhaft ist ein Auswahlmodul, das aus Rückmeldungen zu einem Projekt bzw. einzelnen Komponenten des Projekts automatisch eine Auswahl von Entwicklern vornimmt. Diese Auswahl erfolgt mittels zu einzelnen Entwicklern in einer Datenbank abgelegten Beurteilungskriterien. Die ausgewählten Kandidaten werden (automatisch) vom Projektmanager der zentralen Projektstelle informiert. Eine solche Einrichtung erlaubt folglich ein vollautomatisches Ausschreibungs- und Auswahlverfahren.
In einer weiteren oder anderen Ausgestaltung weist die erfindungsgemäße Einrichtung ein Projektmanagement-Modul auf, das den über das oben beschriebene Ausschreibungs- und Auswahlverfahren oder anderweitig ausgewählten Entwicklern einzelne Komponenten, zu denen jeweils eine Software-Teillösung zu entwik- keln ist, über ein Kommunikationsnetz anbietet, indem das Modul die zugehörigen Aufgaben direkt an den Entwickler überträgt oder mittels einer Entwickleransicht einen Zugang zur Entgegennahme der zugehörigen Aufgaben durch den Entwickler herstellt.
Für dieses Projektmanagement-Modul ist eine einfach zu bedienende graphische Web-Oberfläche (GUI, Graphic User Interface) vorteilhaft, die es dem jeweilige Anwender erlaubt, Projekte
schnell und einfach am Bildschirm darzustellen (Projektvisua- lisierer) . In einer sogenannten Entwickleransicht können dann die einem bestimmten Entwickler zugewiesenen Aufgaben mit entsprechenden Zusatzinformationen dargestellt werden. Hierbei kann zwischen Aufgaben, an denen der Entwickler zur Zeit arbeitet, bereits fertiggestellten Aufgaben sowie demnächst zu erledigenden Aufgaben unterschieden werden.
In einer weiteren oder anderen Ausgestaltung der erfindungsgemäßen Einrichtung weist diese ein Projektmanagement-Modul ' auf, das in einem Projektordner die Eigenschaften eines Projektes und in automatisch generierten Arbeitsmappen die verschiedenen Aufgaben, die zur Erstellung jeweils einer Software-Teillösung zu einer Komponente des Projektes anfallen, enthält. Ein Projektordner enthält Informationen über ein bestimmtes Projekt oder eine seiner Komponenten, wie eine Kurzbezeichnung, einer Beschreibung, Informationen zur Priorität und zum Status, den Projekttyp, den Projektmanager, den Kunden, die Deadline und weitere Kommentare und Zusatzdaten wie Kostenkalkulation.
Die automatisch generierten Arbeitsmappen bestehen aus mehreren verbundenen Aufgaben für verschiedene Gruppen oder Anwender (Projektmanager, Entwickler) . Jede Aufgabe beinhaltet eine Anzahl von Eigenschaften und Informationen über einen bestimmten Teil eines Projektes, wie z.B. Bezeichnung, Beschreibung, Priorität, Erstellungsdatum, Name des Erstellers, Deadline, Prozentangabe des bereits ausgeführten Teils, verknüpfte Dokumente, Zugriffsrechte und ähnliches.
Das Projektmanagement-Modul kann hierbei einen Komponenten- und/oder Aufgabengenerator, auch Assistent genannt, aufweisen, der ein Projekt in verschiedene Komponenten und diese evtl. in weitere Aufgaben aufteilt, wobei dieser mittels einer Datenbank mit Suchfunktionen überprüft, ob zu gleichen oder ähnli-
chen Projekten bzw. deren Komponenten bzw. deren Aufgaben bereits Softwarelösungen vorhanden sind.
Die Assistenten können bspw. auf Informationen einer Eingabenmaske zugreifen, in die eine Projektbeschreibung eingegeben worden ist. Es folgt dann eine automatische Aufteilung des Projektes in einzelne Komponenten, die ihrerseits wiederum in verschiedene Aufgaben unterteilt werden können. Unter den Aufgaben kann wiederum zwischen Eltern- und Kindaufgaben unterschieden werden, wobei Kindaufgaben erst ausgeführt werden können, nachdem deren Elternaufgabe beendet ist. Die automatische Erstellung von Arbeitsmappen erspart erheblich Zeit bei der Pro ektabwicklung.
Es ist vorteilhaft, wenn das Projektmanagement-Modul einen Projektvisualisierer aufweist, der einer zentralen Projektstelle, Informationen, insbesondere zu dessen einzelnen Aufgaben sowie zum jeweiligen Arbeitsstand, zur Verfügung stellt. Der zuständige Projektmanager kann dann das Projekt (bereits fertiggestellte und noch fertigzustellende Aufgaben) in bestimmten Zeitansichten betrachten, und zu ausgewählten Aufgaben detaillierte Informationen erhalten. Im Gegensatz zum Projektvisualisierer ist die bereits erwähnte Entwickleransicht nicht nur für Projektmanager konzipiert, sondern auch für andere Anwender, wie Entwickler. Die Entwickler können nicht den gesamten Projektverlauf sehen, sondern nur die ihnen zugeordnete Komponente mit den entsprechenden Aufgaben. Für wiederholte Anforderungen können passenden Assistenten erzeugt wer- r den. Um es Firmen zu ermöglichen, eigene Assistenten zu generieren, wird eine spezielle Assitenten-Generator-Software implementiert .
Ein Analyse-Modul steht für Projektmanager zur Verfügung, um Informationen von Anwendern, Angestellten, Aufgaben, Zeiten,
Durchschnittszeiten und anderes statistisches Material zu extrahieren.
Es kann ein spezieller Mechanismus implementiert sein, welcher es erlaubt, ein Rollback der Aufgaben zu fahren, welche als vollendet markiert wurden, dies aber noch nicht wirklich sind.
Für jede Aufgabe kann eine Anzahl von zusätzlichen Dokumenten angehängt werden. Autorisierte Anwender haben in diese Einblick und können sie ändern und sichern. Dieses Feature kann als Client-Server-Lösung unter Verwendung einer Web-Browser- Umgebung implementiert sein.
In einer weiteren oder einer anderen Ausgestaltung besitzt die erfindungsgemäße Einrichtung eine Ressourcenverwaltungs-Modul, das Ressourcen, auf die bei der Software- Entwicklung durch eine zentrale Projektstelle zugegriffen werden kann, mittels einer oder mehrerer Datenbanken verwaltet, auf die weiteren Module zugreifen.
Das Ressourcenverwaltungs-Modul (Ressource Management (RM) RM- Module) ist ein mit den entsprechenden Merkmalen ausgestattetes Werkzeug zum Client-Server-Ressourcen-Management mit Res- sourcenzeitenverwaltung und Projektstatusanzeige.
Dieses Modul arbeitet mit einer Ressourcen-Datenbank. Alle Ressourcen (Entwickler-Ressourcen, Hardware-Ressourcen, Software-Ressourcen etc.) besitzen ihr eigenes Ressourcenformular, das ihre speziellen Eigenschaften beschreibt. Diese Formulare sind zweckmäßig mit den entsprechenden Anwenderdatensätzen in einer Anwenderdatenbank verknüpft. Die zu erfassenden Eigenschaften sind folgende:
Name, Beschreibung, Angabe der Anwenderdatenbank
Typ und Klassifikation (Entwickler, Projektmanager, Software- Tester etc . )
Berufliche Fähigkeiten in Abhängigkeit verschiedener Kriterien
Angaben über Bewertung und Einstufung.
Neben der Ressourcen-Datenbank ist eine Zeitkartendatenbank von Vorteil, in der die zur Verfügung stehenden Menschstunden, insbesondere der Entwickler, abgelegt sind. Über diese Zeitkarten kann eine Sperre eines Entwicklers über einen bestimmten Zeitraum festgestellt werden, wenn sich ein Entwickler selbst gesperrt hat oder aufgrund seiner Tätigkeit für ein Projekt für eine bestimmte Zeitdauer gesperrt wurde. In derartigem (Busy) Zeitkarten sind Informationen über den Beschäftigungsplan eines Entwicklers enthalten. Diese Zeitkarten können automatisch generiert werden, wenn ein Entwickler für ein bestimmtes Projekt ausgewählt wurde. Hierbei ist es zweckmäßig, die Zeitkarten während des Software-Entwicklungsprozesses (Projektablaufes) bei sich ändernden Zeitplänen automatisch anzupassen.
Ein mächtiges Abfrage-Tool kann durch ein Projektzeiten-Modul innerhalb des Ressourcenverwaltungs-Moduls geschaffen werden, das es der zentralen Projektstelle ermöglicht, die momentanen Verfügbarkeits- und Beschäftigungszeiten einer bestimmten Ressource sowie deren bisherige Einsatzzeit im Projekt zu eruieren. Für die entsprechenden Abfragen können verschiedene Filter zur Verfügung gestellt werden.
Enthält die erfindungsgemäße Einrichtung das bereits oben erwähnte Ausschreibungs-Modul, ist es sinnvoll, dieses mit der Ressourcen-Datenbank derart zu verbinden, dass eine Ausschreibung an Entwickler zur Teilnahme an dem Projekt automatisch immer dann stattfindet, wenn in der Ressourcen-Datenbank keine
passenden, verfügbaren Ressourcen zu allen Komponenten eines Projektes vorhanden sind.
Weitere mögliche Module innerhalb des Ressourcen- Verwaltungsmoduls, wie das Einzelzeiten-Modul oder die Möglichkeit der Ressourcenreservierung, sind in einem Ausfüh- runbgsbeispiel weiter unten ausführlich beschrieben.
Vorteilhaft ist die Erfassung von Entwicklerbewerbungen mittels einer Bewerber-Datenbank, in der Daten über Entwicklerbewerber abgelegt sind, wobei die Daten zumindest teilweise einem über ein Kommunikationsnetz von einem Entwicklerbewerber eingegebenen Bewerberprofil entnommen werden können. Relevante Bewerbungen werden in die Ressourcendatenbank mit aufgenommen.
Sinnvolle Zusatzsysteme zur erfindungsgemäßen Einrichtung sind ein Reportingsystem sowie ein Dokumentenmanager-System.
Ein Reporting-System verwendet bei erfolgreicher Beendigung einer Aufgabe oder aber bei Verzug eine entsprechende Nachricht an die zentrale Projektstelle, den jeweiligen Projektmanager und/oder den betreffenden Entwickler. Hierdurch wird eine bessere Überwachung des Projektfortschrittes ermöglicht.
Über ein Dokumentenmanager-System kann ein am Projekt beteiligter Entwickler erstellte Dokumente mit etwaigen Zusatzinformationen abspeichern. Hierbei ist es zweckmäßig, verschiedene Ordner vorzusehen, um fertiggestellte Abschnitte oder Entwürfe einer Software-Teillösung eines Entwicklers einschließlich der zugehörigen Dokumentation zu speichern. Dies ermöglicht eine Versionskontrolle aller von einem Entwickler erstellten Arbeiten (Dokumente, Quellcode, compilierte Module, Notizen) .
Weiterhin ist ein Qualitätskontroll-System von Vorteil, dass eine von einem Entwickler übermittelte Software-Teillösung oder Abschnitte einer solchen Lösung einer automatischen Qualitätskontrolle unterzieht. So kann bspw. der Quellcode nach bestimmten Quellcode-abhängigen Kriterien (bspw. „Go to"- Befehle, mangelhafte oder fehlerhafte Dokumentation...) gescannt werden und einzelne Software-Routinen auf einwandfreie Funktion hin getestet werden, so dass Aussagen zur Qualität getroffen werden können. Darüber hinaus können automatische Kontrollmitteilungen an den jeweiligen Projektmanager und/oder Entwickler generiert werden, die Aussagen über die Qualität des abgelieferten Produktes und über etwaige zu treffende Maßnahmen enthalten.
Für den Fall, dass die zentrale Projektstelle selbst Auftragsempfänger ist, ist es vorteilhaft, wenn die erfindungsgemäße Einrichtung ein Modul zur Auftragsentgegennahme vorsieht, das eine Auftragsmaske enthält, über die von einem Auftraggeber ein Projekt an die zentrale Stelle über ein Kommunikationsnetz übermittelt werden kann. Durch eine solche Eingabemaske für ein Projekt wird die bereits oben beschriebene automatisierte Kategorisierung und Aufteilung eines Projekts in verschiedene Komponenten und Aufgaben erleichtert .
Um einen mobilen Einsatz von am Projekt beteiligten Personen, wie Projektmanager und Entwickler, zu unterstützen, ist es sinnvoll, eine Schnittstelle zur drahtlosen Datenübertragung (bspw. WAP-Schnittstelle) vorzusehen. Hierdurch werden insbesondere sofortige Reaktionen bei zeitkritischen Aktivitäten möglich. Der Datenaustausch erfolgt dann über entsprechend eingerichtete Sender/Empfänger (WAP-Front-End) . Es ist sinnvoll, für Pro ektmanager und Entwickler verschiedene WAP- Front-Ends zur Verfügung zu stellen. Ausführliche Beispiele hierzu sind im Ausführungsbeispiel enthalten.
Um die Sicherheit der Datenübertragung während der gesamten Projektabwicklung zu gewährleisten, sollte ein Verschlüsselungs-System vorgesehen sein, das den Datenverkehr bspw. mit einer Standard-SSL-Verschlüsselung für Außenstehende unlesbar macht. Daneben können passwortgeschützte Zugangsberechtigungen sowie Protokolle der getätigten Logins und Logouts implementiert sein.
Die Erfindung betrifft schließlich ein Computerprogramm mit Programmcode-Mitteln, um alle Schritte des erfindungsgemäßen Verfahrens zur Software-Entwicklung durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit ausgeführt wird. Ein derartiges Computerprogramm kann dann auch die beschriebene erfindungsgemäße Einrichtung steuern und für die jeweiligen Anwender auf entsprechenden Endgeräten zur Ansicht bringen.
Das Computerprogramm oder Teile hiervon können auf geeigneten Datenträgern, wie EEPROMs, Flash-Memories aber auch CD-ROMs, Disketten, Festplattenlaufwerken, aber auch auf einem externen Server gespeichert sein.
Im folgenden soll ein Ausführungsbeispiel die Erfindung und ihre Vorteile anhand der beigefügten Figuren näher erläutern.
Figur 1 zeigt eine schematische Darstellung einer Projektvisualisierung.
Figur 2 zeigt eine Darstellung des Ressourcen-Managements.
Figur 3 zeigt ein Beispiel für die Versionskontrolle durch das Dokumentenmanager-System.
Figur 4 zeigt ein Beispiel für ein Bewertungssystem.
Figur 5 gibt einen Überblick über die Software- und Hardware-Plattformen, die Verwendung finden können.
Selbstverständlich sind die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
Ausführunαsbeispiel Inhaltsverzeichnis
a. Vorwort b. Projekt Management System b.l. Projektplanung mit Nisualisierungsmöglichkeiten b.1.1. Projektordner b.l.2. Aufgäben b.l.3. Projektvisualisierer b.l.4. Entwickleransicht b.2. Grundfunktionalität (Workflow Management) b.2.1. Gruppen und Anwender b.2.2. Aufgaben und Arbeitsmappen b.2.3. Assistenten b.2.4. Assistenten-Generatoren b.2.5. Analyse b.2.6. Rollback b.2.7. Dokumente b.3. Ressourcen-Verwaltung b.3.1. Ressourcen-Datenbank b.3.2. Zeitkarten-Datenbank b.3.3. Projektzeiten-Modul b.3.4. Einzelzeiten-Modul b.3.5. Reservierung
b.3.6. Ausschreibung b.3.7. Entwicklerbewerbungserfassung b.4. Reportingsystem c. Dokumentenmanagement c.l. Versionskontrolle c.2. Web-Front-End c.3. WAP-Front-End c.3.1. WAP M (Management) c.3.2. WAP D (Development) c.3.3. WAP-PIM c.4. Sicherheit: Verschlüsselung der Kommunikation
d. PIM d.i. Personal PIM d.2. Gruppenfunktionen d.3. WAP d.4. Instant Messaging d.5. Internet Community d.5.1. Foren d.5.2. Hotline e. Add-on Modules e.l. Bewertungsmodul e.1.1. Fertigkeiten und Fähigkeiten e.l.2. Wartezeitenfaktor e.l.3. Entwicklerbewertung e.1.4. Bewertungskarten-Datenbank e.2. Auftragsanfragenerfassung e.3. Knowhow-Datenbank e.4. Schnittstellen zu Rechnungswesenmodulen f. Plattform f.l. DB-Plattform f.2. Web-Plattform
f.3. Sonstige serverseitige Module f.4. Client-Seite
a. Vorwort
Im Folgenden findet sich eine kurze Beschreibung der „PROJECTSOFT"-Lösung mit einer knappen Darstellung aller darin verwendeten Module, Bemerkungen zur Hardware- und Software-Plattform, wobei die Figuren das Verständnis des Textes erleichtern sollen. Die „PROJEKTSOFT'-Lösung stellt hierbei ein Ausführungsbeispiel der oben beschriebenen Erfindung dar.
b. Proiect-Manaqement-Svstem
Projektmanagement mit Visualisierungsmöglichkeiten
(Figur 1)
Das Projektmanagement-Modul ist eine auf dem Web basierende Planungs-Softwarelösung, welches Multiprojekttechniken für größere Unternehmen unterstützt. Es ermöglicht dem Unternehmen, verteilte und in Zeitphasen beanspruchte Ressourcen zu managen und zu konsolidieren, so dass Maßnahmen im Sinne des strategischen Hauptziels ergriffen werden können. Das Projektmanagement-Modul hat eine einfach zu bedienende grafische Web-Oberfäche (GUI, Graphic User Interface), die es dem Anwender erlaubt, Projekte schnell und einfach am Bildschirm zu erzeugen. Die Daten werden in Balkendiagrammform ein- und ausgegeben.
b.1.1 PiOjektordner
Projektordner (Project Folder) sind Ordner mit Aufgaben eines bestimmten Projekts oder einem Teil eines Projekts. Jedes Projekt hat folgende Grundeigenschaften:
Kurzbezeichnung
Beschreibung
Priorität
Status o Nicht genehmigt o Genehmigt o In Arbeit o Gestoppt o Abgebrochen
o Beendet
Typ o Software-Entwicklung o Software-Änderung o Forschung o Etc.
Autor (bezugnehmend auf den Anwender, der das Projekt erstellt hat)
Projektmanager
Kunde (bezugnehmend auf den Client-Datensatz)
Deadline
Kommentar
Jedem Projekt kann eine Anzahl von Dokumenten angehängt werden, wie z.B. Projektbeschreibung oder Kostenkalkulation.
In der Projektansicht kann der Anwender eine Liste aller ihm zugeteilten Projekte betrachten. Die Projekte können nach verschiedenen Kriterien gefiltert werden. Der Anwender kann Projekte höherer Priorität herausfiltern, deren Deadlines innerhalb des nächsten Monats liegen.
Von dieser Ansicht aus kann der Anwender ein Projekt manuell oder mittels Projektassistent (vgl. weiter unten) erstellen, es editieren oder nur öffnen.
b.1.2. Aufgaben
Jedes Projekt beinhaltet Aufgaben, die beendet sein müssen, um am Projekt erfolgreich weiterarbeiten zu können. Jede Aufgabe ist Teil einer Struktur, in welcher die Aufgaben miteinander verknüpft sind. Dies bedeutet näher, dass auf der höchsten Ebene des Projekts eine beliebige Anzahl von Aufgaben liegen können, von denen jede einzelne Kindaufgaben (Aufgaben, die erst ausgeführt werden können, nachdem die Elternaufgabe beendet ist) besitzen kann. Eine bestimmte Kindaufgabe kann auch Kind von mehr als einer Aufgabe sein. D.h., die entsprechenden Elternaufgaben müssen alle vollständig beendet sein, um mit deren Ausführung beginnen zu können. Die Struktur des Ganzen stellt sich wie folgt dar:
Im obigen Beispiel sieht die Ausführungsreihenfolge wie folgt aus:
• Start von Aufgabel
• Wenn Aufgabel beendet ist o Start von Aufgabe2 o Start von Aufgabe3
■ Wenn Aufgabe3 beendet ist, warten auf Beendigung von Aufgabe5
■ Wenn Aufgabeδ beendet ist, Start von Aufgabeβ
• Start von Aufgabe4
• Wenn Aufgabe4 beendet ist o Start von Aufgabe5
■ Wenn Aufgabe5 beendet ist, warten auf Beendigung von Auf- gabe3
■ Wenn Aufgabe3 beendet ist, Start von Aufgabeβ
Jede Aufgabe beinhaltet folgende Grundinformationen:
Bezeichnung
Beschreibung
Priorität
Erstellungsdatum
Name des Erstellers
Deadline-Datum
Ausgeführt (Prozentangabe des bereits ausgeführten Teils)
Verknüpfte Dokumente (Word, Excel etc.)
Zugriffsrechte / Sicherheitsinfos
Feedback (wem muss ein Report bei Beendigung der Aufgabe zugesandt werden)
Verknüpfungen mit abhängigen Aufgaben
Status
Für: (Anwender, dem die Aufgabe zugeteilt wurde)
Entgegennahme: (Anwender, der die Aufgabe angenommen hat)
b.1.3. Projektvisual isierer
Der in Figur 1 dargestellte Projektvisualisierer stellt eine komfortable Ansicht für Projektmanager zur Verfügung, um Aufgaben zu betrachten, den Status des Projekts zu überprüfen und um geeignete Änderungen bei Bedarf vornehmen zu können. Bei Verwendung dieses Tools ist es möglich, die Projektzeit in Tages-, Wochen- und Monatsansichten zu betrachten sowie in selbst definierten Zeitspannen. Jede Aufgabe wird durch einen farbigen Balken mit Kurzbeschreibung dargestellt. Die Farbe des Balkens wird durch den Status der Aufgabe bestimmt: grün bedeutet „beendet", grau „noch nicht begonnen" und rot „überfällig". Die Verknüpfungen werden mittels Linien zwischen den Balken symbolisiert: rote Linien bedeuten „Hard Link", graue „Soft Link"1.
Es gibt zwei Arten von Aufgabenverknüpfungen: Hard-Llnk und Soft-Link. Hard-Link bedeutet, dass, wie im allgemeinen üblich und oben beschrieben, die Elternaufgabe beendet sein muss, um mit der Kindaufgabe zu beginnen, Soft-Link dagegen, dass die Beendigung der Elternaufgabe nicht zwingend vorgeschrieben ist. Ein Beta-Test kann z.B. übersprungen werden und daher mittels Soft-Link mit anderen Aufgaben verknüpft werden.
Durch Anklicken eines Balkens kann der Projektmanager detaillierte Informationen über die auf diese Weise ausgewählte Aufgabe im unteren Teil des Bildschirms bekommen. Er kann ebenfalls sofort in das Projektinformations-Register wechseln. Bei Verwendung dieses Tools ist es dem Projektmanager möglich, Aufgaben zu editieren, zu erweitern und zu löschen, sowie Aufgaben neu zu verknüpfen. Dabei werden ihm die Ergebnisse dieses Tuns gleichzeitig visualisiert zur Anschauung gebracht.
βfeπdM m VΛsΛf rtsn Λphaϊe-t
JohnSmüh
Batet. TO m εndDate
Csmments
Pea-Erts ftrihistasffWME -a-ndpcfuπtil 2000 Ξα-edific- s*κ!tffn
Eine Abb. mit besserer Auflösung zeigt Figur 1.
b.1.4. Entwickleransicht
Im Gegensatz zum Projektvisualisierer ist die Entwickleransicht nicht nur für Projektmanager konzipiert, sondern auch für andere Anwender, wie Entwickler. Die Entwickler können nicht den gesamten Projektverlauf sehen. Da jede Aufgabe einem bestimmten Entwickler zugewiesen ist, hat jeder von diesen seine eigene Aufgabenreihung. Es gibt vier Arten von Aufgaben- reihungen:
1. In Arbeit: Aufgaben, an denen der Anwender zur Zeit arbeitet.
2. Wartend: in dieser Aufgabenreihungen sind Aufgaben, deren Elternaufgaben alle schon beendet sind und darauf warten, von einem Anwender entgegengenommen zu werden. Nach Entgegennahme einer solchen Aufgabe, wird sie in die Fortschπttsrei- hung des Anwenders verschoben. In der Wartereihung sind die Aufgaben nach Priorität, Alter (die Zeit vom Datum, an dem die Aufgabe in die Reihung aufgenommen
wurde, bis zum heutigen Datum) und der Deadline (dem äußersten Zeitpunkt, an welchem die Aufgabe beendet sein muss) sortiert. Ein Anwender kann unabhängig entscheiden, welche Aufgabe er entgegennimmt. Aber falls sich in der Reihung Aufgaben mit höherer Priorität, näherer Deadline oder höherem Alter befinden, erscheint eine Warnmeldung.
3. Demnächst fällig: Aufgaben, die auf die Ausführung ihrer Elternaufgaben warten. Diese Aufgaben sind nach der Deadline ihrer Elternaufgaben sortiert.
4. Verschoben: Diese Aufgaben wurden manuell verschoben. Sie sind nach dem Datum, an welchem der Anwender die Aufgabe verschoben hat, sortiert.
Diese Reihungen sind in Form von Aufgabentabellen implementiert. Zwischen ihnen kann mittels Registerdarstellung gewechselt werden.
b.2. Grundfunktionalität (Workflow Management)
b.2.1. Gruppen und Anwender
Es gibt mehrere funktioneile Anwendergruppen. Jeder Anwender kann Mitglied mehrerer Gruppen sein oder überhaupt keiner angehören. Jedes Mtglied einer fünktionellen Gruppe hat die selben Rechte. Die Rechte von Mitgliedern mehrerer Gruppen sind die Summe der Rechte, welche sie von jeder einzelnen Gruppe erhalten.
b.2.2. Aufgabe und Arbeitsmappe
Arbeitsmappen bestehen aus mehreren verbundenen Aufgaben für verschiedene Gruppen oder Anwender. Jede Aufgabe beinhaltet eine Anzahl von Eigenschaften und Informationen über einen bestimmten Teil eines Projektes.
b.2.3. Assistenten
Es muss sehr viel Zeit darauf verwendet werden, um Aufgabe für Aufgabe zu erstellen. Um dieses Problem zu beheben, werden Assistenten für jede typische Arbeitsmappe angeboten. Diese generieren automatisch Arbeitsmappen mit den entsprechenden Aufgaben, wenn der Projektmanager sein von einem Assistenten bereitgestelltes Formular ausgefüllt hat.
b.2.4. Assistenten-Generatoren
Für wiederholte Anforderungen können passende Assistenten erzeugt werden. Um es Firmen zu ermöglichen eigene Assistenten zu generieren, wird eine spezielle Assisteneten-Generator- Software implementiert.
b.2.5. Analyse
Ein Analyse-Modul steht für Manager zur Verfügung, um Informationen von Anwendern, Angestellten, Aufgaben, Zeiten, Durchschnittszeiten und anderes statistische Material zu extrahieren.
b.2.6. Rollback
Es ist ein spezieller Mechanismus implementiert, welcher es erlaubt, ein Rollback der Aufgaben zu fahren, welche als vollendet markiert wurden, dies aber noch nicht wirklich sind.
b.2.7. Dokumente
Für jede Aufgabe kann eine Anzahl von zusätzlichen Dokumenten angehängt werden. Autho- risierte Anwender haben in diese Einblick und können sie ändern und sichern. Dieses Feature ist als Client-Server-Lösung unter Verwendung einer Web-Browser-Umgebung implementiert.
b.3. Ressourcenverwaltung
(Figur 2)
Das Ressourcenverwaltungs-Modul (Ressource Management (RM) Module) ist ein mit den entsprechenden Features ausgestattetes Tool zum Client-Server-Ressourcen-Management mit Ressourcenzeitenverwaltung und Projektstatus-anzeige.
b.3.1. Ressourcen-Datenbank
Alle Ressourcen (Entwickler-Ressourcen, Hardware-Ressourcen etc.) besitzen ihr eigenes Ressourcenformular, das ihre speziellen Eigenschaften beschreibt. Diese Formulare sind mit den entsprechenden Anwenderdatensätzen in der Anwenderdatenbank verknüpft. Die zu erfassenden Eigenschaften sind folgende:
• Name, Beschreibung, Angabe der Anwenderdatenbank
• Typ und Klassifikation (Entwickler, Projektmanager, Software-Tester etc.)
• Berufliche Fähigkeiten in Abhängigkeit verschiedener Kriterien
• Angaben über Bewertung und Einstufung
b.3.2. Zeitkarten-Datenbank
Jeder Entwickler füllt seine eigene Zeitkarte aus. Die Zeitkarte beschreibt, wann und wie viel Entwicklungszeit er einem Projekt widmen kann. Wenn einem Entwickler Arbeit zugewiesen wird, wird automatisch eine Busy-Zeitkarte generiert.
Eine Busy-Zeitkarte kann auch manuell eingegeben werden. Sie enthält Informationen über den Beschäftigungsplan des Entwicklers. Während des Entwicklungsprozesses kann sich die Dauer einiger Aufgaben ändern, worauf hin die Zeitpläne dem gemäß angepasst werden. Die Zeitkarten werden ebenfalls entsprechend automatisch modifiziert. Die Differenz zwischen den Daten der Verfügbarkeits-Zeitkarte und denen der Busy-Zeitkarte ergibt eine Menschstunden-Ressource, die für andere Aufgaben zur Verfügung steht.
b.3.3. Projektzeiten-Modul
Das Projektzeiten-Modul ist ein mächtiges Abfrage-Tool, das es Unternehmensmanagern ermöglicht, die augenblicklichen Verfügbarkeits- und Beschäftigungszeiten einer Ressource sowie deren bisherige Einsatzzeiten im Projekt zu eruieren. Es stellt folgende Filter zur Verfügung:
1. Zeitintervall
2. Projektspezifikationen
3. Ressourcenspezifikationen
4. einzelner Entwickler oder eine Liste von Entwicklern
5. Entwicklergruppe
6. Kombination von Selektionskriterien (z.B. Java-Programmierer mit einer Bewertung von mehr als 86%)
7. Schätzung der erforderlichen Zeiten
Als Ausgabe einer Abfrage werden die entsprechenden Ressourcen mit den dazugehörigen Zeiten aufgelistet (Verfügbarkeits-, Beschäftigungs-, Einsatz- und Gesamtzeiten).
Mit Flilfe des Tools können z.B. folgende Fragen beantwortet werden:
• Wie viel Zeit wurde für was in einem bestimmten Projekt aufgewendet?
• Wie viel Zeit wird für was in einem bestimmten Projekt aufgewendet werden?
• Wie viel einer bestimmten Art von Ressourcen sind verfügbar innerhalb einer bestimmten Zeitspanne?
• Wie viel einer bestimmten Art von Ressourcen sind zur Zeit innerhalb eines bestimmten Projekts beschäftigt?
• Wann wird eine bestimmte Menge einer Art von Ressourcen verfügbar sein?
b.3.4. Einzelzeiten-Modul
Das Einzelzeiten-Modul der Ressourcenverwaltung ist ein persönliches Arbeits-Tool, das einem Einzelanwender den Arbeitsstatus, inklusive der neuen Schätzung, mitteilt. Es gewährt einem Anwender zugleich eine genaue Übersicht über alle zugewiesenen Aufgaben, selbst
über mehrere Projekte hinweg. Im Grunde handelt es sich um das gleiche Tool wie das Projektzeiten-Modul, nur auf individuelle Zwecke hin ausgelegt.
b.3.5. Reservierung
Falls ein Projekt noch nicht komplett genehmigt wurde und nach Meinung des Managers in näherer Zukunft noch eine Anzahl von Ressourcen erfordern würde, kann er diese Ressourcen reservieren, indem er virtuelle Busy-Zeitkarten anlegt. Die reservierten Ressourcen erscheinen nicht in Abfragen anderer Manager. Jede Reservierung hat eine Lebenszeit, nach welcher die eventuelle Anstellung verworfen wird.
b.3.6. Ausschreibung
Falls der Manager in der Ressourcendatenbank keine passenden Ressourcen findet, die den Anforderungen für ein bestimmtes Projekt genügen, schreibt er diese aus. Die Ausschreibung ist eine öffentliche Einladung an Entwickler, am Projekt teilzunehmen. Alle Anforderungen werden mit einer kurzen Beschreibung auf Ausschreibungs-Pages angeboten. Eine Anzahl verschiedener Ausschreibungen können gleichzeitig existieren. Entwickler sollen signalisieren, dass sie mit den Bedingungen einverstanden sind und am Projekt teilnehmen wollen. Neue Angebote werden mittels Web-Front-End, PIM und dem Instαnt-Messαging-Modul verbreitet.
Wenn genügend Rückmeldungen stattgefunden haben, werden alle Bewerber durch den Projektmanager überprüft, um ein Team zusammenzustellen. Die ausgewählten Kandidaten werden vom Projektmanager informiert.
b.3.7. Entwicklerbewerbungserfassung
Um Bewerber für zukünftige Einsatzmöglichkeiten sammeln zu können, steht eine Erfassungsmaske im Internet zur Verfügung. Entwickler können ihr Profil eingeben, das gemäß der Vorgaben ihre Stärken und Schwächen zum Ausdruck bringt. Relevante Bewerbungen werden in die Ressourcendatenbank mit aufgenommen.
b.4. Reporting-System
Zur Überwachung des Projektfortschritts ist ein Reporting-System vorgesehen, welches
• bei erfolgreicher Beendigung einer Aufgabe oder
• bei Verzug
eine Message an den zuständigen Projektleiter versendet. Dieser hat die Möglichkeit pro Aufgabe zu bestimmen, ob entsprechende Messages geschickt werden sollen, und wenn ja, die Zeitspanne festzulegen, nach welcher die Message aktiviert werden soll; letzteres in einer Prozentangabe bezogen auf die Dauer der Aufgabe.
Analog werden in einem nächsten Schritt, Erfolgs- bzw. Verzugs-Messages an das Management weiter geleitet. Dies ist in mehreren Ebenen, gemäß der Unternehmenshierarchie, möglich. Gegebenenfalls kann in einem letzten Schritt auch der Kunde informiert werden.
c Dokumentenmanagement
c.1. Versionskontrolle
(Figur 3)
Alle von einem Anwender erstellten Komponenten (Dokumente, Quellcode, kompilierte Module, Notizen) werden in Bindings (Heßer) gespeichert. Ein Binding ist eine Sammlung von Komponenten, welche eine komplette Arbeitsphase darstellt.
Entwurfsordner (draft folders) sind vorgesehen, um Komponenten zu speichern, die noch nicht vollendet sind. Komponenten innerhalb eines Entwurfsordners müssen nicht versions- bezogen miteinander übereinstimmen. Wenn der Anwender seine Arbeit am Entwurf beendet hat, bestimmt er jenen zum Aktuellen Ordner (actual folder) und das bisher darin enthaltene Binding wird als Archivordner (archive folder) ausgelagert. Im Archivordner werden alle Bindings in der Reihenfolge ihres Zugangs abgespeichert, wobei das zuletzt archivierte Binding an letzter Stelle steht.
Auf diese Weise ergibt sich folgende Struktur:
■ Im Aktuellen Ordner befindet sich die aktuellste Version des Quellcodes, der kompilierten Module und die entsprechenden Dokumentation sowie Notizen.
■ Im Entwurfsordner befinden sich die Komponenten an denen gerade gearbeitet wird. Dies kann für die Teamarbeit sehr nützlich sein.
■ Im Archivordner befinden sich alle Versionen der Bindings.
Jedes Binding hat folgende Eigenschaften:
1. Aktualisierungsdatum (Zeitpunkt, zu dem das Binding im Aktuellen Ordner Eingang gefunden hat)
2. Name des Entwicklers (da sich während des Projekts diesbezüglich Änderungen ergeben können)
3. Kommentar
4. Versionsnummer
Nachdem das Projekt abgeschlossen ist, werden alle zugehörigen Bindings mit dem kompletten Versionsbaum in der Archivdatenbank gesichert, (siehe hierzu das Kapitel Archivdatenbank)
c.2. Web-Front-End
Das Web-Front-End ist eine integrierte, visuelle, auf dem Web basierende Applikation, welche es dem Anwender (hauptsächlich dem Entwickler) ermöglicht, mit dem Entwicklungszentrum, dem Projektmanager und den anderen Mitgliedern des Projektteams zu interagieren und alle notwendigen Informationen zu erlangen. Diese Anwendung erlaubt es dem Anwender ebenfalls, den Teil seiner Aufgabe, den er vollendet hat, zentral abzuspeichern.
Das Web-Front-End ist in dynamischer HTML, unter Verwendung von JavaScript und Java geschrieben, so dass auf der Client-Seite als einzige Applikation ein Java-fähiger Browser erforderlich ist.
Von der Anwendung aus besteht ein Zugang zur PIM- Applikation, die das Persönliche PIM, die Gruppenfunktionen sowie das Instant Messaging umfasst. Zusätzlich gibt es Schnittstellen zum Workßow-Management-System-Modul und zum Arbeitsplatz.
PIM
Persönlicher PIM Gruppenfünktionen Instant Messaging
Workflow
Arbeitsplatz
Aufgabe Jnternet Shop Datenbank1 Aktuell Archiv Entwürfe
Aufgabe , ava Chat Server" Aktuell Archiv Entwürfe
Arbeitsplatz
Der Arbeitsplatz ist eine Sammlung von Arbeitsresultaten (Dokumente, Quellcodes etc.), die für den Entwicklungszyklus notwendig sind. Die Anwender arbeiten mit Bindings (Hefter), welche einen Software-Entwicklungszyklus darstellen. Bindings sind klassifiziert in Aktuell, Archiv und Entwurf gemäß den Regeln, die in der
Versionskontrolle (vgl. oben) beschrieben sind. Es gibt verschiedene Sammlungen von Bindings für jede Aufgabe. Bindings können folgende Abschnitte beinhalten:
• Anforderungen
• Spezifikationsanalysen
• Planung
• Design
• Implementierung
• Integration
Abschnitte können durch den Administrator unter Verwendung des Projektmanagement Interfaces hinzugefügt, geändert und gelöscht werden. Sie werden typischerweise folgende Informationen beinhalten:
Anforderungen
Vom Kunden erhaltene Dokumente, die den Nutzen spezifizieren
Spezifikationsanalyse
Vom Analyseteam und den Projektmanagern zusammengestellte Dokumente
Planung
Hier bestehen Verknüpfungen zum Workflow-Management-System Verknüpfung zum Einzelzeiten-Modul
Design
Anwenderschnittstellenspezifikation inkl. Grafikdaten (Screenshots, Darstellungen, Icons, etc.)
Detailliertes Design (alle designrelevanten Daten im gebrauchsfertigen Format)
Implementierung
Quellcode
Testspezifikationen
Compilierte Module (EXE, DLL, CALASS etc.)
Dokumentation:
SW Programmiererhandbuch SW Installationshandbuch SW Anwenderhandbuch SW Fehlerhandbuch
Integration
Systemtest (Resultate and Kommentare) Beta-Test (Resultate and Kommentare) Implementation (Resultate and Kommentare)
Typischerweise hat ein Entwickler nur zum Implementierungsabschnitt einen Lese- und Schreibzugriff. Der beschränkte Zugriff auf andere Abschnitte wird einem Anwender durch den Projektmanager gewährt.
Alle Dokumente und Dateien werden in der Zentraldatenbank gespeichert. Um Duplikate und Datenintegrationsverletzungen zu vermeiden, werden dem Anwender in den Bindings am Web-Front-End lediglich Verknüpfungen (Links) zu diesen Dokumenten und Dateien gezeigt. Z.B. sind die Dokumente im Anforderungsabschnitt für alle Entwickler, die an dem Projekt arbeiten, ein und dieselben, stehen aber in Form von Verknüpfungen jedem einzelnen Entwickler zur Verfügung.
Die Entwickler können jede verfügbare Datei herunterladen und das entsprechende Flag „Update" setzen. Dies erlaubt es dem Anwender unter Verwendung des PIM-Moduls, Meldungen über Updates und Änderungen in Dokumenten zu erhalten. Der Entwickler hat ebenso Zugriff auf frühere Versionen der Dateien, wenn er das Versionskontrollmodul verwendet. Ihm ist es möglich, seine Dateien auf seinen Rechten und Privilegien gemäßen Speicherplätzen abzuspeichern.
c.3. WAP-Front-End
Manchmal erfordern zeitkritische Aktivitäten eine permanente Überwachung und möglichst sofortige Reaktion. Dies ist der Grund, weshalb diese WAP-Schnittstelle implementiert wurde. Die Sammlung von Tools erlaubt es dem Anwender, sich mit seiner eigenen Arbeit zu beschäftigen - und das sogar außerhalb des Büros (in einem mit GSM versorgten Gebiet), wenn er ein WAP-fähiges Mobiltelefon benutzt. Es gibt zwei Arten des Gebrauchs von WAP: einen für Manager und einen für Entwickler.
c.3.1. WAP M (Management)
Diese Schnittstelle bietet die einfache Funktionalität folgender Module:
Projektplanung und -management (inkl. Workflow-Management). WAP benutzende Manager sind fähig, den momentanen Status ihres Projekts einzusehen, Ereignisse auf dem Kritischen Pfad zu verfolgen und auf Abweichungen mit entsprechenden Anpassungen zu reagieren, um eine Fortsetzung des Projekts zu gewährleisten.
Ressourcenmanagement. Dieser Teil der WAP-Applikation erlaubt es Managern auf einfacher Weise, die verfügbaren Ressourcen für bestimmter Erfordernisse und den Status beschäftigter Ressourcen zu bestimmen sowie zu erkennen, wann diese frei für neue Projekte sind.
• Reportsystem. Bei Benutzung dieses Tools ist es dem Manager möglich erhaltene Reports zu überblicken und auf diese zu antworten.
c.3.2. WAP D (Development)
Mit der WAP-D-Schnittstelle steht dem Entwickler eine eingeschränkte WAP-Version seines WEB-Front-End zur Verfügung. Folgende Tools werden dem Entwickler mittels WAP geboten:
• Workflow. Entwickler können ihre Aufgaben, Zeitrahmen etc. überblicken
• Ressourcenmanagement. Entwickler haben die Möglichkeit in ihre Zeitkarte ihre verfügbare und Beschäftigungszeiten einzutagen. Sie besitzen zudem die Möglichkeit, Einladungen zu Projekten zu überblicken und darauf zu reagieren.
c.3.3. WAP-PIM
Die grundlegenden PIM-Funktionalitäten sind in das WAP-Front-End integriert zusammen mit anderen Teilen. Anwender können:
• Meldungen erhalten und senden
• Meetings überblicken und einberufen
• Alte Kontaktinformationen aufrufen und neue eingeben
• Anmerkungen anschauen und editieren
• Gruppeninformationen erhalten
c.4 Sicherheit: Verschlüsselung der Kommunikation
Es gibt zwei Kommunikationsbereiche der ,JPROJECTSOFT": das Intra-Extranet und das Internet.
Die Internet-Anwendung ihrerseits hat zwei Bereiche, einen öffentlichen und einen Sicherheitsbereich. Der öffentliche Bereich dient zum Empfang von Bewerbungen potentieller Entwickler und zum Akquirieren von Kunden. Der Sicherheitsbereich wird für die Projektentwicklung genützt.
Jeder Anwender des Systems hat seinen eigenen Benutzernamen und sein eigenes Kennwort. Es sind verschiedene Möglichkeiten vorgesehen, Kennwortrestriktionen zu definieren: Z.B. das Kennwort muss mindestens acht Zeichen lang sein, es darf während der Dauer eines Jahres nicht ein zweites mal benutzt werden etc. Das Kennwort muss innerhalb einer definierten Periode geändert werden. Das erste Login sowie das entsprechende Kennwort wird dem Anwender aus Sicherheitsgründen per Airmail oder Express Mail zugänglich gemacht.
Der Datenverkehr zwischen Client-Browser und Server ist durch eine 128-Bit- Verschlüsselung geschützt. Es wird die Standard-SSL- Verschlüsselung von VerySign verwendet. Eine persönliche Verschlüsselung sichert optional den E-Mail- Verkehr, der außerhalb des internen Nachrichtensystems stattfindet.
Login, Logout und andere sicherheitsrelevanten Aktionen werden in einer Log-Datei protokolliert. Zusätzlich kann auch eine Software-Firewall auf dem Web-Server installiert werden, um Zugriffe zu kontrollieren und zu limitieren. Ein visuelles Interface wird zur Verfügung gestellt, um es den Systemadmi istratoren zu ermöglichen, sicherheitsrelevante Aufgaben zu managen und zu überwachen.
Die WAP-Sicherheit wird vom Handy zum WAP-Gateway durch das GSM-Netz gewährleistet, und die gleiche SSL-Sicherheit wird vom WAP-Gateway zum Web-Server genutzt.
Auf den Intranet-Bereich kann von Außen nicht zugegriffen werden. Deshalb kann es der LAN- Administrator auf LAN-Ebene gemäß der verwendeten Plattform sichern.
d. PIM (Personal Information Manager)
d.l Personal PIM
Die PIM-Übersicht beinhaltet die wichtigsten Einträge des Tages: Aktuelle Termine, Aufgaben, Kontakte und Workflow-Einträge. Es handelt sich um die Einstiegsseite zum PIM. Alle Informationen werden in Listenform dargestellt.
Das PIM-Kalender-Modul bietet einen Kalender mit verschiedenen Modi und speziellen Funktionen: Dateneintragungsmaske und Datenausgabemaske. Es stehen vier verschiedene Ansichten zur Auswahl:
• Tag
• Woche
• Monat
• n weitere Tage
In allen Ansichten können die Termine nach Kategorie angezeigt werden (z.B. nur private Termine).
Ereigniskategorien:
• einmaliges Ereignis (z.B. Meeting Müller 11 Uhr)
• mehrtägige Ereignisse (Urlaub, Seminar)
• Wiederkehrende Ereignisse (Jahrestage, Jourfix, Kegelabend)
Außerdem werden alle Ferientermine und Feiertage Deutschlands angezeigt (in weiteren Versionen auch für andere Länder möglich).
Alleinstellungsmerkmal: Die Liste eines, des nächsten oder von "n"-Tagen kann per E-Mail mit einem Maximum an Komfort und Flexibilität in Organisation versendet werden. Wichtige Zeiträume vor einem wichtigen Event können eingegrenzt werden (z.B. die nächsten 9 Tage bis zu einer Messe)
Kontakte-Datenbank: Alphabetische Register:
6 frei definierbare Nummern mit der Möglichkeit, eine Nummer als primär zu bestimmen (Diese Nummer wird in der Kontaktliste angezeigt und in der WAP-Ansicht oben stehen).
Felder für Erinnerungsdaten: Geburtstage, Jahrestage mit der Möglichkeit, diese automatisch in den Scheduler als Event zu übernehmen
Kategorien:
• privat
• geschäftlich
• nutzerdefiniert
Vier Kennwörter sind vom Anwender frei definierbar. Sortiermöglichkeiten nach:
• Vorname
• Nachname
• Firma
• Stadt
• Telefonnummer
• E-Mail
Such möglich keiten nach:
• Vorname, Nachname
• Vorname
• Name
• Firma
• Stadt
• Telefonnummer
• E-Mail
• Kundennummer
PIM-„To do"-Liste
Es werden 5 Prioritäten angeboten: sehr niedrig niedrig normal hoch sehr hoch
Textfeld-Open-Item
Startdatum/Fälligkeitsdatum
Projektstatus in Prozent (Eingabe in Prozent, Ausgabe als Statistik)
Erledigt Q/ )
Was (Projektname und Typ)
Jede Aufgabe kann mit einer Priorität eingegeben werden. Es existiert ein Checkbox-Feld, mit dem sich erledigte Aufträge markieren lassen, sowie ein Feld, wo der Nutzer
die Aufgabenstellung als Text eingeben kann. Die Kategorie wird über ein Dropdown-Feld auswählt.
Es besteht die volle Integrationsfähigkeit mit anderen Modulen. Das Personal-PIM- Modul enthält bereits Kernelemente einer Projektplanung (Aufgabe/Status-Übersicht in Form eines Statusbalkens)
PIM-Notizen-Modul
Kategorien:
• privat
• geschäftlich
• nutzerdefiniert
• Subjekt der Notiz
d.2 Gruppenfunktionen
Die Anwender legen namentlich gleiche Kategorien für Projekte oder Key Accounts an (z.B. Kategorie „Payment Modul (Java)". Die so gebildete Gruppe könnte ein Team von 17 Entwicklern und der Projektmanager sein, die nun unter dieser Kategorie miteinander interagieren könnten). Die Einträge in dieser Kategorie werden allen in diesem Projekt eingebundenen Anwendern wechselseitig zugänglich sein, so dass jeder über seinen eigenen Projektstatus und den seiner Kollegen informiert ist, um z.B. im Verzögerungsfall eingreifen zu können. Die Führungsebene hat normalerweise wesentlich weniger Kommunikationsbedarf und schreitet typischerweise nur bei Fehlentwicklungen im Projekt bei Aufgaben mit hoher Priorität ein. Je komplexer das Projekt und je mehr Mitarbeiter damit befasst sind, desto höher ist der Effizienzvorteil, da der Abstimmungsbedarf untereinander massiv reduziert wird.
Hierzu sind die Projektfortschrittsbalken bei jeder Aufgabe, die vom Zuständigen für diese Aufgabe gepflegt werden, zweifarbig. Der rote Balken kennzeichnet den absoluten Fortschritt der einzelnen Aufgabe. Der gelbe Balken den Aufgabenfortschritt im Vergleich zum Vortag. Die Führungsebene sieht die Gesamtübersicht zu dem Projekt und schreitet nur bei Verzögerungen oder der Überschreitung von Deadlines ein. Die Überschreitung von Deadlines in den einzelnen Aufgaben wird überdies in der Gesamtübersicht für die Führungsebene mit einem blinkenden Button in der verzögerten Aufgabe angezeigt.
Die Führungsebene sieht überdies die Termineinträge, der mit dem Projekt befassten Mitarbeiter und kann über die Ereigniseinträge Urlaubszeiten und Krankmeldungen einsehen und gegebenenfalls reagieren. Bei Handlungsbedarf ist die
Kontaktaufnahme über Instant-Messaging direkt mit allen Mitarbeitern, die online sind, möglich.
Einrichtung neuer Gruppen:
Neue Gruppen können von allen registrierten Benutzern eingerichtet werden. Der Benutzer, der die Gruppe angelegt hat, ist automatisch der Gruppenadministrator, der folgende Funktionen ausüben kann:
• Benutzer in die Gruppe einladen
• Benutzern die Mitgliedschaft entziehen
• Administratorrechte an ein anderes Mitglied der Gruppe übertragen
Anmeldeverfahren :
Es sind zwei Wege vorgesehen:
1. Der Gruppenαdministrαtor lädt den Benutzer in die Gruppe ein. Daraufhin erscheint in dem Personal PIM des eingeladenen Benutzers eine Meldung, dass er in die Gruppe eingeladen worden ist. Stimmt der Benutzer der Einladung zu, wird er in die Gruppe als Mitglied eingetragen und es wird eine Kategorie „Gruppenname" in seinem Personal PIM erstellt, unter der die Gruppen-Daten angezeigt werden.
2. Der Benutzer beantragt eine Mitgliedschaft bei einer Gruppe. Der Gruppenadministrator bekommt eine Meldung und entscheidet, ob dem Benutzer die Mitgliedschaft gewährt wird.
Privat- und Gruppenansicht
Der Anwender kann zwischen Privat- und Gruppenansicht wechseln. Gruppenfünktionen in der Privat-Ansicht:
• Gruppentermine, die den Benutzer betreffen, werden auch im Privatscheduler unter der Kategorie „Gruppenname" angezeigt und sind editierbar.
• Gruppenaufgaben, die den Benutzer betreffen, werden auch in der Privat- Aufgabenliste unter der Kategorie „Gruppenname" angezeigt und sind editierbar.
• Gruppenkontakte werden auch in der Privatansicht ,J ontakte" unter der Kategorie „Gruppenname" angezeigt.
Gruppennotizen werden auch in der Privatansicht ,-Not/zen" unter der Kategorie „Gruppenname" angezeigt.
Gruppenfunktionen in der Gruppen-Ansicht:
• Gruppentermine, Gruppenaufgaben, Gruppenkontakte, Gruppennotizen mit Ansichten: ,-4//e Mitglieder der Gruppe" oder „Benutzer Ν" .
• Beim Erstellen von neuen Einträgen kann angegeben werden, ob der Eintrag für o alle, o oder einzelne bzw. mehrere Mitglieder der Gruppe bestimmt ist.
• Teπrimabstimmung
d.3 WAP
Da der gesamte PIM WAP-fähig ist, können sämtliche PIM-Funktionen in vereinfachter und verkürzter Version auch via Handy genutzt werden.
d.4 Instant-Messaging
Mit dem Instant-Messaging-System werden individuell gestaltete Mitteilungen verschickt.
So kann z.B. bei Unterbrechung des Kritischen Pfades oder des Workflow automatisch eine entsprechende Nachricht via WAP an Vorstand, Projektmanager und die betroffenen Entwickler versendet werden.
Um dem Anwender einen permanenten und schnellen Zugriff auf das Instant- Messaging-System zu ermöglichen, ist das Modul als Windows-Applikation implementiert und direkt aus der TaskBar erreichbar.
Beim Doppelklicken auf das IM-Icon öffnet sich das IM-Fenster. Die erste Ansicht soll einen Überblick verschaffen, wer gerade online ist:
• Die Benutzer, die gerade online sind, sind durch Fettschrift besonderes gekennzeichnet.
• Die Benutzer, die momentan offline sind, sind grau hinterlegt.
• Neben den Benutzernamen stehen die Statusangaben der Benutzer.
• Die Personen können zu Gruppen zusammengefasst werden.
Falls eine Nachricht an Benutzer geschickt wurde, der gerade offline war, wird die Nachricht auf dem Server gespeichert und beim nächsten einloggen an den Benutzer übermittelt.
Blackboard
Zusätzlich wird die Funktion einer Blackboard in die Community integriert. Die Blackboard ist mit der Funktion „Suche/Biete" ausgestattet. Somit eignet sich das System für Kleinanzeigen. Die Suche erfolgt nach booleschen Regeln und nach Volltext.
d.5 Internet- Community d.5.1 Foren
Über Foren kann an Diskussionen teilgenommen werden. Wünsche, Fragen, Anregungen können aufgegriffen und behandelt werden.
Die Foren sind mit dem Bewertungssystem versehen. Nach dem Lesen des Beitrags kann der Benutzer den Beitrag mit Punkten bewerten: von „hat mir sehr geholfen" bis „ist sehr schlecht". Der Anwender hat die Möglichkeit die Diskussionsforen zu durchsuchen und die Suchergebnisse nach Bewertungspunkten zu sortieren.
d.5.2 Hotline
Oft gestellte Fragen an die Hotline und häufig aufgegriffene Themen in den Foren werden gesammelt und in einer Datenbank gespeichert.
e Add-on modules
e.1 Bewertungsmodul
(Figur 4)
Das Bewertungsmodul ist ein Tool, das es erlaubt, objektive Kriterien bezüglich der Feststellung intellektueller, organisatorischer und anderer Fertigkeiten und Fähigkeiten von Entwicklern zu treffen. Die Ergebnisse des Bewertungsmoduls werden für die Anstellungen im Rahmen zukünftiger Projekte verwendet. Außer der Bewertung in jeder einzelnen Kategorie von Fertigkeiten und Fähigkeiten findet für jeden Entwickler eine Gesamtbewertung statt sowie die Berücksichtigung eines Wartezeiten-Faktors.
e.1.1. Fertigkeiten und Fähigkeiten (Aufgabenbewertung)
Unser Unternehmen hat die Möglichkeit, eigene Kategorien und Kriterien zur Messung der Fertigkeiten und Fähigkeiten zu definieren. Um die Berechnung zu vereinfachen, basieren alle Bewertungen auf einem Punktesystem von 0 = schlecht bis 100 = ausgezeichnet. Einige Beispielkategorien werden im Folgenden gezeigt:
• In Time: Diese Bewertung bestimmt, wie gut der Entwickler die zeitliche Vorgabe seiner Aufgabe erledigt hat. Hat der Entwickler diese früher als vorgegeben bewältigt, kann er z.B. mit 100, ist er genau zur vorgegebenen Zeit fertig geworden mit 80 und konnte er die Vorgabe nicht einhalten mit 10 bewertet werden. Die Einteilung der Bewertung und deren Bedeutung wird durch das Unternehmen festgelegt. Der Grundgedanke dabei ist, dass die festgelegten Bewertungskriterien unverändert von Projekt zu Projekt und bei allen Entwicklern in gleicher Weise angewendet werden, um so einen einheitlichen Nergleichsmaßstab für alle Projekte sowie alle Entwickler zu bilden.
Benutzerhandbuch
Programmiererhandbuch
• Transparenz des Codes
Kompaktheit des Codes
Progranimiertechniken
Fehlerhäufigkeit während des Alpha-Tests
Fehlerhäufigkeit während des Beta-Tests
Die Bewertung jedes Kriteriums erfolgt von verschiedenen Teams und Abteilungen unseres Unternehmens. Die Fehlerhäufigkeit während des Alpha-Tests z.B. wird von der Testabteilung bewertet, das Benutzerhandbuch vom Dokumentationsteam etc.
Die Bedeutung jedes Kriteriums kann von Aufgabe zu Aufgabe variieren. Deswegen erhält der Projektmanager die Möglichkeit, abhängig vom Schwierigkeitsgrad des Projekts, der verfügbaren Zeit, der Wichtigkeit der Dokumentation etc. eine Gewichtung für jedes dieser Kriterien in Form einer Prozentangabe vorzunehmen. Eine Gewichtung gilt für alle Entwickler, die an der entsprechenden Aufgabe mitarbeiten. Dies eliminiert den sogenannten „menschlichen Faktor" bei der Bewertung verschiedener Entwickler.
Die Gesamtbewertung ist der gewichtete Durchschnitt aller Bewertungen. Er wird nach der Ausführung jeder Aufgabe für jeden Entwickler auf der Basis der durch den Projektmanager zugewiesenen Gewichtung sowie der Bewertung der entsprechenden Abteilungen und Teams berechnet.
e.1.2. Wartezeiten-Faktor
Der Wartezeiten-Faktor ist ein Kriterium zur Feststellung, wie lange hochqualifizierte Entwickler bei der Vergabe neuer Aufgaben nicht berücksichtigt wurden. Diese Kategorie dient dazu, Entwickler, die lange Zeit auf eine Aufgabe gewartet haben und eine ähnliche Qualifikation wie andere, welch kürzlich engagiert wurden, besitzen, zu stimulieren, indem ihnen eine Priorität für nachfolgende Aufgaben eingeräumt wird. Der Wartezeiten-Faktor ist abhängig von den Nichtbeschäftigungszeiten, der Beschäftigungsquote (Beschäftigungszeit / Verfügbarkeitszeit), dem Zeitpunkt der Beendigung der letzten Aufgabe etc.
e.1.3. Entwicklerbewertung
Die Aufgabenbewertung erfolgt nach Beendigung jeder Aufgabe. Der Durchschnitt aller Aufgabenbewertungen ist einer der wichtigsten Faktoren bei der Entwicklerbewertung, neben Kommunikationsfähigkeit, Kooperationszeiten etc.
e.1.4. Bewertungskarten-Datenbank
Eine Bewertungskarte ist eine Sammlung von Entwicklerbewertungs-Datensätzen für alle Aufgaben und Gesamtbewertungen unterschiedlicher Perioden. Die Bewertungskarten- Datenbank beinhaltet die Bewertungen aller Entwickler. Die Informationen dieser Datenbank stehen dem Ressourcenmanagement-Modul zur Verfügung, wenn eine Abfrage nach passenden Kandidaten für ein neues Projekt abgefragt wird.
Ein spezielles Abfragetool für direkte Abfragen in der Bewertungskarten-Datenbank steht ebenfalls zur Verfügung. Der einzelne Entwickler hat die Möglichkeit, seine eigene Bewertungskarte einzusehen sowie sie mit den Durchschnittsbewertungen des Unternehmens zu vergleichen.
e.2 Auftragsanfragenerfassung
Auftragsanfragen können auf einer Page im Internet erfasst werden. In ein entsprechendes Formular kann der Kunde seine Wünsche bezüglich von zu entwickelnden Anwendungen sowie seine diesbezüglichen Preisvorstellungen eingeben.
e.3 Knowhow-Datenbank
Die erfassten Antragsanfragen können mittels einer Suchfunktion der Know-how-Datenbank ausgewertet werden. Hierbei wird in der Dokumentation früherer Projekte nach ähnlichen Routinen wie in den gewünschten Programmen mit einer beliebigen Kombination von Suchbegriffen gesucht.
e.4 Schnittstellen zu Rechnunqswesenmodulen
Für ein Managementinformationssystem existieren Schnittstellen zu den entsprechenden Rechnungswesen-Modulen von Fremdanbietern. Die von diesen bereitgestellten Daten können zur Ermittlung von bisher verausgabten Kosten herangezogen werden.
f. Plattform
(Figur 5)
Es folgt ein kurzer Überblick über Technologie sowie die Software- und Hardware- Plattformen, die in der "PROJECTSOFT" ihre Anwendung finden.
f.1. DB-Plattform
Es ist vorgesehen, einen ORACLE-SQL-Server als Datenbank-Plattform zu verwenden. Die Applikationen greifen über ODBC-, ADO- und JDBC-Schnittstellen auf die Datenbank zu. Da zwischen den Applikationen selbst und der Datenbank ein spezieller Database-Access- Layer installiert ist, kann in Zukunft problemlos auf andere über ODBC- und JDBC- Schnittstellen verfügende Datenbanken umgestellt werden. Die Datenbank-Hardware- Plattform stellt keine kritischen Anforderungen; sie wird aufgrund des zu erwartenden Volumens an Daten und Transaktionen konfiguriert.
f.2. Web-Plattform
Die meisten unserer bestehenden Web-Lösungen basieren auf Microsoft-IIS- und Microsoft- ASP-Technologie. Wegen des Microsoft IIS ist die Hardware-Plattform auf PC-Server und Alpha-Server beschränkt. Falls größere Datenmengen zu erwarten sind, besteht die Option, die Microsoft-Clustering-Lösung zu verwenden, welche die Server-Belastung verteilt.
f.3. Sonstige serverseitige Module
Die sonstigen serverseitigen Module sind in Java und C++ implementiert. Die meisten von ihnen sind plattformunabhängig. Als Beispiel sei der Chat-Server des Gruppen-Moduls genannt, welcher in Java und zur Kommunikation mit anderen Teilen der Applikation unter Verwendung von XML und TCP/IP implementiert ist.
f.4. Client-Seite
Auf der Client-Seite ist lediglich ein Java-fähiger Web-Browser nötig. Unsere Applikationen sind 100% kompatibel zum Microsoft Internet Explorer ab Version 4.0 sowie zum Netscape Navigator ab Version 4.x.