Antworten:
Jeff Atwood hat die Bill of Rights des Programmierers .
Von der Post:
- Jeder Programmierer muss zwei Monitore haben
- Jeder Programmierer soll einen schnellen PC haben
- Jeder Programmierer hat die Wahl zwischen Maus und Tastatur
- Jeder Programmierer soll einen bequemen Stuhl haben
- Jeder Programmierer muss über eine schnelle Internetverbindung verfügen
- Jeder Programmierer muss ruhige Arbeitsbedingungen haben
Dies scheint einige Elemente zu haben, die ich gerne auf Joels Liste sehen würde. Speziell im Hardwarebereich (Dual-Monitor, schneller PC, Maus / Tastatur, bequemer Stuhl, schnelle Verbindung).
Das einzige, was nicht erwähnt wird, ist ein bequemer und verstellbarer Schreibtisch .
Dies könnte alles durch Ändern hinzugefügt werden:
Aktuelle Nummer 9: Verwenden Sie die besten Werkzeuge, die Sie für Geld kaufen können?
zu
Verbessert Nr. 9: Verwenden Sie die besten Werkzeuge und Geräte, die Sie für Geld kaufen können?
Es ist interessant, dass Punkt 8 jetzt lautet:
8. Do programmers have quiet working conditions?
als es mal gelesen hat (so etwas wie)
8. Do programmers have their own office?
und der letzte Absatz beginnt noch:
Ziehen wir sie jetzt in getrennte Büros mit Wänden und Türen.
Ich war immer misstrauisch gegenüber diesem Test, da an allen Orten, an denen ich gearbeitet habe - sowohl als Angestellter als auch als Besucher - die einzigen Personen mit eigenen Büros die Direktoren und leitenden Angestellten sind.
Das Schreiben von Software in der realen Welt ist in der Regel eine Teamaktivität. Sie müssen mit Ihren Teamkollegen sprechen, um Ideen auszutauschen usw. Dies ist selbst bei Instant Messaging-Systemen mit Mitarbeitern in separaten Büros schwieriger. Es ist sehr hilfreich, Dinge zeichnen und Personencode und Diagramme anzeigen zu können. Das soll nicht heißen, dass verteilte Teams nicht funktionieren können - sie können und tun es offensichtlich, das ist nur eine Reihe von Problemen.
Was ich sagen würde ist, dass jedes Team in einem eigenen Büro mit 6-8 Leuten sein muss (vorausgesetzt, das ist die Größe des Teams). Auf diese Weise können sie interagieren, ohne die anderen Teams zu stören (falls es welche gibt) und ihre Arbeit fortsetzen, ohne vom Verkaufsteam oder den Besuchern gestört zu werden (an einer Stelle, an der ich gearbeitet habe, sind Sie durch die Eingangstür direkt in den Entwicklungsbereich gekommen).
Wenn Sie mit anderen Entwicklern arbeiten, aber jeder arbeitet an separaten Projekten, dann ein gemeinsames Büro kann nützlich sein - aber nur , wenn Sie über die Einnahme von Sitzungen in den Konferenzraum streng sind und respektieren Sie die anderen Menschen Fristen usw.
Die meisten anderen sind selbstverständliche Wahrheiten.
Der einzige Deal-Breaker für mich ist:
8. Do programmers have quiet working conditions?
Interessant ist, dass die Frage höchstwahrscheinlich durch Stapelüberlauf-Stellenausschreibungen fehlschlägt.
Einige der Fragen sind schwer zu beantworten, insbesondere wenn es mehr als einen Programmierer im Unternehmen gibt:
1. Do you use source control?
2. Can you make a build in one step?
4. Do you have a bug database?
Die meisten anderen interessieren mich nicht wirklich. Ich meine ehrlich:
12. Do you do hallway usability testing?
Es gibt einen, der Lügner erkennt:
5. Do you fix bugs before writing new code?
Ich muss sagen, dass es eine gute "Grundlinie" ist, aber mit jedem Messwerkzeug gibt es andere Faktoren. Zum Beispiel hat keine einzige Firma, für die ich gearbeitet habe, Daily Builds durchgeführt (ich weiß, ich weiß), aber einige von ihnen waren sehr gut.
Ich persönlich habe einige andere Elemente, die ich einer Liste hinzufügen würde.
Vor allem diese Dinge haben mich von früheren Arbeitgebern "angepisst", und nun sind es schnelle Fragen, die ich zu jeder Gelegenheit stelle.
Ich stimme den meisten Punkten von Joel zu. Ich bin mir nicht so sicher, was "Flur-Usability-Tests" angeht. Usability-Tests, sicher, aber tatsächlich jemanden aus dem Flur holen und ihn veranlassen, Ihr Programm zu testen, auch wenn es nicht ihre Aufgabe ist? Das scheint eine großartige Möglichkeit zu sein, Leute anzukreuzen.
Der Joel-Test testet nicht, wie gut ein Team ist. Es wird getestet, wie gut Ihr Team den Joel-Test einhält.
Hier ist ein besserer Test, wie gut Ihr Team ist. Ich nenne es den GrandmasterB-Test. Es hat eine Frage.
1) Ist die Software, die Sie schreiben, gut?
Für mich ist es unerheblich, ob Sie einen Flurtest durchführen oder nicht, welche Quellcodeverwaltung Sie haben oder wie Ihr Build-Prozess abläuft (falls es einen gibt - nicht jede Sprache hat sie). Das wahre Maß eines Teams ist die Qualität der von ihm erstellten Software.
Grundsätzlich könnten Sie jeden einzelnen Schritt des Joel-Tests nachvollziehen und trotzdem Mistcode und Produkte erhalten, die niemals ausgeliefert werden. Beispielsweise macht die Quellcodeverwaltung einen nicht auf magische Weise zu einem besseren Codierer. Es erleichtert die Verwaltung von Code. Und die neueste Version von Visual Studio bedeutet nicht, dass Ihre Anwendung besser funktioniert, als wenn sie mit Visual Studio 2005 geschrieben wurde .
Obwohl ich der Meinung bin, dass dies im Allgemeinen sinnvoll ist, konzentrierte sich die Liste auf die spezielle Art von Software, die Fog Creek Software ausführt ( Shrinkwrap ). Das ist nicht wirklich überraschend, da er auch in einem anderen Post, Five Worlds , darüber spricht . Und es gibt viele Entwicklungen außerhalb dieser Welt.
Es gibt einige Bedingungen, die wirklich keinen Sinn ergeben, wenn Sie beispielsweise eingebettete Software für einen Satelliten oder einen Verkaufsautomaten entwickeln, z. B. tägliche Builds (3) oder Usability-Tests (12).