SWEBOKを選ぶ理由
この業界でメシを食べさせてもらって幾年月、いわゆる下を育てる立場になった。そこで、ソフトウェア開発にあたる素養というか基礎的な考え方を養うテクストを探しているのだが、なかなか見あたらない。
書店にはいわゆるHowToや資格対策本が溢れているが、いらない。新人さんが何語を知っていようとも(あるいは知らなくとも)無問題。言語は重要だが後で「実践で」身につけてもらえばよし。むしろ、考え方の枠組みや基礎的な用語とそれを支える思想など、これから一緒に仕事をする上で最低限必要な勉強をしてもらうために、何を渡せばいのか?
SWEBOKをきちんと読んでみようという動機は、ここにある[注1]。
ふりかえって、自分がどのように学んできたかを思い出すと、「盗んだ」のがほとんど。当時はまとめ本なんてなかった。合間をぬって質問したり、ソースをもって帰ったり(今は厳禁)、関係ないレビューの「議事録役」を買って出たりして積み重ねてきた。
その結果、知識としてモレヌケがあったり、俺流な書き方になっている。また、実践的でないもの、すぐに役に立ちそうでないものを見下したりしていた。いわゆるアカデミックなものや教条主義的なやつだ(たとえばSWEBOKのような!)。体系だった勉強をせず、「いますぐ」「使える」「便利」をキーワードとして刹那的な知識を追い求めた結果がこれだ。
SWEBOKをきちんと読んでみようという動機は、ここに「も」ある。
たとえばテストの種類を挙げてみる。よく使うのは受入れ検査や性能試験なのだが、SWEBOKではこれだけ紹介されている。ちなみに単体テストや統合テストは、テストの"レベル"なので、"種類"とは別に紹介されている。
- 受入れテスト(受入れ検査)
- インストールテスト
- アルファ/ベータ版テスト
- 適合テスト/機能テスト/精度検査
- 信頼度検査
- 回帰テスト
- パフォーマンステスト(性能試験)
- ストレステスト
- Back-to-back テスト(同一製品の前バージョンと同じ結果が得られること)
- リカバリーテスト
- コンフィギュレーションテスト
- ユーザビリティテスト
- テスト駆動開発によるテスト
こうやって書き出すとあるある知ってる~なのだが、テストプランを立てるときに、いくつかは一顧だにしなかった。受入れ検査に含めればいいや、と楽をしようとしたからだ。その結果、必要な観点が抜けたまま実行フェーズに至り、「あれも必要、これも抜けてる」とテストケースを追加するハメになったものだ(んで、テスト期間がズルズル延びたり、徹夜テスト、リリース「後」のこっそり追いかけテストになったりする)。
アカデミズム・権威主義を嫌い、実践ありきのつもりが、結局SWEBOKに戻ってくるという皮肉。ガルシア・マルケス「百年の孤独」に、二次方程式の解法を独力で編み出した男のエピソードが出てくるが、もう嘲笑(わら)えなくなった。perlしか知らないのに「perl以外なんてぶっちゃけありえない」と恥ずかしげもなく言い切る人を、もう嘲笑(わら)えなくなった[注2]。
学而不思則罔
思而不学則殆
--
[注1] うろうろしてたらakonさんのエントリー[参照]に出会えた。たくさんの気付きをいただき、感謝多謝。SWEBOKを読むと(まだナナメ読みだが)私の基礎にはかなり穴があり、そこにはハッタリで埋めてあることが分かった
[注2] 断っておくが、perlを貶めたいわけではない。perlは素晴らしい言語だが、少し前までは「いろいろな言語をやってきたが、perl がいちばん性に合う」人がほとんど。今じゃ他言語を知らないくせに(知ろうとすらしないくせに)「perl 以外ありえな~い」と言い張る人が出てきた。ハンマーを持つと全てが釘に見える典型だと笑っていたが、私もたいして変わらない

| 固定リンク
コメント