プログラマを測定するためのJoel Testの同等物[非公開]


70

プロジェクトやコードを測定するには、The Joel Testを使用できることを理解していますが、プログラマーの素晴らしさを測定およびフィルタリングできる単純な標準テスト(Joel Testなど)はありますか?

私の計画は、より詳細なテストに進む前に、最初にこのテストをクイックフィルターとして使用することです。


2
使用されているこのようなテストがある場合、プログラマはそれを知っているべきだと思います。次のように有効である場合とそうでない場合があります。
-JeffO

2
興味深いことに、私がこの質問をしたとき、それは地獄に落とされました(今は再び肯定的で、いや、すぐに閉じられました)。これと本当に違うの?Programmers.stackexchange.com/questions/133691/…–
ripper234

8
@ ripper234、SEで質問が閉じられる理由は、説明できない、断続的なソフトウェアバグのようなものです-本当に謎です。本当に人間性に少し似ています。
-tehnyit

8
ジョエル自身が、シンプルかつ厳密なテストを提供しますSmart and Gets Things Done。:P
ダンJ

回答:


67

あるプログラマコンピテンシー行列が

ジョエルのテストと同様に、それは単なるあいまいなガイドです。プログラマーを適切に評価する唯一の方法は、彼らと一緒に働いた優秀なプログラマーに尋ねることです。


27
残っている唯一の問題は、その男の過去/現在のチームメイトが良いかどうかを評価することです...おっと。
ペテルトレック

21
はい、その再帰:)です
トム・スクワイアーズ

13
それはジョエルのテストのようなものではありません。あなたの答えは巨大で詳細なマトリックスを指しています。ジョエルのテストは、答える12の非常に簡単な質問のシリーズです。
ブライアンオークリー

2
@BryanOakley-それは本当ですが、質問を読むときにPCMも最初考えたものです。結論:プログラマを測定するために答えられる簡単な質問はありません!
マーマンズ

2
行列の@BryanOakleyポイントは、シリーズよりも複雑であることが適切に採用されています。私にはジョエルのテストに近いアナロジーがで作られたシリーズとなり、レベル1列の要素PCM「説明し、配列を使用して...、基本的なソート...など」 -
ブヨ

25

私はジョエルのテストを好転させるだろう:

ソース管理を使用しましたか?

彼らはワンステップビルドを自動化する方法を知っていますか?

...

特に当てはまらないと思われるのは、テスターに​​質問があることだけです。これにちょっと変わったように見える他のものは、過去の質問でどのように処理したかを処理する方法です(これは、過去のスケジュールをどのように処理しましたか?) 。

編集:

基本的に、ジョエルのテストで無料のものを入手するのではなく、それを実現できる人を雇う必要があります。あなたはそれを実現する能力を確立したいのです。


1
Joelの質問はすべて、プログラマーというよりも環境に関するものです。私のチームがソースコード管理を使用していない場合、自分のソースコード管理を使用してそれらと統合しないことはほとんど改善されません。チームがソースコード管理を使用できるようにすることは改善点です。
エドウィンバック

15

Joel Testは、プログラマーにとって職場が良好な労働条件を備えているかどうかを迅速に判断するための非公式のベースラインチェックです。たとえそれが完璧な10を獲得したとしても、それはまだ地獄の穴である可能性があります。低いスコアは、何かが正しくないことを示しており、優れたインタビューの質問になります(「現在、ソース管理を使用していません。将来的にそうする予定はありますか?」)。ジョエルのスコアが低いにもかかわらず、あなたは仕事を受け入れます。

ジョエルテストも「標準」テストではありません。これは、Joel Spolskyが彼のブログに投稿した単なるチェックリストです。

プログラマーの品質を「測定」する限り、残念ながら、優秀なプログラマーの本当に重要なスキルと資質を定量化することは困難または不可能であるため、人間による徹底的な評価に代わるものはありません。しかし、非常に簡単なプログラミングタスクを使用して、完全に無知な候補を簡単に取り除くことができます-理想的には、再帰、ツリー構造、またはポインターを含むもの(これらを「取得」しないプログラマーはあまり役に立ちません)。このテストに合格した人は、スキルを手動で評価する必要があります。作成したコードの読み取り、作成したアプリケーションのテスト、プログラミングタスク(設計と実装の両方)の実行、動作の確認、話し合い、プロの議論を巻き起こすことができます。スペシャリスト/言語の第一人者を探しているなら、


1
+1優れたプログラマーのスキルを判断することは、定量化が難しいタスクの1つです。
カルティクスリーニバサン

20
("You're not currently using source control; are there any plans to do so in the future?"), and the answers might be such that you'd accept the job despite a low Joel score. ちなみに仕事を受け入れるのは間違いです。最終的に、すべての開発者は、それPlans to do so in the futureがインタビュアーがあなたを欺くために言っていることであるが、ひどい管理のために行動しないことを学びます。何回私たちは何かの効果を聞いたことがありますがOh, we are moving towards Agile...、それはさらに別のマイクロマネージドウォーターフォールショップであることが判明しましたか?
maple_shaft

@maple_shaft:ええ、おそらく良い例ではありません
...-tdammers

5
ジョエルテストの完璧な10は、実際には12になります...ちょうど言って:)
MattDavey

