Was denkst du über den Joel-Test? [geschlossen]


51

Der Joel-Test ist ein bekannter Test, um festzustellen, wie gut Ihr Team ist. Was denkst du über die Punkte? Sind Sie mit einem von ihnen nicht einverstanden? Gibt es etwas, das Sie hinzufügen würden?

Antworten:


41

Jeff Atwood hat die Bill of Rights des Programmierers .

Von der Post:

  1. Jeder Programmierer muss zwei Monitore haben
  2. Jeder Programmierer soll einen schnellen PC haben
  3. Jeder Programmierer hat die Wahl zwischen Maus und Tastatur
  4. Jeder Programmierer soll einen bequemen Stuhl haben
  5. Jeder Programmierer muss über eine schnelle Internetverbindung verfügen
  6. 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?


Sind das nicht Ihre # 6 identisch mit # 8 auf dem Joel - Test:
HerbN

Es ist Jeff Atwoods Nummer 6, und ja, das ist es.
Spong

Es sieht so aus, als würde der Joel-Test Programmierern helfen, saubere, fehlerfreie Software zu entwickeln, im Gegensatz zu den Arbeitsbedingungen, mit Ausnahme von # 8
Archmede,

13

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.


9
Das Problem beim Abprallen von Ideen von Teamkollegen ist, dass es eine große Ablenkung ist, sie verbal zu fragen. Wenn Sie ernsthafte Zusammenarbeit benötigen, arbeiten Sie in einem Collaboration-Bereich. Aber für "hey wie würdest du das machen" Fragen bist du mit IM viel besser dran.
Matt Olenik

@Matt - Für die kleinen Dinge, die Sie recht haben, aber die Büroflächen sind immer knapp - kein Unternehmen möchte Geld für leere Büros ausgeben - weshalb es hilfreich ist, Teams in ihren eigenen Räumen zu haben. Sie können das Büro in einen "Collaboration Space" verwandeln.
ChrisF

2
Du kannst doch nie acht Leute im selben Raum meinen, oder? Es ärgert mich bereits, einen Raum mit drei anderen Programmierern zu teilen (von denen jeder an seinen eigenen Sachen arbeitet, wobei einer an einem völlig nicht verwandten Projekt arbeitet und der andere der Backend- / Datenbank-Typ ist). Ich weiß mit Sicherheit, dass ich, wenn ich das Zimmer mit sieben anderen Leuten teile, einfach auf die Post gehe.
Baelnorn,

1
@ ChrisF: Vielleicht ist das das Problem. Wir vier, die wir im selben Raum sitzen, haben programmtechnisch kaum etwas miteinander zu tun. Es sind eher 4 Leute, die an 2 1/2 Projekten arbeiten und im selben Raum sitzen. Und jetzt fügen Sie einen Chef hinzu, dem es absolut nichts ausmacht, halbstündige Diskussionen mit einem anderen Programmierer direkt neben Ihrem Schreibtisch zu führen, obwohl sich der Besprechungsraum auf der anderen Seite des Flurs befindet . >. <
Baelnorn

1
@ChrisF - "Das Schreiben von Software in der realen Welt ist eine Teamaktivität. Sie müssen mit Ihren Teamkollegen sprechen, um Ideen usw. auszutauschen. Das ist viel schwieriger, wenn sich die Mitarbeiter in separaten Büros befinden." - Wie funktionieren Entwicklungsteams, die auf verschiedene Standorte verteilt sind? Ich habe eng mit Menschen in den USA, Brasilien oder Indien zusammengearbeitet - mit IM und Adobe Connect - sowie mit Teams, die von kleinen bis zu sehr großen, verteilten Teams zusammenarbeiten. Ihr Umfeld ist sehr störend. Die Arbeit in Teams kann effizient durchgeführt werden, aber was Sie vorschreiben, ist alles andere als (Ihre Idee stammt aus dem Wasserfall der 70er Jahre)
luis.espinal

10

Ich mag es, aber wenn ich damit ein Unternehmen bewerten würde, würde ich nicht alle Elemente gleichermaßen wiegen. Keine Quellcodeverwaltung zu haben ist ein viel größeres Problem, als nicht die besten Tools zu kaufen, die man für Geld kaufen kann.


9

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?

20
Ich denke, Sie wären überrascht, wie viele Unternehmen einen Build nicht in einem Schritt erstellen können und keine Bug-Datenbank haben. Sie haben wahrscheinlich Recht mit der Quellcodeverwaltung, aber ich würde behaupten, dass viele Unternehmen sie nur verwenden, um ihren Code zu sichern und die Vorteile der Quellcodeverwaltung nicht einmal auf den Kopf zu stellen.
Rob Sobers

