Nochmal ein Update. Was denkt ihr über die neuen Punkte. Das Thema Schulung ist mit noch so ins Hirn gekommen.
- Anforderungsanalyse:
- Verstehen Sie die Anforderungen Ihrer Anwendung klar, bevor Sie mit der Entwicklung beginnen.Klare Anforderungen sind entscheidend für die Entwicklung stabiler Software. Hintergrundwissen und Erfahrung zu den Anforderungen sind hilfreich.
- Zusammenarbeit mit anderen Disziplinen:
- Arbeiten Sie eng mit Ingenieuren, die für die Mechanik, Elektronik und Steuerungssysteme verantwortlich sind, zusammen, um sicherzustellen, dass alle Aspekte integriert sind.
- Robuste Fehlerbehandlung:
- Implementiere effektive Fehlerbehandlung, um unerwartete Probleme abzufangen und angemessen zu reagieren.
- Protokolliere Fehlermeldungen für spätere Diagnose und Behebung.
- Klare Struktur und Lesbarkeit:
- Verwende aussagekräftige Bezeichner für Variablen, Funktionen und Klassen.
- Halte den Code gut strukturiert und formatiert, um die Lesbarkeit zu erleichtern.
- Kommentiere komplexen Code, um anderen Entwicklern das Verständnis zu erleichtern.
- Vermeidung von Redundanz:
- Vermeide doppelten Code (Redundanz), um Wartbarkeit und Änderbarkeit zu verbessern.
- Nutze Funktionen und Klassen, um Code logisch zu organisieren und zu wiederverwenden.
- Effiziente Ressourcennutzung:
- Achte darauf, Ressourcen wie Speicher und CPU effizient zu nutzen.
- Schließe Ressourcen, wenn sie nicht mehr benötigt werden, um Lecks zu vermeiden.
- Gute Dokumentation und Kommunikation:
- Dokumentiere den Code klar und konsistent, um anderen Entwicklern die Arbeit zu erleichtern.
- Beschreibe Schnittstellen, Funktionen und wichtige Entscheidungen. Biete Plattformen für den Informationsaustausch zwischen den Fachexperten.
- Einhalten von Coding Standards:
- Befolge die geltenden Coding Standards für die verwendete Programmiersprache.
- Konsistenz in der Formatierung und im Stil fördert die Lesbarkeit und Wartbarkeit.
- Tests und Testautomatisierung:
- Schreibe umfassende Tests, um sicherzustellen, dass der Code korrekt funktioniert.
- Automatisiere Tests, um eine konsistente Überprüfung bei Codeänderungen sicherzustellen.
- Versionierung und Backups:
- Verwende ein Versionskontrollsystem wie Git, um den Code zu verfolgen und zu sichern.
- Erstelle regelmäßig Backups, um Datenverlust zu verhindern.
- Performanceoptimierung:
- Identifiziere und behebe Engpässe in der Performance, um eine reibungslose Ausführung sicherzustellen.
- Sicherheit:
- Berücksichtige Sicherheitsaspekte und verhindere potenzielle Schwachstellen.
- Validiere Benutzereingaben.
- Schulung und Support:
- Stellen Sie sicher, dass die Benutzer und das Wartungspersonal ausreichend geschult sind, um mit der Software der Sondermaschine umzugehen. Bieten Sie effektiven technischen Support.
Hört sich zwar alles gut an, aber ziemlich unkonkret. Jemand der keinen Plan hat, wird mit diesen Infos auch kein "gutes" Projekt zustande bringen.
Jemand der nen Plan hat, naja für den ists mal abundzu zum in sich gehen nicht schlecht.
Die grundsätzlichen Probleme, die zum Chaos führen, lassen sich aber meistens eh nicht ändern, sonst hätte mans fürs zweite Projekt schon getan...
Bsp. Wenn Du vom Planer/Kunden/Anlagenbauer/Mechaniker/Technologen keine ordentlichen Vorgaben für die Softwarefunktionen krigst, wird das auch in 5 Jahren noch so sein. Da kannst dich auf den Kopf stellen...
Die Welt kann sowieso niemand retten. Man kann nur für sich selbst bestmöglich mit der gegebenen Situation umgehen...
Ich für mich versuche grob zu verstehen, was die Anlage machen soll, und programmiere unabhängig der Vorgaben möglichst sinnvolle Funktionen, ohne das die Anlage größeren Quatsch macht. Damit bin ich bisher immer gut gefahren und es gibt ganz selten Ärger. Ellenlange Funktionsbeschreibungsbesprechungsrunden führn aber nach meiner Erfahrung im Detail leider zu nichts. Was nicht heissen soll, dass man im Zweifelsfall mal den Planer nicht anruft und nachfragt...
Der für mich wichtigste Startpunkt fehlt aber schonmal. SPS-Software sollte nur jemand schreiben, der die notwendige Ausbildung dazu hat. Also mal Automatisierungstechnik gelernt hat und/oder die entsprechende Berufserfahrung hat, bevor er alleine auf ein Projekt losgelassen wird.