Bạn nghĩ gì về Joel Test? [đóng cửa]


51

Các Joel thử nghiệm là một thử nghiệm nổi tiếng để xác định như thế nào tốt đội ngũ của bạn. Bạn nghĩ gì về các điểm? Bạn có không đồng ý với bất kỳ trong số họ? Có bất cứ điều gì mà bạn sẽ thêm?

Câu trả lời:


41

Jeff Atwood có Dự luật về Quyền của Lập trình viên .

Từ bài viết:

  1. Mỗi lập trình viên phải có hai màn hình
  2. Mỗi lập trình viên sẽ có một PC nhanh
  3. Mỗi lập trình viên sẽ có lựa chọn chuột và bàn phím
  4. Mỗi lập trình viên sẽ có một chiếc ghế thoải mái
  5. Mỗi lập trình viên phải có kết nối internet nhanh
  6. Mỗi lập trình viên phải có điều kiện làm việc yên tĩnh

Dường như có một số mặt hàng mà tôi muốn thấy trong danh sách của Joel. Cụ thể trong lĩnh vực phần cứng (màn hình kép, PC nhanh, chuột / bàn phím, ghế thoải mái, kết nối nhanh).

Điều duy nhất không được đề cập là có một bàn làm việc thoải mái và có thể điều chỉnh .

Tất cả điều này có thể được thêm vào bằng cách thay đổi:

Số 9 hiện tại: Bạn có sử dụng công cụ tốt nhất mà tiền có thể mua không?

đến

Cải thiện # 9: Bạn có sử dụng các công cụ tiền thiết bị tốt nhất có thể mua không?


Không phải số 6 của bạn giống hệt với số 8 trong bài kiểm tra Joel:
HerbN

Đó là số 6 của Jeff Atwood, và đúng vậy.
bọt biển

Có vẻ như Joel Test cụ thể hơn để giúp các lập trình viên phát triển phần mềm sạch, không có lỗi thay vì điều kiện làm việc, ngoại trừ # 8
Archmede

13

Thật thú vị khi điểm 8 bây giờ đọc:

8. Do programmers have quiet working conditions?

khi nó được sử dụng để đọc (một cái gì đó như)

8. Do programmers have their own office?

và đoạn cuối vẫn bắt đầu:

Bây giờ chúng ta hãy di chuyển chúng vào các văn phòng riêng biệt với tường và cửa ra vào.

Tôi luôn nghi ngờ về thử nghiệm này vì ở tất cả những nơi tôi từng làm việc - cả với tư cách là nhân viên và khách truy cập - những người duy nhất có văn phòng riêng của họ là giám đốc và quản lý cấp cao.

Viết phần mềm trong thế giới thực thường là hoạt động nhóm, bạn cần nói chuyện với các đồng đội của mình để nảy ý tưởng xung quanh, v.v. và điều đó khó thực hiện hơn với mọi người trong các văn phòng riêng biệt ngay cả với hệ thống nhắn tin tức thời. Có thể rút ra những thứ và hiển thị mã người và sơ đồ giúp rất nhiều. Điều này không có nghĩa là các nhóm phân phối không thể làm việc - rõ ràng họ có thể và làm được, đó chỉ là một vấn đề khác.

Điều tôi muốn nói là mỗi đội cần ở trong văn phòng riêng gồm 6-8 người (giả sử đó là quy mô của đội). Bằng cách đó, họ có thể tương tác mà không làm phiền các nhóm khác (nếu có) và tiếp tục với công việc của họ mà không bị đội ngũ bán hàng hoặc khách truy cập làm phiền (tại một nơi tôi làm việc bạn đã đi qua cửa trước vào khu vực phát triển).

Nếu bạn đang làm việc với các nhà phát triển khác, nhưng mỗi người đang làm việc trên các dự án riêng biệt, thì một văn phòng chia sẻ thể hữu ích - nhưng chỉ khi bạn nghiêm khắc về việc tổ chức các cuộc họp đến phòng họp và tôn trọng thời hạn của người khác, v.v.

Hầu hết những người khác là sự thật hiển nhiên.