1
Als ich bei meiner jetzigen Arbeit anfing, hatten wir ein Quellcodeverwaltungssystem, aber die Builds wurden auf dem Computer eines Mannes durchgeführt, und nur er kannte alle Schritte, und Fehler wurden auf Papier verfolgt. Diese sind jetzt alle "repariert", aber ich würde diese Dinge nie für selbstverständlich halten.
HappyCat

6

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.

  1. Unterstützen Sie die Entwicklerausbildung, indem Sie an Konferenzen teilnehmen, Bücher kaufen oder etwas Ähnliches?
  2. Haben Sie einen einfachen, dokumentierten Prozess, um bei Bedarf neue Tools einzuführen, um Auftragsfunktionen zu vervollständigen?
  3. Stellen Sie Entwicklern Geräte und eine Umgebung zur Verfügung, in der sie produktiv arbeiten können?

Vor allem diese Dinge haben mich von früheren Arbeitgebern "angepisst", und nun sind es schnelle Fragen, die ich zu jeder Gelegenheit stelle.


1
Ist 3 nicht schon in der Liste?
Casebash

Ja, in der einen oder anderen Form ist es das. Aber ich liste meine ein bisschen anders auf, also habe ich sie dort gelassen.
Mitchel Sellers

5

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.


1
Sicher ist es eine kulturelle Sache - wenn es nicht übermäßig störend ist und wenn es ein Teil der Art und Weise ist, wie das Geschäft funktioniert, dann sollte es die Leute nicht "abhaken" - besonders nicht, wenn der Zweck des Geschäfts die Entwicklung von Anwendungen ist.
Murph

1
Vielleicht ist der Punkt, dass es ein Teil der Arbeit anderer Leute sein sollte?
JeffO

7
Der springende Punkt beim Testen der Verwendbarkeit von Korridoren ist, dass es sich um jemanden handeln muss, der das Programm nicht regelmäßig verwendet. Sobald Sie es erstellt haben und / oder Stunden damit verbracht haben (wie ein dedizierter Tester), wird Ihre Perspektive auf die App verzerrt
GSto

5

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 .


14
Sie verpassen den Punkt. Beim Joel-Test geht es nicht darum, wie gut die Software ist, sondern darum, wie effektiv der Produktionsprozess ist. Ein Team, das den Joel-Test nicht besteht, kann immer noch gute Produkte herstellen, aber die Chancen stehen gut, dass es viel länger dauern wird und die Mitarbeiter unglücklich sind. Tools beziehen sich nicht nur auf Software. Dies bedeutet auch Hardware, von Ihrem Computer bis zu Ihrem Schreibtisch und Ihrer Tastatur.
Matt Olenik

Ich denke, Sie verpassen den Punkt. Wenn ein Team Projekte pünktlich abschließt und qualitativ hochwertige Software erstellt, sind diese per definitionem effektiv. Und sie haben per definitionem einen effektiven Prozess.
GroßmeisterB

2
Sie haben nie erwähnt, dass der Versand pünktlich ist. Außerdem wäre ich sehr überrascht, ein effektives Team zu sehen, das den Joel-Test (vollständig) nicht bestanden hat. Dinge wie Versionskontrolle, Testen und Benutzerfreundlichkeit sind entscheidend. Die anderen Gegenstände können auch ziemlich große Hindernisse sein.
Matt Olenik

Dies ist ein guter Punkt, aber die Hauptschwäche ist die Subjektivität davon. Je nach Erfahrung, Kenntnisstand und Nutzungsperspektive kann jeder eine andere Meinung zur Qualität der Software haben. Aber ich mag den Punkt.
Bernard Dy

Wenn ihr effektiver Prozess nur für die Mitglieder des Teams effektiv ist, insbesondere wenn das Team klein ist, wie gut hält es dem Wachstum stand oder im Falle einer vorzeitigen Katastrophe oder eines Ausscheidens? In der Lage zu sein, Code zu produzieren, der gut funktioniert und über einen Prozess, der nur in den Köpfen der Leute existiert, die ihn entwickeln, pünktlich versendet wird, ist ein Rezept für eine Katastrophe. Ein Team, das früher oder später (wahrscheinlich früher) mit einem Problem konfrontiert sein wird, mit dem die meisten Leute konfrontiert sind kann oder will sich einfach nicht erholen.
Finni McFinger

5

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).


Einverstanden. Sobald Sie sich von den "Top of the Stack" -Apps entfernen, scheinen viele zeitgenössische Ideen etwas ... irrelevant zu werden.
Paul Nathan

Genau. Es gibt eine Menge Entwicklerjobs in IT-Unternehmensshops ... sicherlich nicht so glamourös wie Shrink Wrap. Da die meisten dieser Unternehmen nicht im Softwaregeschäft tätig sind, erzielen die meisten von ihnen beim Joel-Test in der Regel etwa 4 Punkte.
Bernard Dy

6
Warum würden Sie keine Komponententests für eingebettete Software erstellen (und diese automatisch von einem Build-System ausführen lassen)?
Peter Mortensen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.