「ジョエルテスト:いいプログラムへの12ステップ」の結果

誰もが、遠くの大きな問題より、身近の小さな問題の方に目が行く。
自然環境の問題より、開発環境の問題のほうが身近に感じているはずである。
遠くの海のムール貝がマイクロプラスチックを誤飲して胃潰瘍になることより、目の前の液晶画面のドット欠けのほうが気になるだろ?
(ドット欠けではなく、ナショナルジオグラフィックのカメラマンが持つ高性能カメラがとらえた、遥か遠くの宇宙に浮かぶ星の輝きだったが)

開発環境がどのくらい素晴らしいのかを知るためのテストがあるので、私の環境を測ってみる。

■ジョエルテストについて
ジョエル・スポルフスキーさんが考案したソフトウェアチームのクオリティを評価するためのテスト。
公開されたのは2000/8/9(水)であり、少々古い部分がある。

12の質問に、yes(1ポイント)/no(0ポイント)で回答する。

<合計ポイントの尺度>
・12ポイント:完璧
・11ポイント:許容範囲
・10ポイント以下:深刻な問題を抱えている

■テストを受けよう
(1.)ソース管理してる?
yes
SVNで管理している。

(2.)ワンステップでビルドできる?
no
今、私が担当しているのはクラウドサービスなので、「デプロイまでワンステップで行えるか」としよう。
ビルドし、実行モジュールを手作業でかき集め、開発サーバでデプロイテストし、本番サーバへアップロードし、APサーバーで旧実行モジュールをバックアップし、DBサーバーでデプロイ対象のDBをバックアップし、APサーバーでプログラムをデプロイし、APサーバーでプログラムをリビルドし、DBサーバーでDDLをデプロイし、DBMSがエラーをはいていないか確認し、DBサーバーでDMLをデプロイし、DBMSがエラーをはいていないか確認し、本番環境で軽く動作確認し…最後は顧客への電話…いや、電話したことをバグトラフィックシステムへ入力してCloseだ!
まだ完全ではないこのテキストは、いったい何回、折り返されただろう?

(3.)デイリービルドしてる?
no
ごくまれに、ビルドが通らないソースがコミットされることはあるが、現状、それほど困っていない。
メンバーが数人だからであろう。

(4.)バグデータベースはある?
yes
未対応のまま、膨張する一方だが…
正直に対応したら、何人年かかるかわからない。

(5.)新しいコードを書く前にバグを直している?
no
以下とのことで、身に染みる。
『残存バグがたくさんある場合には、スケジュールはあてにならないということだ。
一方、あなたが既知のバグをすべて修正しており、残っているのは新たに書く部分だけという場合には、スケジュールははるかに正確なものとなる。』

(6.)アップデートされているスケジュールがある?
no
現在の主プロジェクトにおいて、redmineのガントチャートは真っ赤な夕焼けのようだ。
時間の経過とともに赤く染まっていき、視覚的にはロマンチックである。
つまりは、見直しができていない。
なにぶん(4.)(5.)の状況なので、たいていの場合、楽観的な見通しは大きく崩れる。

(7.)仕様書を持っているか?
no
その結果が、(4.)(5.)である。
仕様書を書かないと設計がまずくなり、先々、多くの問題を引き起こすことは理解しているつもりだ。
次のプロジェクトでは、必ず作成するよ。

(8.)プログラマは静かな環境で作業している?
no
これは、本当にnoだ。
以下とのことで、身に染みる。
『あなたのいる環境が、カフェイン漬けのドットコムがよく作るような、プログラマの隣でマーケティングの連中が大声で電話しているブルペンみたいな騒がしい環境だとしたら、絶えず邪魔されてゾーンに戻ることができず、あなたの知識労働者としての生産性はがた落ちすることになるだろう。
プログラマの生産性は、詳細なことを、一度にたくさん短期記憶に入れてうまく操る能力にかかっている。
ここで何らかの中断があると、これらの詳細を取りこぼしてしまうのだ。』

(9.)手に入る最高のツールを使っている?
no
カスタマイズモデルのLet’sNoteが欲しいが、手元にあるのは7年前のLet’sNoteをWindows10にアップデートしたものだ。
さすがLet’s、最新のローエンド機よりかは良い。

(10.)テスタはいる?
no
「リリース前テストが十分に行えているか」と読み替えよう。
そして、もちろん十分ではない。
テストは自動化されておらず、手作業であり、十分なテストを行う工数はない。
次のプロジェクトでは、多くのテストを自動化するよ。

(11.)採用面接のときにコードを書かせてる?
no

(12.)ユーザビリティテストはしてる?
no
これも、本当に身に染みている。
直感的に使えないから、ユーザーからの質問が多い。
次のプロジェクトでは、開発チーム外の人間にも使い勝手を見てもらうよ。

■テストの結果
合計ポイント:2

安心してほしい、以下とのことなので。
「多くのソフトウェア開発組織は2ポイントとか3ポイントで運営されており、彼らは切実に助けを必要としている。
それというのも、Microsoftのような会社は常に12ポイントで運営されているものだからだ。」

しかしながら、20年前の話であり、現在のソフトウェア開発組織の多くは4~5ポイントはあるだろうか。

■参考資料
・ジョエル氏(Joel Spolsky)
元マイクロソフト、エクセル開発チームのプログラムマネージャ。
Fog Creek Softwareの創業者。
主な製品は、Trelloというビジュアルプロジェクト管理システム。

・Fog Creek Softwareの様子
https://stackoverflow.com/jobs/companies/fog-creek-software
私のデスク環境と似ている。
https://i.stack.imgur.com/0TT6m.jpg

・ジョエルテスト
ジョエル氏のブログで公開された。
以下で読める。
<書籍>
Joel on Software
https://www.amazon.co.jp/Joel-Software-Spolsky/dp/4274066304
<Web>
[原文]

The Joel Test: 12 Steps to Better Code


[日本語訳(リンク切れがあるかも)]

Joel on Software 日本語訳インデックス InternetArchive WayBackMachine


 

お問い合わせ

ATACKS(アタックス)、Quickx(クイックス)、生産管理システム、セキュリティー対策はもちろん、システム関係のご相談・お問い合わせはお気軽にどうぞ!

株式会社タダノシステムズ
電話 087-839-5545
受付時間 8:30-17:00 [ 土・日・祝日除く ]