9
Vấn đề với việc nảy ý tưởng ra khỏi đồng đội là việc HỎI họ bằng lời nói là một sự phân tâm rất lớn. Nếu bạn cần thực hiện một số sự hợp tác nghiêm túc, thì hãy làm việc trong một không gian cộng tác. Nhưng đối với câu hỏi "hey bạn sẽ làm điều này như thế nào" thì bạn tốt hơn nhiều với IM.
Matt Olenik

@Matt - Đối với những điều nhỏ nhặt mà bạn đúng, nhưng không gian văn phòng luôn khan hiếm - không có công ty nào muốn chi tiền cho các văn phòng trống - đó là lý do tại sao có các nhóm trong không gian riêng của họ sẽ giúp ích. Bạn có thể biến văn phòng thành một "không gian cộng tác".
ChrisF

2
Bạn không bao giờ có nghĩa là tám người trong cùng một phòng, phải không? Tôi đã khó chịu khi chia sẻ một căn phòng với ba lập trình viên khác (mỗi người làm việc theo cách riêng của mình, một người làm việc trong một dự án hoàn toàn không liên quan và một người khác là người phụ trợ / cơ sở dữ liệu). Tôi biết chắc chắn rằng nếu tôi ở chung phòng với bảy người khác, tôi sẽ chỉ đi bưu điện.
Baelnorn

1
@ChrisF: có lẽ đó là vấn đề. Bốn người chúng tôi ngồi trong cùng một phòng hầu như không có liên quan gì với nhau, lập trình khôn ngoan. Giống như 4 người làm việc trong 2 1/2 dự án ngồi trong cùng một phòng. Và bây giờ thêm một ông chủ hoàn toàn không ngại tổ chức các cuộc thảo luận kéo dài nửa giờ với một lập trình viên khác ngay bên cạnh bàn của bạn mặc dù phòng họp nằm ngay bên kia hành lang . >. <
Baelnorn

1
@ChrisF - "Viết phần mềm trong thế giới thực là một hoạt động nhóm, bạn cần nói chuyện với các đồng đội của mình để nảy ý tưởng xung quanh, v.v. và điều đó khó hơn rất nhiều với những người trong các văn phòng riêng biệt." - Vậy, làm thế nào để các nhóm phát triển trải rộng trên các địa điểm khác nhau hoạt động? Tôi đã làm việc chặt chẽ với mọi người trên khắp Hoa Kỳ hoặc Brazil hoặc Ấn Độ - IM và Adobe Connect - cũng như cùng vị trí, từ các nhóm phân phối nhỏ đến rất lớn. Của bạn là một môi trường rất phá vỡ. Làm việc theo nhóm có thể được thực hiện một cách hiệu quả, nhưng những gì bạn đang kê đơn là bất cứ điều gì ngoại trừ (ý tưởng của bạn là ngay từ khi thác 70)
luis.espinal

10

Tôi thích nó nhưng nếu tôi đang sử dụng nó để đánh giá một công ty, tôi sẽ không cân bằng tất cả các mặt hàng. Không có kiểm soát nguồn là một vấn đề lớn hơn nhiều thì không mua được công cụ tốt nhất tiền có thể mua.


9

Công cụ giải quyết duy nhất cho tôi là:

 8. Do programmers have quiet working conditions?

Thú vị đó là câu hỏi rất có thể bị thất bại bởi các bài đăng công việc Stack Overflow.

Một số câu hỏi khó thất bại, đặc biệt nếu có nhiều hơn một lập trình viên trong công ty:

 1. Do you use source control?
 2. Can you make a build in one step?
 4. Do you have a bug database?

Hầu hết những người khác tôi không thực sự quan tâm. Ý tôi là, thành thật mà nói:

12. Do you do hallway usability testing?

Có một để phát hiện những kẻ nói dối:

 5. Do you fix bugs before writing new code?

20
Tôi nghĩ bạn sẽ ngạc nhiên khi có nhiều công ty không thể xây dựng một bước và không có cơ sở dữ liệu lỗi. Bạn có thể đúng về kiểm soát nguồn, nhưng tôi cho rằng rất nhiều công ty sử dụng nó đơn giản để sao lưu mã của họ và thậm chí không làm hỏng bề mặt của lợi ích của kiểm soát nguồn.
Rob Sobers

