Schwartmann-IT

Kompetente, freiberufliche Unterstützung in jeder Phase Ihrer Vorhaben, von der Planung über Umsetzung bis hin zu Betrieb und Wartung. Durch Vernetzung mit erfahrenen, hoch qualifizierten Freiberuflern und kompetenten, erfolgreichen kleineren und größeren IT-Unternehmen können Projekte in allen Größenordnungen durchgeführt werden. Über 30 Jahre praktische Erfahrung in Projekten in verschiedenen Gebieten steht Ihnen zur Verfügung:

Technische Anwendungen mit hohen Anforderungen
Es wurden diverse Projekte mit hohen Anforderungen an die Sicherheit und/oder zeitkritische Abläufe mit komplexen Messdaten für die Medizin, Experimente in der bemannten Raumfahrt, sowie Industrie durchgeführt. Es besteht ein großer Erfahrungsreichtum im praktischen Einsatz von Kryptographie, Datenerfassung, Datenverarbeitung und Datenbanken.
Umfeld der Selbstverwaltungen und Verwaltung
Die Selbstverwaltungen wurden bei der Einführung der Gesundheitskarte, der Heilberufsausweise und der Telematik-Infrastruktur im Gesundheitswesen unterstützt. Dabei reicht die Bandbreite der durchgeführten Tätigkeiten von Prozessanalysen, über Wirtschaftlichkeitsbetrachtungen bis hin zur Erstellung und Prüfung technischer Spezifikationen und Umsetzung von technischen Diensten und Komponenten. Anforderungen durch Gesetze, politische Strömungen und Wirtschaftlichkeit sind daher nicht fremd und können in Ihren Projekten berücksichtigt werden.
Forschung und Entwicklung
Es wurden viele technische Arbeiten - sowohl in der wissenschaftlichen Forschung, als auch in der industriellen (Produkt-)Forschung - übernommen. Sie erhalten Unterstützung von der Idee bis zur Marktreife von Produkt oder Dienstleistung. Gerne betreten wir hier auch gemeinsam "Neuland".

Beratung

Schwartmann-IT bietet Ihnen an, schon vor Beginn eines Vorhabens eine sachgerechte Analyse durchzuführen, und die Ergebnisse als Grundlage von Durchführungsentscheidungen vor und während des Projektes zu nutzen. Die Liste der hierbei zu betrachtenden Faktoren variiert projektabhängig, sollte aber immer auch folgende Punkte umfassen:

Ressourcenabschätzung
Strategische Entscheidungen über Eigenentwicklung, Zukauf von Personal oder Teillösungen und Outsourcing erfordern eine objektive Einschätzung des Bedarfs an Betriebsmitteln und Personal mit den erforderlichen Kenntnissen in dem geplanten Vorhaben. Durch Mitwirkung bei einer Vielzahl von Projekten aller Größenordnungen von ein bis zwei ProgrammiererInnen bis hin zu nationalen und internationalen Vorhaben habe ich, Dirk Schwartmann, viel Erfahrung bei der Abschätzung von Ressourcenbedarf und Aufwand.
Auswahl des Vorgehensmodells
Die Auswahl des Vorgehensmodells ist abhängig vom Kunden bzw. Einsatzgebiet des Vorhabens und von der Projektcharakteristik. Manche Vorgehensmodelle können den administrativen Anteil der Arbeit stark erhöhen. Vor allem, wenn sie nicht schon im Unternehmen eingesetzt wurden. Das passende Vorgehensmodell hängt aber auch stark vom Projekt selbst und den beteiligten Personen ab. Bei knappen Ressourcen kann beispielsweise Kanban von Vorteil sein. In anderen Fällen ist Scrum oder auch ein anderes Vorgehensmodell das Mittel der Wahl. Die Bandbreite hierfür ist groß und reicht von Extreme Programming bis hin zu sehr strukturierten Modellen mit hohem administrativen Aufwand, wie etwa V-Modell XT bei Projekten der öffentlichen Hand. Viele der marktüblichen Vorgehensmodelle wurden von mir in Projekten eingesetzt und die Erkenntnisse aus praktischem Einsatz können in die Betrachtungen einbezogen werden.
Einzusetzende Technologien und Programmiersprachen
Je nach Projektgröße und -inhalt sind Anforderungen an die Zielplattform, Architektur und einzusetzende Programmiersprachen gestellt oder Möglichkeiten müssen abgewägt werden. Auch dieser Aspekt sollte vor Beginn des Vorhabens genau betrachtet werden. So werden beispielsweise in Web-Projekten andere Anforderungen an die Profile der Entwickler und Kooperationspartner gestellt als in Client-Server-Systemen mit Fat-Clients oder massiv verteilten Systemen.

