Wir haben alle schon von The Programmers Bill of Rights gehört und XP hat ein ähnliches Konzept.
Es ist heutzutage eine häufige Beschwerde, dass wir viel über die Rechte der Menschen hören, aber nicht so sehr über ihre Verantwortlichkeiten, also was sollte auf der Verantwortungsliste des Programmierers stehen. Das sind Dinge, die sie tun sollten, die sie vielleicht als unangenehm empfinden, die aber Programmierer von denen trennen, die nicht professionell und verantwortungsbewusst handeln.
Ich interessiere mich hauptsächlich für die unangenehmen und diejenigen, die dazu neigen, nicht vorzukommen. Das ist es, was Programmierer meiden und meiden, und nicht das, was 90% der Programmierer tatsächlich tun möchten (z. B. immer umgestalten und Quellcodeverwaltung verwenden).
Also, was sollte auf dem Programmierer Bill Verantwortungsart sein?
quelle
Antworten:
Ein Programmierer hat die Verantwortung, schlechte Anforderungen zurückzudrängen, anstatt sie blind zu implementieren. Dazu gehört, den Kunden mitzuteilen, dass das, was sie möchten, teurer ist als andere Optionen oder bestimmte Risiken birgt. Dazu gehört auch, schlechte Nachrichten auf professionelle Weise zu kommunizieren - nicht zu schreien, Leute dumm zu nennen, zu implizieren, dass sie dumm sind oder sich kindisch verhalten. Wenn er zurückschiebt, sollte er eine Reihe von Gründen (mehr als "Ich mag SQL Server nicht und werde es nicht verwenden") und einen alternativen Plan vorlegen.
Es liegt jedoch auch in der Verantwortung des Programmierers, Entscheidungen zu akzeptieren und Tools oder Designs zu verwenden, die ihm möglicherweise nicht gefallen, wenn ihr Pushback nicht akzeptiert wurde. Wenn ein Bericht in SSRS angefordert wurde, ist die Übermittlung in Crystal Reports (über die der Client möglicherweise nicht verfügt) inakzeptabel. Wenn eine .net-Lösung erforderlich war, ist die Bereitstellung in Haskell nicht akzeptabel. Wenn niemand im Team ein Tool oder eine Sprache verwendet, die Sie verwenden möchten, ist es unprofessionell, das Tool zu verwenden, wenn das Management nicht der Meinung ist, dass es das beste Tool für den jeweiligen Job ist.
Ein Programmierer hat die Verantwortung, seine Arbeit zu testen. (Dies sollte nicht der einzige Test sein, aber kein professioneller Programmierer sollte Code verschicken, den er nicht getestet hat.) Dazu gehört auch das Testen der Verzweigungen des Codes, von denen Sie nicht erwarten, dass sie sehr oft getroffen werden. Wenn Sie eine Reihe verschachtelter IFs haben, testen Sie alle möglichen Routen.
Ein Programmierer ist dafür verantwortlich, mit Fehlern und Ausnahmen angemessen umzugehen und Fehlermeldungen zu verfassen, die der Benutzer als professionell und neutral ohne Witze oder Beleidigungen ansieht.
Ein Programmierer hat die Verantwortung, private Daten zu schützen, den von ihm für das Unternehmen geschriebenen proprietären Code zu schützen und die Benutzer vor Katastrophen (auch selbstverschuldeten Katastrophen) vor der Verwendung der Anwendung zu schützen.
Ein Programmierer hat die Verantwortung sicherzustellen, dass sein Code wartbar ist und sich in der Quellcodeverwaltung befindet.
Ein Programmierer ist dafür verantwortlich, sich mit anderen zu koordinieren, um sicherzustellen, dass sich seine Änderungen nicht nachteilig auf das auswirken, was sie gerade tun.
Ein Programmierer hat die Verantwortung, dem Kunden die beste Wahl für Werkzeuge oder Sprachen in der Entwurfsphase zu empfehlen, nicht das Werkzeug / die Sprache, mit dem / der er spielen und lernen möchte.
Ein Programmierer hat die Verantwortung, mit dem gesamten für ein Projekt geeigneten Personal zusammenzuarbeiten, auch mit denjenigen, die er nicht mag. Es ist nicht Ihre Aufgabe, Menschen zu mögen, sondern Ihre Aufgabe, mit ihnen zusammenzuarbeiten und höflich zu sein.
Ein Programmierer ist dafür verantwortlich, ein Produkt zu produzieren, das in einem angemessenen Zeitrahmen die angegebenen Anforderungen erfüllt. Wenn der Zeitrahmen nicht eingehalten wird, ist er oder sie dafür verantwortlich, die Geschäftsleitung darüber zu informieren, sobald dies bekannt ist.
Ein Programmierer hat die Verantwortung, das Projektmanagement über Hindernisse für die Erledigung der Aufgabe zu informieren. Sie können nicht reparieren, was sie nicht wissen.
Ein Programmierer hat die Verantwortung, die gesamte Aufgabe zu erledigen, nicht nur die unterhaltsamen, interessanten Teile. Jeder Job hat einige langweilige Teile, die noch erledigt werden müssen. Dazu gehören Arbeitszeittabellen und das Hinzufügen von Diskussionselementen zur Projektmanagementsoftware. Es enthält Dinge wie Dokumentation, Codeüberprüfung usw.
Ein Programmierer hat die Verantwortung, den Geschäftsbereich zu erlernen, den er unterstützt, und nicht nur die Programmierkonzepte.
Ein Programmierer hat die Verantwortung, seine Fähigkeiten auf dem neuesten Stand zu halten.
Wenn ein Programmierer Fehler macht, hat er die Verantwortung, alles in seiner Macht Stehende zu tun, um die Probleme so schnell wie möglich zu beheben. Dies kann die Meldung der schlechten Nachrichten an das Management beinhalten, anstatt zu verbergen, dass Sie gerade eine wichtige Tabelle in der Produktionsdatenbank gelöscht haben.
Ein Programmierer hat die gleichen Pflichten wie jeder andere Mitarbeiter - pünktlich zu erscheinen, die vereinbarten Stunden zu arbeiten, die Urlaubszeit im Voraus anzufordern, Telefon- und E-Mail-Nachrichten zu beantworten (zum Teufel, um ihre E-Mails zu lesen), die erforderlichen Formulare auszufüllen für HR usw.
quelle
Jeder Programmierer sollte seinen Code für andere lesbar machen.
quelle
Der Programmierer ist für den Datenschutz und die Sicherheit aller vom Benutzer bereitgestellten Daten verantwortlich. Insbesondere Passwörter, Kreditkartennummern, E-Mail-Adressen und der physische Standort.
quelle
Lassen Sie den Benutzer nicht seine Arbeit verlieren.
Das ist schwieriger als es sich anhört ... Arbeit ist mehr als nur "Daten in einer Datei" ... es ist jede Zeit, die der Benutzer mit Ihrer Software verbracht hat.
Wenn der Benutzer beispielsweise Ihr 30-Felder-Formular mit 29 gültigen und einem ungültigen Feld ausgefüllt hat, löschen Sie nicht alle gültigen Daten, um sich über das 1 ungültige zu beschweren (zum Teufel, löschen Sie nicht einmal das ungültige). Vielleicht ist es lang und erfordert nur eine geringfügige Korrektur, oder der Benutzer kann sich nicht erinnern, was es vorher war, wenn Sie es löschen.
Ein nicht offensichtliches, aber wichtiges Beispiel ist, was Windows und praktisch jede andere "Dateimanager" -Software falsch macht Bei gedrückter Strg-Taste sollten nicht alle zuvor ausgewählten Dateien gelöscht werden, sodass ich von vorne anfange.
Eine andere, bei der sie sich geirrt haben ... Wenn ich versehentlich Strg-A drücke (anstelle von Strg-S direkt nebenan), sollte sie meinen Platz in der Datei nicht verlieren und den Cursor an den Anfang stellen ... Ich rufe Finding auf die richtige Stelle in der Datei "Arbeit", die das Programm "verloren" hat.
Noch eine: TortoiseSVNs "Festschreiben" -Dialog enthält eine lange Liste von Dateien. Bevor Sie auf "Übernehmen" klicken, können Sie die Liste der Dateien durch Doppelklicken auf jede einzelne Datei durchgehen, um die Änderungen in einem zweiten Dialogfeld anzuzeigen. Um dies schnell zu erledigen, benutze ich manchmal nur die Tastatur und
<Esc>
schließe den zweiten Dialog und gehe zurück zum ersten. Wenn ich versehentlich<Esc>
zweimal drücke, wird auch das erste Dialogfeld geschlossen, wodurch ich vergesse, welche Datei ich erstellt habe.quelle
Ein Programmierer hat die Verantwortung, das System zu respektieren, auf dem sein Programm ausgeführt wird. Nachdem die Entwicklung und das Testen abgeschlossen sind, wird das Programm so bereitgestellt, dass es für den vorgesehenen Zweck verwendet werden kann. In der Regel wird es von anderen Personen auf ihren Computern ausgeführt. Der Programmierer muss dies berücksichtigen: Sein Programm wird auf dem Grundstück eines anderen ausgeführt , nicht auf seinem eigenen, und muss sich als Gast in seinem Haus verhalten, anstatt sich einzumischen, als ob ihm der Ort gehört.
Zum Beispiel sollte sein Programm nicht:
quelle
Aus dem Manifest für Software Craftsman :
quelle
Schauen Sie in den Spiegel und erkennen Sie möglicherweise die schlechtesten Eigenschaften eines Programmierers an sich. Dann arbeiten Sie jeden Tag daran, sie zu beseitigen.
quelle
Manches davon gilt für „A Programmierung Firma ‚s“Verantwortlichkeit.
quelle
Insbesondere, wenn der Programmierer von einer anderen Plattform / Sprache stammt. Es ist schrecklich, den Programmierer zu finden, der um etwas kämpft, das die Kernbibliothek bietet, oder den Plattformvorteil aus Unkenntnis zu missbrauchen.
Es ist sehr wichtig, den Code für andere Benutzer dokumentieren zu lassen, aber wenn es um die Wartbarkeit geht, kann der selbstdokumentierende Code buchstäblich Stunden und Stunden der Frustration ersparen.
Zum Beispiel vergleichen Sie:
zu
quelle
Programmieren ist ein Beruf, keine Fähigkeit. Dies bedeutet, dass ein Programmierer die Verantwortung hat, auf seinem Gebiet über die neuesten Werkzeuge, Techniken und Technologien auf dem Laufenden zu bleiben.
Dies kann bedeuten, dass Sie sich an die Manager wenden, um Zeit für kontinuierliches Lernen und Training zu gewinnen, oder dies in Ihrer Freizeit tun.
quelle
1) Erklären Sie deutlich, dass eine Lösung für jedes Problem Kompromisse zwischen Leistung, Kosten, Zeit und Qualität mit sich bringt.
2) Vervollständigen Sie die relevante Dokumentation, ob sie Notizen oder Testpläne veröffentlicht. (Die Dokumentation variiert je nach Art und Größe des Unternehmens.)
3) Bitten Sie um die richtigen Werkzeuge für ihren Job (so viele stöhnen nur darüber, sprechen aber ihren Chef nie mit einem vernünftigen Argument an, um das zu bekommen, was sie brauchen).
... Andere werden ohne Zweifel folgen.
quelle
Alles in Frage stellen - Ein Programmierer sollte die Verantwortung haben, sich über alles zu erkundigen, was ein System tun oder handhaben muss. Dies kann die Frage beinhalten, welche Benutzer möglicherweise so dumme Fragen sehen, da es verschiedene Websites gibt, die zeigen, wozu Benutzer in der Lage sein können. Daily WTF und SharkTank sind ein paar Beispiele, obwohl ich mir sicher bin, dass es noch andere gibt.
quelle
Deshalb sollten Manager darauf achten, dass sie alles zum Ziel haben.
quelle
Hier ist mein Vorschlag.
(Für "Programmierer" meine ich "Programmierer", nicht "Wochenend-Hacker", so dass alle Standard-Dinge, die ein Programmierer tun sollte, impliziert sind.)
quelle
5 Regeln der Programmierer-Gilde
1.) checke seinen Code wöchentlich und an Feiertagen ein.
2.) für die Bedürfnisse der Programmiergemeinschaft sorgen.
3.) Lies mindestens ein Programmierbuch pro Jahr.
4.) Besuchen Sie mindestens eine Programmierkonferenz pro Jahr.
5.) bekennen Sie sich zu Ihren Fehlern.
quelle
Ich werde der Liste "dokumentiere immer alle getroffenen Annahmen" hinzufügen. :-)
quelle
Ein Programmierer sollte nichts tun oder implementieren, was unethisch oder illegal ist, wie z. B. Viren schreiben oder Systeme anderer hacken (es sei denn, er soll Sicherheitslücken aufdecken und das Opfer darüber informieren und was er oder sie tun kann, um dies zu verhindern von böswilligen Hackern ausgenutzt werden).
quelle