1
Khi tôi bắt đầu với công việc hiện tại, chúng tôi có một hệ thống kiểm soát nguồn, nhưng các bản dựng được thực hiện trên máy của một anh chàng và chỉ anh ta biết tất cả các bước và các lỗi được theo dõi trên giấy. Đây là tất cả "cố định" bây giờ, nhưng tôi không bao giờ coi những điều này là đương nhiên.
HappyCat

6

Tôi phải nói rằng đó là một "đường cơ sở" tốt, nhưng với bất kỳ công cụ đo lường nào cũng có những yếu tố khác. Ví dụ, không phải một công ty duy nhất mà tôi đã làm việc đã thực hiện Daily Builds (tôi biết, tôi biết), nhưng một số trong số họ đã rất tốt.

Cá nhân tôi có một vài mục khác mà tôi sẽ thêm vào danh sách.

  1. Bạn có hỗ trợ giáo dục nhà phát triển bằng cách tham dự các hội nghị, mua sách hoặc một cái gì đó thuộc về bản chất đó không?
  2. Bạn có một quy trình đơn giản, được ghi chép lại để áp dụng các công cụ mới nếu cần thiết để hoàn thành các chức năng công việc
  3. Bạn có cung cấp thiết bị cho nhà phát triển và môi trường cho phép họ làm việc hiệu quả không.

Hơn bất cứ điều gì, đây là những món đồ đã "làm tôi bực mình" từ các nhà tuyển dụng trước đây, và giờ đây chúng là những câu hỏi nhanh mà tôi hỏi về mỗi cơ hội.


1
Không có 3 trong danh sách?
Casebash

Vâng, dưới hình thức này hay hình thức khác. Nhưng tôi liệt kê của tôi một chút khác nhau vì vậy tôi để nó ở đó.
Người bán Mitchel

5

Tôi đồng ý với hầu hết các điểm của Joel. Tôi không chắc chắn về "kiểm tra khả năng sử dụng hành lang". Kiểm tra khả năng sử dụng, chắc chắn, nhưng thực sự lấy một ai đó từ hành lang và làm cho họ kiểm tra chương trình của bạn, mặc dù đó không phải là công việc của họ? Đó dường như là một cách tuyệt vời để đánh dấu mọi người.


1
Chắc chắn đó là một vấn đề văn hóa - nếu nó không quá quậy phá và nếu đó là một phần trong cách thức hoạt động của doanh nghiệp thì nó không nên "đánh dấu mọi người" - đặc biệt là nếu mục đích của doanh nghiệp là phát triển các ứng dụng.
Murph

1
Có lẽ vấn đề là nó nên là một phần của công việc của người khác?
JeffO

7
toàn bộ vấn đề kiểm tra khả năng sử dụng hành lang là nó cần phải là người không sử dụng chương trình thường xuyên. Khi bạn đã xây dựng nó và / hoặc dành hàng giờ để sử dụng nó (như một người thử nghiệm chuyên dụng), quan điểm của bạn về ứng dụng sẽ bị sai lệch
GSto

5

Bài kiểm tra Joel không kiểm tra mức độ tốt của một đội. Nó kiểm tra xem nhóm của bạn tuân thủ tốt như thế nào với Joel Test.

Đây là một bài kiểm tra tốt hơn về đội của bạn tốt như thế nào. Tôi gọi nó là bài kiểm tra GrandmasterB. Nó có một câu hỏi.

1) Phần mềm bạn viết có tốt không?

Nó không liên quan đến tôi cho dù bạn 'kiểm tra hành lang' hay không, hoặc bạn có kiểm soát nguồn nào, hoặc quá trình xây dựng của bạn là gì (nếu có - không phải mọi làn đường đều có chúng). Thước đo thực sự của một nhóm là chất lượng của phần mềm họ tạo ra.

Về cơ bản, bạn có thể làm theo từng bước của Thử nghiệm Joel, và vẫn kết thúc với mã và sản phẩm tào lao không bao giờ giao hàng. Ví dụ, kiểm soát nguồn không kỳ diệu làm cho một trình mã hóa tốt hơn; nó làm cho mã dễ quản lý hơn Và việc có phiên bản mới nhất của Visual Studio không có nghĩa là ứng dụng của bạn sẽ hoạt động tốt hơn so với khi nó được viết bằng Visual Studio 2005 .