3
@MattDavey:それは、変化を推進する能力に大きく依存します。2年間ビジネスに携わっていたときにそういった経験の1つがあり(そう、C ++に移行します)、期待どおりの結果を得ました。今日、それは別の問題になるでしょう。私それが誠実な願いであるが、変更することができないかどうか理解し、それを可能にします。
–MSalters

12

うん:

暇なときにプログラムしていますか?

私の経験では、この単一の質問は、プログラマーの素晴らしさを最もよく示しています。彼らがそれを楽しむなら; 彼らが仕事をすることに情熱を持っているなら、彼らはそれを上手くやるでしょう。

そして率直に言って、9から5の仕事の多くは多くのコーディングを必要としません。新しいプログラムを設計し、その設計がどのように機能するか/失敗するかを確認するライフサイクル全体を繰り返し処理する必要はありません。その反復がなければ、プログラマーがコアプログラムの設計スキルを習得するために必要な実践はまったくありません。

そして、彼らは多くの学習を必要としません。自宅で物事を単純にハッキングするプログラマーでさえ、大企業の制約を受けることなく、新しい興味深いソリューションを模索しています。


2
なぜこれは1票しかないのですか?IMOこれは、平凡なチームと真に革新的なチームの真の区別です。
レポマン14

1

Joel Testほど詳細ではありませんが、彼らにフィズバズプログラムを書くように頼むことは、彼らがまったくコーディングできるかどうかを知る良い指標になります。

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html および http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers- who-grok-coding /

それは、個人のソフトウェアエンジニアリングの成熟度については説明しませんが、より悪いものを選別します。


0

えー、私は最初の言葉遣いに困惑しています。「Xを使用したことがある」または「Yを知っていますか」ではなく、実際に使用して実行することの問題です。Joelテストの項目に触れたり聞いたりしていないプログラマーは、単に切断され、手がかりを得る必要があります。しかし、あなたは正しい、コードショップはJoelテストに失敗します。なぜなら、ショップの人々はそれを失敗させるからです。私が見ることができる唯一の防御は、「私は試みましたが、権限を持っていませんでした。そして今、私はここに申請しています」という方針に沿っています。


0

ソース管理を使用していますか?

はい、でも

  • 実際には何もわかりません。
  • マージを転送するかどうかはどのようにわかりますか?
  • プッシュする前に変更をプルするかどうかはどのようにわかりますか?
  • リポジトリにコミットする前にビルドするかどうかをどのように知るのですか。

ワンステップでビルドを作成できますか?

  • はい、CIリーダーがスクリプトを作成し、Powershellで実行します。

毎日ビルドしますか?

  • CIサーバーは

バグデータベースはありますか?

はい。ただし、構成はしておらず、管理もしていません。単純に使用しています。

新しいコードを書く前にバグを修正しますか?

  • 無制限のリソースがある完璧な世界で-はい。現実の世界では、私は時々それらをログに記録し、他の何かに取り組むことを強いられます。

最新のスケジュールはありますか?

いいえ、それは私の仕事ではありません。

スペックはありますか?

仕様を取得したら、それを分析して関連文書を作成します。

プログラマーは静かな労働条件を持っていますか?

  • 音楽を聴いたり、同僚と話をして冗談を言ったら、私を雇ってくれませんか?ソフトウェア開発は創造的であると想定されています-労働条件は組織によって異なります。

お金で買える最高のツールを使用していますか?

あなたは最高のツールが何であるかを知らず、あなたがそうすることを考えるなら、あなたの主張を主張する誰かが常にいるでしょう。

テスターはいますか?

はい。実際、はい、彼らはあまり良くありませんが、それは問題ではありませんでした。

新しい候補者はインタビュー中にコードを書きますか?

はい、彼らは失敗します。はい、彼らは通ります。これは何を意味しますか?

廊下のユーザビリティテストを行っていますか?

いいえ、しかし、より良いことをしたらどうでしょうか?

結論:

  • このテストは、すべてがうまく機能し、誰もが仲良くなり、知識を共有し、無制限のリソースがある完璧なアカデミックな世界でうまくいくかもしれません。
  • あなたが知りたいのは、私がどんなエンジニアなのかです。単純なビット単位の答えは有用なことを教えてくれないので、だれかが非常に素朴でなければならないと思います。
  • 上記の回答、否定的および肯定的の両方は、きれいなコードを生成する私の能力については何も伝えません。

これは大したことではありませんが、私が提供した答えに基づいて、あなたがどのような開発者だと思うか聞いてみたいです。これは私の希望を証明するものです。


8
私は本当にこの点を理解していません。これらの質問は、個々のプログラマーではなく、チーム/会社に関するものです。そして、OPは同じ質問を使用してプログラマーを評価することを提案しませんでした。彼は単純な質問のセットが欲しいだけです。
CodesInChaos

1
私は自分のチーム、または私たちが働く会社と同じくらい良いと思います。私の意見では、このようなテストは大騒ぎになりますが、実際には会社や開発者について有益なことを何も伝えていません。
CodeART

3
How do you know whether I pull changes before pushing? 使用しているソースコントロールはわかりませんが、少なくともSVNでは、まだ行っていない変更を含むフォルダーにコミットしようとすると、Updateを実行するまでコミットは失敗します。
メイソンウィーラー

私たちはTFSを使用しています:)他のバージョン管理システムを実際に使用する必要があります。
CodeART

Sooooの人々は実際にTFSを使用しています。私は何かを学びました。
Fabinout
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.