連載
» 2004年07月31日 12時00分 公開

The Rational Edge (26):ソフトウェアテスターのための4つのレッスン−1 レッスン1 [何もせずに取り残されるな] (1/4)

 The Rational Edgeより:本稿はソフトウェアテスターを念頭に書かれてはいるものの、ソフトウェア開発チームの全員に関連のある内容で、技術の流れに遅れず、統合に関する問題を理解し、チーム内のメンバーに十分な情報を提供するための手堅いアドバイスを提供する。

[Len DiMaggio(IBMソフトウェアQEエンジニア/マネージャ),@IT]
ALT 本記事は、IBM developerWorksからアットマーク・アイティが許諾を得て翻訳、転載したものです。

 筆者は、学生時代から就職して今日に至るまで、25年近くソフトウェアエンジニアリングに携わり、そのほとんどをソフトウェアのテストに費やしてきたことを最近悟った。その間に筆者は、すさまじく大きな技術の変化を目の当たりにし、それに関与してきた。かつて洗濯機ほどの大きさがあったディスク装置も、いまではキーホルダーに付けられるほどになった。ラップトップの計算処理能力は、部屋全体を独占したシステムより高いものになった。世界標準だったコンピュータ言語が、いまでは完全に忘れ去られている。かつて成功を収めた有名企業も、買収され、閉鎖されてしまった。ソフトウェアを設計、構築、そしてテストする手法も、一時的な勘と経験による消火訓練のようなものから、きちんと系統立てられ、能率的で、反復に適したプロセスへと進化した(まあ、少なくともそれが理想であることは多くの組織が同意するだろう)。

 著者は幸運にも、プログラミング言語、オペレーティングシステム、データベース、そしてアプリケーションやWebサーバといったミドルウェアに関する多くの技術スキルを学ぶことができた。また、技術やソフトウェア開発手法のトレンドの変化をものともせず、時間をかけて証明された重要な教訓も学んできた。本稿は、これらの教訓をテーマにしている。多数の書籍や記事に詳細な記述があるため、ここではソフトウェアの機能に対する顧客の要求の理解と対応付けといった基準原則は意図的に排除している点に注意していただきたい。本稿の目的は、ソフトウェアテストエンジニアリングの仕事を始めたばかりの人々にとって便利だが見落とされることの多い原則を説明することだ。

レッスン1 [何もせずに取り残されるな]

 ソフトウェアエンジニアリングは技術主導の分野で、変化の速度は徐々に速くなる可能性が高い。成功するためには、取り残されないよう懸命の努力が必要だ。新しい仕様や機能が自分のものになったと感じるのは、あるプログラミング言語や、J2EEのようなアーキテクチャなど、スキルを学ぶ過程で節目に到達したと感じたときだと思う。「聖書への反逆」という筆者お気に入りの映画には「動作はすべて相対だ。静止していたとしても、離れていったのは自分の方かもしれない」(注1)というセリフがある。この概念はソフトウェアエンジニアリングにピタリと当てはまる。前に進むことを止めたら、すぐに取り残されてしまうのだ。

【注1】 『聖書への反逆』、監督:Stanley Kramer、出演:Spencer Tracy、Frederic March、Gene Kelly、制作:United Artists、1960年作品。

 技術そのものが変化し続けているだけでなく、インターネット、Web、そして関連技術もが変化の速度を急速に速めている。自分も一緒に成長し続けなければ、業務上あるいは技術的な判断は下せない。このペースが下がることは期待しない方がいい。そうなることはないのだ。

 大半の人は、年を取れば取るほど学習が困難になる。ビジネスの世界では、肩書が上がれば上がるほど、自分が利用し、構築している技術の基本には疎くなっていく。これには、管理業務や部下の監督など、ほかの作業に重点を置かなければならないといった理由もある。また、現場の技術作業が自分の地位に似合わない、などといった考えを容認する不幸な姿勢が原因になることもある。対照的に、筆者の元上司(注2)は新技術に対する姿勢が素晴らしかった。上司だった当時の彼は50代後半だったが、新技術に新人のように熱心に取り組んだ。インターネットの発展に関する情報に熱心に耳を傾け、Webサーバ、ファイアウォール、そしてJavaなどの新しい言語を常にいじっていた(注3)。彼はまた、主にソフトウェア開発や開発管理畑を歩いてきたため、QAやテスト組織が果たす役割を特に評価していた。彼は過去の経験から、独立したテストやQAグループが徹底的なテストをすれば、開発マネージャの日常業務がどれだけ楽になるかを理解していた。

【注2】筆者が前回会ったとき、この元上司は地元の大学が開講している公開講座の夜間授業に出席していた。このとき学んでいたのはコンピュータサイエンスではなくドイツ語だった。まあ、何を学ぼうと個人の自由である。

【注3 】JavaやJ2EEなど、Javaベースの商標はすべて、米国をはじめとする各国で登録されている米サン・マイクロシステムズの商標。そのほかにも、企業、製品、あるいはサービスの名前に商標が含まれている可能性もある。

 最新情報を常に把握しておくには何が役立つのだろうか? 以下は性格特性の一覧のようにも見えるが、このような行動が取れるよう自分を鍛えることは可能だと思う。

◆ 好奇心を持て。日常の行動の中で積極的に新しいツールや技術を探したい。ただ、探すことに必ずしも多くの時間を費やす必要はない。筆者の場合は、自分のブラウザのデフォルトページをIBM developerWorksに設定しておくと便利なことが分かった(注4)。このページは、IBMの新技術や、Linux、Java、XMLといったIBM以外の新しい各種技術を学ぶために最適なWebの情報源だ。「学習は糧」という言葉も月並みだが、ソフトウェアエンジニアリングなどの分野ではまさにそのとおりなのだ。


◆ 創造的であれ。新しいツールや技術を日常業務に取り込む方法を探したい。例えば、筆者は先日、社内Webサイト向けに部署単位の手続き情報を文書化する必要に迫られた。そこで筆者は、HTMLやワープロを使う代わりに、XMLとスタイルシートを使った。ページの出来映えも良く、スタイルシートに対する理解が深まった(XMLに関してはすでに知っていた)。

◆ 反抗的であれ。技術的な判断の背景にある理由が「いつもこうしているから」などという場合は、「なぜか?」と自問したい。もっと新しい技術をベースにした、もっと良い方法があるかもしれない。少なくとも、自分が質問をすることで、皆がなぜ「いつもこうしている」のかを考えるようになるかもしれない。例えば、かなり前であればWebアプリケーション用にはCGIアーキテクチャが理にかなっていたかもしれないが、現在ではWebサービスの方が適切な場合もある。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