14
Bạn đang thiếu điểm. Thử nghiệm Joel không phải là về phần mềm tốt như thế nào, mà là về hiệu quả của quy trình sản xuất. Một nhóm thất bại trong bài kiểm tra Joel vẫn có thể tạo ra những sản phẩm tốt, nhưng rất có thể nó sẽ mất nhiều thời gian hơn và các công nhân sẽ phải khổ sở. Ngoài ra, các công cụ không chỉ đề cập đến phần mềm. Nó cũng có nghĩa là phần cứng, từ máy tính của bạn xuống bàn và bàn phím của bạn.
Matt Olenik

Tôi nghĩ rằng bạn đang thiếu điểm. Nếu một nhóm hoàn thành các dự án đúng thời hạn và tạo ra phần mềm chất lượng tốt, theo định nghĩa, chúng có hiệu quả. Và theo định nghĩa, họ có một quy trình hiệu quả.
GrandmasterB

2
Bạn không bao giờ đề cập đến vận chuyển đúng thời gian. Ngoài ra, tôi vô cùng ngạc nhiên khi thấy một nhóm hiệu quả đã thất bại (hoàn toàn) Thử nghiệm Joel. Những thứ như kiểm soát phiên bản, kiểm tra và khả năng sử dụng đều rất quan trọng. Các mặt hàng khác có thể là trở ngại khá lớn là tốt.
Matt Olenik

Đây là một điểm tốt, nhưng điểm yếu chính là tính chủ quan của nó. Mọi người có thể có ý kiến ​​khác nhau về chất lượng phần mềm, tùy thuộc vào kinh nghiệm, mức độ kỹ năng và quan điểm sử dụng của họ. Nhưng tôi thích điểm này.
Bernard Dy

Nếu quy trình hiệu quả của họ chỉ có hiệu quả đối với các thành viên trong nhóm, đặc biệt nếu nhóm nhỏ, họ sẽ đứng vững như thế nào để tăng trưởng hoặc trong trường hợp xảy ra thảm họa hoặc nghỉ hưu kịp thời? Có thể tạo ra mã hoạt động tốt và vận chuyển đúng thời gian thông qua một quy trình chỉ tồn tại trong đầu của những người đang phát triển nó là một công thức cho thảm họa, một nhóm sớm hay muộn (có thể sớm hơn) sẽ phải đối mặt với một vấn đề mà hầu hết mọi người không thể, hoặc đơn giản là không muốn, phục hồi.
Finni McFinger

5

Mặc dù tôi nghĩ rằng nó có ý nghĩa tốt theo nghĩa chung, tôi thấy danh sách này khá tập trung vào loại phần mềm cụ thể mà Fog Creek Software thực hiện ( thu nhỏ ). Điều đó không thực sự đáng ngạc nhiên, vì ông cũng nói về điều đó trên một bài đăng khác, Five Worlds . Và có rất nhiều sự phát triển bên ngoài thế giới đó.

Có một số điều kiện thực sự không có ý nghĩa gì nếu bạn phát triển ví dụ như phần mềm nhúng cho vệ tinh hoặc máy bán hàng tự động, như bản dựng hàng ngày (3) hoặc kiểm tra khả năng sử dụng (12).


Đã đồng ý. Khi bạn rời khỏi các ứng dụng "top of the stack", rất nhiều ý tưởng đương đại dường như trở nên hơi ... không liên quan.
Paul Nathan

Tôi đồng ý. Có rất nhiều công việc nhà phát triển trong các cửa hàng CNTT của công ty ... chắc chắn không hào nhoáng như làm thu nhỏ. Vì hầu hết các công ty này không kinh doanh phần mềm, hầu hết trong số họ thường đạt khoảng 4 điểm trong bài kiểm tra Joel.
Bernard Dy

6
Tại sao bạn không tạo các bài kiểm tra đơn vị cho phần mềm nhúng (và để chúng tự động chạy bởi một hệ thống xây dựng)?
Peter Mortensen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.