Projektmanagement

Unterstützung eines bereits bestehenden Projektmanagements wird ebenso angeboten wie Aufbau und (teilweise) Übernahme von Aufgaben zum Projektmanagement:

Übergreifendes Projektmanagement
Die klassischen Aufgaben des Projektmanagements, wie Projektplanung mit Aufwandsabschätzung und Terminplanung, Wirtschaftlichkeitsanalyse, Projektorganisation, Terminüberwachung, Steuerung von Zulieferern, Kostenplanung und -steuerung, Kommunikationsmanagement, sowie Risikomanagement können in Abhängigkeit vom Projekt ganz oder teilweise übernommen werden.
IT-relevante Projektmanagementaufgaben
Die IT-relevanten Aufgaben des Projektmanagements können auch als Teilleistung übernommen werden. Durch meine Zuarbeit sind Ihre ProjektmanagerInnen auch ohne IT-Fachkenntnisse in der Lage IT-Projekte zu steuern und können sich auf ihre Kernaufgaben konzentrieren. Es wird in diesem Falle Anforderungsmanagement, Kontrolle der Einhaltung des Vorgehensmodells und Projektfortschrittskontrolle durch Schwartmann-IT durchgeführt.
Erweitertes Risikomanagement
In vielen Projekten wird die Betrachtung von externen Risiken, wie aktueller Rechtsprechung und Marktentwicklung vernachlässigt. Im Verlauf des Vorhabens können sich technologische, politische oder wirtschaftliche Rahmenbedingungen ändern und damit Risiken entfallen oder neue Risiken hinzukommen. Je nach Projekterfordernissen kann ich auch solche Faktoren, sowie mögliche Angriffspunkte der Konkurrenz in die Risikobetrachtung einbeziehen. Ich kann Sie durch jahrelange Erfahrung hierbei unterstützen.

Training

Ein IT-Vorhaben kann nur dann erfolgreich sein, wenn die MitarbeiterInnen bestmöglich geschult sind. Komplexe Schulungen vor Projektbeginn ohne/ oder mit geringem Praxisbezug sind meist wenig hilfreich, um ein Projekt erfolgreich durchzuführen. Die Erfahrung zeigt, dass Schwächen und mangelnde Detailkenntnisse einzelner Projektbeteiligter oft erst im Projektverlauf richtig sichtbar werden. Ebenso können Engpässe durch zu geringe Verteilung des Wissens auf die ProjektmitarbeiterInnen auftreten. Abhilfe schafft hier ein projektbegleitendes Training, das gezielt die Schwachstellen aufgreift und in kürzeren Trainingsabschnitten mit Bezug zum Projekt diese Mängel behebt:

