Ich arbeite für eine große humanitäre Organisation an einer Projektentwicklungssoftware, die in Notfällen Leben retten kann, indem sie die Verteilung von Nahrungsmitteln beschleunigt. Viele NGOs brauchen dringend unsere Software und wir sind Wochen hinter dem Zeitplan zurück.
Eine Sache, die mich in diesem Projekt beunruhigt, ist meiner Meinung nach ein übermäßiger Fokus auf Codierungsstandards. Wir schreiben in Python / Django und verwenden eine Version von PEP0008, mit verschiedenen Modifikationen, z. B. können die Zeilenlängen bis zu 160 Zeichen betragen, und alle Zeilen sollten möglichst so lang sein, keine Leerzeilen zwischen den Importen, Zeilenumbruchregeln, die nur für bestimmte Arten gelten von Klassen, viele Vorlagen, die wir verwenden müssen, auch wenn sie nicht der beste Weg sind, um ein Problem zu lösen usw. usw.
Ein Kernentwickler verbrachte eine Woche damit, einen Großteil des Systems neu zu schreiben, um die damals neuen Codierungsstandards zu erfüllen, und warf dabei mehrere Testreihen weg, da das Umschreiben bedeutete, dass sie "ungültig" waren. Wir haben zwei Wochen damit verbracht, alle verlorenen Funktionen neu zu schreiben und Fehler zu beheben. Er ist der leitende Entwickler und sein Wort hat Gewicht. Deshalb hat er den Projektmanager davon überzeugt, dass diese Standards notwendig sind. Die Junior-Entwickler tun, was ihnen gesagt wird. Ich habe das Gefühl, dass der Projektmanager ein starkes Gefühl der kognitiven Dissonanz bei all dem hat, aber trotzdem vehement damit einverstanden ist, da er sich unsicher fühlt, was er sonst noch tun soll.
Heute bekam ich ernsthafte Probleme, weil ich vergessen hatte, in einem Keyword-Argument ein Leerzeichen nach dem Komma einzufügen. Ich wurde während eines Skype-Anrufs buchstäblich von zwei anderen Entwicklern und dem Projektmanager angeschrien. Persönlich denke ich, dass Codierungsstandards wichtig sind, aber wir denken auch, dass wir viel Zeit damit verschwenden, und als ich das verbalisierte, hat es Wut ausgelöst. Ich werde als Unruhestifter im Team gesehen, ein Team, das nach Sündenböcken für seine Fehler sucht. Seit der Einführung der Kodierungsstandards ist die Produktivität des Teams messbar gesunken, dies verstärkt jedoch nur die Besessenheit, dh der leitende Entwickler macht einfach unsere Nichteinhaltung von Standards für den mangelnden Fortschritt verantwortlich. Er glaubt, dass wir den Code des anderen nicht lesen können, wenn wir die Konventionen nicht einhalten.
Dies fängt an, klebrig zu werden. Jetzt versuche ich verschiedene Skripte zu modifizieren, autopep8, pep8ify und PythonTidy, um zu versuchen, den Konventionen zu entsprechen. Wir führen pep8 auch gegen Quellcode aus, aber es gibt so viele implizite Änderungen an unserem Standard, dass es schwierig ist, sie alle zu verfolgen. Der leitende Entwickler sucht nach Fehlern, die das pep8-Skript nicht aufgreift, und schreit uns beim nächsten Stand-up-Meeting an. Jede Woche gibt es neue Ergänzungen der Codierungsstandards, die uns zwingen, vorhandenen, funktionierenden und getesteten Code neu zu schreiben. Gott sei Dank haben wir immer noch Tests (ich habe einige Commits rückgängig gemacht und ein paar von denen repariert, die er entfernt hat).
Gleichzeitig steigt der Druck, die Frist einzuhalten.
Ich glaube, ein grundlegendes Problem ist, dass der Lead-Entwickler und ein anderer Core-Entwickler sich weigern, anderen Entwicklern zu vertrauen, ihre Arbeit zu erledigen. Aber wie geht man damit um? Wir können unseren Job nicht machen, weil wir zu beschäftigt sind, alles neu zu schreiben.
Ich habe diese Dynamik in einem Software-Engineering-Team noch nie erlebt. Bin ich falsch, ihre Einhaltung von Kodierungsstandards in Frage zu stellen? Hat jemand eine ähnliche Situation erlebt und wie ist er erfolgreich damit umgegangen? (Ich bin nicht auf der Suche nach einer Diskussion, sondern nach tatsächlichen Lösungen, die die Leute gefunden haben.)