7. März 2017 12:09
Ich kenne von diversen Entwicklern bei diversen Partnern einen Programmierstil, der nur als unterirdisch bezeichnet werden kann. Gibt es da eigentlich Rechte, die man als Kunde hat, dass man eine bestimmte Qualität auch bei individuell für den Kunden entwickelte Anpassungen erwarten darf?
Z.B. kenne ich folgende problematische Programmierungen:
* Verwendung von COMMIT an Stellen, bei denen z.B. durch eine einfache Tabellensperre inkonsistente Daten enstehen können (meist auch noch ohne Möglichkeit für den Anwender, diese zu bereinigen). Ich finde es absolut erschreckend, wie viele NAV-Programmierer 0,0 Ahnung haben, wie gefährlich der Befehl COMMIT ist.
* Keine oder wenig aussagekräftige Fehlermeldungen (eine ellenlange Programmlogik wird durchlaufen; dabei werden zig Einrichtungen vorausgesetzt, die nicht mit Testfield abgefragt werden und am Ende kommt ein "Die Aktion ist fehlgeschlagen" ohne Hinweis auf die Ursache). Meiner Meinung nach MUSS man alle relevanten Parameter, die für ein erfolgreiches Ausführen einer Funktion notwendig sind, abfragen und den Anwender immer über die Ursache eines Fehlschlags informieren.
* Die Robustheit ist oft extrem gering - tätigt man eine Falscheingabe, wird diese fast nie abgefangen, sondern führt zu teilweise riesigem Aufwand. Das ist natürlich ein Problem, bei dem man auch sagen kann, dass der Anwender selber Schuld ist - trotzdem würde ich es für normal halten, wenn der Programmierer auch den ein oder anderen vorhersehbaren Fehler abfängt
* Code wird kopiert anstelle ihn in eine zentrale Funktion auszulagern - das hat dann zur Folge, dass eine spätere Anpassung extrem teuer wird, wenn nur eine Winzigkeit geändert werden muss; dann ist der Code an jeder kopierten Stelle zu ändern anstatt in einer zentralen Funktion.
* Standard-Objekte werden nicht minimalinvasiv angefasst; sodass es z.B. in einen OnValidate-Trigger in der Item-Tabelle einen Funktionsaufruf einer individuellen Codeunit gibt, sondern so, dass der ganze Code in dem Standard-Objekt programmiert wird. Das macht ein Update natürlich schwieriger und teurer
Ich finde das absolut haarsträubend; ich kenne solchen Code wie gesagt von mehreren Entwicklern verschiedener Partner.
Was ich in dem Zusammenhang auch beobachte:
Die Partner, die "vertrieblich" orientiert sind, können dem Kunden zwar besser das Blaue vom Himmel versprechen, aber das sind dann oft genau die, die im Hintergrund die schlechteren Entwickler haben. Den o.g. Code kenne ich auch vor allem von solchen, die mit NAV zum ersten Mal mit Programmierung in Kontakt gekommen sind und nie von Robustheit, Wartbarkeit, Objektorientierung o.ä. gehört haben; das sind dann meist reine BWLer oder Quereinsteiger, die nach dem Motto "Hauptsache, es funktioniert irgendwie; nach mir die Sintflut" (bewusst oder unbewusst) programmieren.
Ich denke auch, dass sich dem kaum ein Kunde bewusst ist; was für schlechte Partner, er sich ins Haus holen kann, die eigentlich renommiert sind und wie viel Geld er da noch versenken wird und er hat auch kaum eine Chance, da wirklich zu unterscheiden, weil ihm das Know-How fehlt und weil die besonders vertrieblich orientierten Partner nunmal besonders gut darin sind, Bedenken zu zerstreuen. Mal ganz deutlich gesprochen: viele denken doch, sie kaufen eine Standard-Branchensoftware mit ein paar Anpassungen und in Wirklichkeit ist das 70% verbastelter, hingerotzter Müll einer Datenbank, deren verbuggter Objektstand vom letzten Kunden anstatt vom Branchen-Standard übernommen wird.
(Habe wieder zu viele Themen in einem Thread angesprochen; hauptsächlich geht es mir darum, ob man das mit dem Partner groß ausknobeln muss, was man bezüglich seiner Programmierung erwarten kann oder ob man bei o.g. Faux-Pas sagen kann "so gehts nicht, bitte nochmal richtig".
Zuletzt geändert von InfoWissler am 7. März 2017 15:16, insgesamt 2-mal geändert.