Programmiersprachen
Ich biete projektbegleitend, je nach Erfordernis, Training in Programmiermethodik (funktional, objektorientiert, aspektorientiert), in der im Projekt jeweilig genutzten Programmiersprache (C, C++, C#, Java, Scala, usw.) an. Ziel ist es, die besonderen Eigenschaften der Programmiersprache richtig zu verstehen und deren Vorteile gewinnbringend einzusetzen und Fallstricke frühzeitig zu erkennen und zu vermeiden.
Agile Softwareentwicklung mit Scrum
Die Einführung von Scrum und das Training Ihrer MitarbeiterInnen in den verschieden Rollen von Scrum (Team-Mitglied, Product Owner (PO), Scrum Master (SM)) wird projektbegleitend angeboten. Über den gesamten Prozess erhalten Sie und Ihr Team Unterstützung (Aufbau und Füllen der backlogs, Bildung von increments, sprint-planning und sprint-backlog, daily-scrums, sprint-retrospective, sprint-review).
Test getriebene Softwareentwicklung (TDD) und Qualitätssicherung
Testgetriebene Softwareentwicklung wird meist nicht richtig durchgeführt. Vielfach wird Software erst entwickelt und dann getestet. Tests sind dadurch oft unvollständig, kompliziert oder kaum möglich. Ein erfolgreiches Qualitätsmanagement kann nur dann erfolgen, wenn die EntwicklerInnen die notwendigen Maßnahmen zur Erfüllung von Qualitätsanforderungen verstehen und auch praktisch beherrschen. Ihre EntwicklerInnen lernen während der Arbeit den richtigen Einsatz von TDD. Auch das Verständnis von Testüberdeckungen wie etwa c0...c3 ist notwendig, um Tests strukturiert für die Anforderungen der QS ergänzen zu können. Code-Reviews helfen den Teams bei der Verbesserung ihrer Entwicklungsmethodik.
Anforderungsanalyse und -spezifikation
Anforderungen sind oft schwammig formuliert oder unvollständig. Vielfach werden agile Vorgehensmodelle als Ausrede missbraucht, gänzlich auf das Anforderungsmanagement zu verzichten, oder die notwendigen Akzeptanzkriterien wegzulassen. Die richtige Formulierung erfordert Übung und kann trotzdem auf lange Texte verzichten. Auch die richtige Anwendung von Testüberdeckungen für die Qualitätssicherung ist hier oft ein Thema. Meist sind 100%-ige Testüberdeckung verschiedener Testmaße praktisch nicht erreichbar oder unwirtschaftlich. Sinnvoll angewendet können aber Anforderungen an Testmaße helfen Qualitätskriterien kurz und knapp zu formulieren.

Entwicklung

Entwicklungsaufgaben werden auf allen Ebenen unterstützt und übernommen. Mitarbeit als (System-)Architekt, in der Qualitätssicherung durch Übernahme von statischen Analysen mit Code-Reviews oder die Programmierung von Systemteilen in alleiniger Verantwortung oder auch als wechselndes Mitglied in den Entwicklungs-Teams wird angeboten.

Programmierparadigmen und -sprachen
Von der Programmierung in Assembler über prozedurale Sprachen wie etwa C, Pascal, Fortran bis hin zu aktuellen objektorientierten Sprachen wie C++, C# und Java sowie neueren Derivaten wie etwa Scala, sind eine Vielzahl Sprachen von mir praktisch in Projekten eingesetzt worden. Auch eher selten eingesetzte Sprachen wie Lisp, Ada, Modula-2 und Forth kamen vornehmlich in Forschungsprojekten zum Einsatz. Schwächen und Stärken der einzelnen Sprachen sind daher aus der Praxis bekannt und werden bei Beratung und Training berücksichtigt.
Software-Architekturen und Design
Neben klassischen Client-Server Architekturen besteht Erfahrung in der Entwicklung von massiv verteilten peer-to-peer-Systemen und Web-Services. Die dafür notwendigen Techniken werden auch vertikal bis zu den üblichen Techniken wie Socket-Programmierung und Protokollen wie HTTP, FTP, SMTP, POP, Telnet, usw. beherrscht. Ebenso bekannt sind auch darauf aufbauende Dienste wie RPC, Corba, DCOM, XML-RPC und SOAP. Diese wurden auch mehrfach in Projekten eingesetzt. Kenntnisse im praktischen Einsatz von SQL-Datenbanken, objektorientierter Datenspeicherung und diverse Standards zu Datenformaten wie XML und XML-Schema (XSD) sind vorhanden und der Einsatz üblicher Werkzeuge wie Unified Modelling Language (UML) und ER-Modellierung wird genauso beherrscht, wie Patterns und Antipatterns in der Software-Entwicklung.
Hardwarenahe Entwicklung
Anwendungen zur Messdatenerfassung mit AD-Wandlern wurden ebenso durchgeführt wie die Programmierung von Mikrocontrollern in Embedded Systemen für zeitkritische Anwendungen und Smart-Card-Programmierung. Der Einsatz und die Berücksichtigung von solchen Sub-Systemen ist damit auch in größeren Projekten möglich und wurde auch praktisch bei verschiedenen Projekten in Medizin und Industrie angewandt. Ebenso sind tiefe Kenntnisse der vorhanden Kommunikationsschnittstellen von Rechnern, sowie des TCP/IP-Stacks vorhanden. Mehrfach erfolgte auch die Entwicklung von Diensten und deren Bereitstellung auf Servern.
Sicherheitskritische Anwendungen
Aus der eigenen Forschung zu sicheren, verteilten IT-Systemen habe ich viel Erfahrung, die ich auch in nationalen Projekten einbrachte. So wurden von mir Smartcards für die digitale Signatur und als Zugangssystem schon seit 1998 programmiert. In der Folge habe ich an der Entwicklung der Telematik-Infrastruktur des deutschen Gesundheitswesens, der deutschen Gesundheitskarte sowie der Heilberufsausweise mit qualifizierter elektronischer Signatur (QES) an verschiedenen Stellen mitgewirkt. Die Kenntnisse in Kryptographie können damit ebenso in Projekte einfließen wie praxisrelevanten Standards zur IT-Sicherheit (z.B. Public-Key-Infrastruktur mit X.509).

Kontakt

Haben Sie Fragen zu möglichen Dienstleistungen, Verfügbarkeit oder wünschen Sie ein konkretes Angebot?

Schwartmann-IT
Dipl.-Inform. Dirk Schwartmann
Bachstr. 29
50374 Erftstadt