Statischer Codeanalysator vs. Entwickler. Jetzt geht das schon wieder los.

Statischer Codeanalysator vs. Entwickler. Jetzt geht das schon wieder los.

Mitte Mai dieses Jahres haben wir eine aktualisierte Version unseres Quiz für C++-Entwickler veröffentlicht. Es sind bereits 2 Monate vergangen – lesen Sie weiter, um mehr über die Ergebnisse zu erfahren!

Wahrscheinlich haben Sie schon von unserem Quiz gehört und es sogar bestanden. Wie auch immer, lassen Sie mich Ihnen die Details geben.

Wir haben mehrere Codefragmente aus Open-Source-Projekten ausgewählt, bei denen der PVS-Studio-Analysator Fehler gefunden hat.

  • Die Teilnehmer erhalten 10 zufällig ausgewählte Codefragmente. Jedes Fragment enthält einen Fehler.
  • Sie haben 60 Sekunden Zeit, um den Fehler zu finden.
  • Sie erhalten 1 Punkt für jede richtige Antwort. Die maximal mögliche Punktzahl beträgt 10 Punkte.
  • Wenn Sie falsch antworten oder die Zeit abgelaufen ist, erhalten Sie keinen Punkt.

Die Quiz-Mechanik ist einfach, also wenn Sie es noch nicht bestanden haben, probieren Sie es aus.

Nun, kommen wir zum interessantesten Teil – den Ergebnissen.

Zum Zeitpunkt der Erstellung dieses Artikels hatten 1970 Personen an dem Quiz teilgenommen.

Ich habe absichtlich „1970 Personen“ geschrieben – diese Zahl kann Studenten oder Personen umfassen, die nicht in der Entwicklung tätig sind, aber aus Interesse ein Quiz bestanden haben. Trotzdem sind die meisten Teilnehmer C++-Entwickler, und umso überraschender ist die durchschnittliche Punktzahl richtiger Antworten – 3,53 von 10. Ein eher unerwartetes und etwas enttäuschendes Ergebnis.

Natürlich kann man mit Sicherheit sagen, dass Quiz ein Spiel ist und Sie die Fähigkeiten des Entwicklers nicht anhand seiner Ergebnisse bewerten können. Die Tatsache bleibt jedoch bestehen, und die Statistik der erzielten Punkte ist etwas deprimierend.

Zur Verdeutlichung habe ich ein Diagramm erstellt, das die Verteilung der Teilnehmer nach der Anzahl der erzielten Punkte zeigt. Wie Sie sehen, ist es am schwierigsten, 6 oder mehr richtige Antworten zu geben.

Jemand mag sagen, dass wir schwierige Beispiele ausgewählt und uns wenig Zeit genommen haben, um einen Fehler zu finden. Aber darum geht es nicht.

Die Ergebnisse des Quiz bedeuten keinesfalls, dass die Entwickler, die daran teilgenommen haben, inkompetent oder unaufmerksam sind. Der Grund ist meiner Meinung nach ein anderer. Tatsächlich gibt es mehrere Gründe:

  • Personen sind möglicherweise nicht auf dem Laufenden. Das sind diejenigen, die nicht an der Entwicklung beteiligt sind und nicht auf einen Blick erkennen können, ob ein Fehler im Code vorliegt.
  • Personen möchten den Code nicht überprüfen. Sie erkennen den Fehler – sie klicken darauf. Konnten sie den Fehler nicht sofort finden? Sie klicken auf eine beliebige Stelle oder überspringen das Codefragment – ​​das ist schließlich nicht ihre Aufgabe.
  • Menschen wollen wissen, was sie am Ende bekommen. Sie fragen sich nur, was das Ergebnis sein wird, wenn sie zufällig auf Fehler klicken (persönlich habe ich auf diese Weise 3 richtige Antworten erhalten, und ich bin kein Entwickler).
  • Leute wurden vom Quiz abgelenkt.

Hand aufs Herz, ich muss ehrlich sagen, dass sogar einige Entwickler aus unserem C++-Team nicht alle Fehler entdeckt haben (ich habe ihre Ergebnisse nicht in die Zusammenfassungsdaten aufgenommen).

Jeder Entwickler ist in erster Linie ein Mensch. Und einige der oben beschriebenen Gründe können durchaus in ihrem Arbeitsprozess auftauchen:

  • Junior-Entwickler können zu Beginn ihrer Karriere einen "einfachen" Fehler machen;
  • man hat vielleicht nicht den Wunsch, nach Fehlern im Code zu suchen, besonders wenn es nicht ihr Code ist;
  • es ist spannender, sich auf eine neue Funktion zu konzentrieren, als den bereits geschriebenen Code mehrmals durchzugehen;
  • man kann sich immer ablenken lassen und einen Fehler übersehen, davor ist niemand sicher.

Die Einführung statischer Analysewerkzeuge in den Entwicklungsprozess kann helfen, diese Probleme zu überwinden.

Scheuen Sie sich daher nicht, statische Codeanalysatoren zu verwenden. Geben Sie Entwicklern die Möglichkeit, Fehler zu beheben, anstatt Zeit mit der Suche nach ihnen zu verschwenden. Warum fangen Sie nicht mit der kostenlosen Version von PVS-Studio an? Übrigens, diejenigen, die das Quiz bestanden haben, erhalten einen Promo-Code für eine 30-Tage-Lizenz, anstatt einer 7-Tage-Lizenz.

Wir werden versuchen, Ihnen neue unterhaltsame Aktivitäten auszudenken, mit denen Sie Ihre Programmierkenntnisse testen können. In naher Zukunft planen wir, ein ähnliches C#-Quiz zu starten. Danach werden wir auf jeden Fall vergleichen, wer besser Fehler findet:C++-Entwickler oder C#-Entwickler?