impedance(インピーダンス) 全てに抗え!!

この世の全てに歯向かい、抵抗することでしか存在を見いだせない愚直な漢のオルタナティブ? ブログ

テスト業務の進め方について

システムを構築する際、ユーザーに納品する前に一番最後に作成されたプロダクトについて、

意図したものとなっているかテストを実施する。

そのテストについて、詳細は各プロジェクトごとに異なるが、一般的には以下のように工程が組まれている。

 

単体テスト結合テストシステムテスト→運用テスト。

 

尚、工程を分割しているのは、納品するにあたって、

品質担保するために行わなければならないテストの内容が多岐にわたるため、1工程では全てを網羅しきれない。

そのため、テスト業務自体を幾つかの意図を持たせた単位(工程)に分割し、

その工程ごとに実施、管理することでテスト全体で漏れや重複がないようにしている。

 

ということは、その適切に分割された各工程ごと、その意図に応じたテストをくまなく実施していれば、

運用に耐えうる品質のものを提供できるはずなのだ。

 

でも、実際はどうか?

現実には、商用で何件かシステム故障を摘出されてしまっている。…orz

現実は渋い…。

 

上記にも書いたとおり、各工程でしかるべきテストを実施していれば、商用で問題は起きないはずだ。

ノーミスで十分なテストを行っているのであれば。

 

しかし、現実問題として、各種テスト工程でノーミスで十分なテストを行うことが可能なのか?

 

現実には、テスト作業を進める上、内外とわず阻害となるケースが発生し、残念ながら十分なテストが行いきれない。

そのケースを思いついた分だけ幾つか上げる。

  

  ・ 試験者のスキル

      試験者によって、その機能で行うべきテストの範囲の見極めが甘く、網羅性が不足してしまったケース。

 

      確認する箇所および、タイミングの誤り、試験手順の誤り、テストデータの誤りなどで

      実施したテストが意図したものと異なるものとなってしまったケース。

 

      テスト自体の難易度が高く、確認する箇所が多い、または複雑なため、

      十分に確認しきれないままテスト完了としたケース。

 

      また、試験項目票に則って試験していく上で、試験項目ではない箇所で故障発生している場合があり、

      その部分に着眼点を置いていないためを見逃してしまい、結果的に故障を摘出出来なかったケース。

 

      あと、あえて書くが、手抜きで試験実施を省略としているケース。

 

  ・ 時間的制約

      テスト期間が短いため、一部のテストが行えず、省略してカットオーバーを迎えたケース。

  

  ・ 環境的要因

      他システムとの連携試験時、他システム側に意図したデータが登録されていないため、

      そのデータを使った。意図したテストが行えないケース

 

      また、実際に他システムと連携しておらず、疑似的にそれを実現している環境での試験では、

      その動作が本来の他システムと連動したときのものとの違いにより、

      意図した内容の試験が行えないケース

 

  ・ プログラムの幾多の改修による適切なバージョンでのテスト。

      幾度もプログラム改修が適用されるため、納品されるバージョンでの試験が不足してしまう。

  

  ・ 提供した機能が実際に開放されるタイミングでの相違で発生する問題点

      機能自体はテストを実施し、商用に提供しているのだが、運用側の都合でその機能を抑止しており、

      その後、幾つか別の機能、処理のバージョンアップを行った後、既に提供している機能の開放を行ったケース。

 

      対象の機能にもよるところはあるが、

      このケースではテスト実施した環境と機能開放時の環境がイコールではないため、

      一度品質を担保して提供した機能が、その後のバージョンアップのため、意図した品質が保証されてない状態に陥る。

 

プロジェクトの性質、規模、期間にもよるところもあるだろうが、

結論として、上記に挙げた要因1つ1つ解決して、ノーミスで十分はテストは行いきるのはまず難しいと思う。

最低でも、1度だけのテストでは、行ったテストが十分なものには至らないと考えている。

  ※ だからといって、プロダクトに故障を混入させていいという理由にはならないが...

 

そこでテスト作業について、「何とかしてでも1回で完了させる。」よりも、

「どんなに頑張っても、1回では十分なテストは行いきれない。」という前提で、

テスト業務の各工程を組んだ方が有益なのではと思う。

 

具体的には、一連の試験終了後、冗長気味ではあるが再テストの実施。

特に有識者による再テストが望ましい。

といっても、機能全てを再テストするのは当然不可能なので、

一部のクリティカルな機能。またはスキルが十分でない人間が行った試験等に限定すればいいと思う。

  

または、既にリリースした機能について、以下のような再テストを行った方がいいと思う。

   ・ 前バージョン、および前の前のバージョンで提供した機能の再テスト。

        → ユーザにあまり使われていない機能のため、品質が安定していない。

   ・ 申告が多い機能についての再テスト。

       → 観点に漏れがある可能性があるため、再テストにより、品質保証する。

 

商用で故障を出してしまっている可能性があることを認めることになり、

ユーザ様には事実として言いにくい部分もあるのだが、

この既に提供した機能でも再テストを施すことは、品質を高めることに有効だと考えている。

実際、そこで故障を摘出することがあれば、その後のアクションにより

被害を未然にあるいは、少なく食い止められることも可能と考えている。

 

特に、特に、短いサイクルで結構な規模のシステムバージョンアップを求められるシステムでは、

テスト工程をただ単に直線的を進めるのではなく、

このように途中で厚みを持たせつつ、曲線的に進めていくほうが適切だと考えている。

社員に「挨拶がない」ことを不愉快に感じているある人へ

他社の方への挨拶がなくて怒るのはわかるが…。

社員から自分へ挨拶がないのがそんなに気に喰わないかねぇ。

 

自身がどんだけ会社の業績および社員への安定した業務、収入の確保に貢献してからいってほしいね。

会社の規模にもよるけど、そもそも、あまり交流ない人に対してまで挨拶を求めるなんて、

偉ぶりたいだけの自己満足としか思えないけどね。

 

作業者と管理者の心理の違い。

ある作業に従事していると、

作業者とその作業を監督している管理者との間で齟齬が生じることがままある。

 

作業者は実際に作業に従事しているため、当然担当している作業の出来具合について把握している。

 

一方、管理者はその作業を直接行っていないため、

その作業が適切に実施されているか、意図したものとなっているのかを厳密に知りうることができない。

なので、作業者にその作業が適切に実施されたことを証明するもの(以下エビデンスと記述)を作成、提出させ、

その内容から作業が適切に行われているかを判断する。

 

上記にも書いたが、作業者は実際にその作業に従事しているので、作業の出来具合について隅々まで把握している。

しかし、それを経験則として感覚的に昇華しているゆえ、

それを図や言葉に詳細に表現して、他の人にも理解出来るレベルまでに体裁を整えるのが少々難しく感じたりする。

 

そのため、作業終了時や作業の合間での、

そのエビデンス作成が結構手間どり、無視できないほどの稼働をとられたりして、負担に感じることがある。

 

エビデンス作成自体は作業品質を管理する上では重要だということについて認識はあるし、

やらねばならないという意識はある。頭ではわかっている。

でも、エビデンス作成の目的としては、対象の作業が適切に行われているのかを証明、報告するためのもので、

別の言い方をすれば、それ以上のものではないので、

エビデンスをより丁寧なものにしたところで、対象の作業自体の品質が向上するわけではない。

 

作業者の心理からすれば、エビデンスがなくったってその作業の出来を証明するものがないだけで、

作業そのものは従事した自身がその出来を把握できるので、問題なくおこなえるものと思ってしまう。

そんなエビデンス作成のような作業自体の品質への寄与が薄いものに時間を費やすのなら、

その時間を作業に関連するものに費やした方が、より効果があがるのになと思ったりする。

 

一方、管理者はその性質上、各作業者の作業が意図したものになっているのかを正確に把握できない。

作業を管理する役割を担っているのだが、その管理している各作業の作業品質が曖昧であるという状況はとても不安に陥る。

 

そのため、割り振った作業がどの程度おこなっているのか、意図したものとなっているかというのを

自分が作業者として作業したことのように、きめ細かく把握しておく必要がある。

 

管理者の心理からすれば、作業者から「順調です。」、「完了しました。」と口頭だけで報告されても、

それを裏付けるものがないと「それ信じていいのかよ。」という心理になる。

もし、その報告が意図しているもの異なるものだとしたら、「管理者が作業を管理していない」という

管理者としての役割を満たしていないことになるから。

 

なので、作業が十分に行われていることを証明するよりどころとして、詳細なエビデンスは欲しい。

 

と、あれこれ書いたが、管理者からすれば、作業品質をきちんとに管理したいので、

作業についての詳細な情報としてエビデンスは多少手間かもしれないけど提示してほしい。

でも、作業者からすれば、エビデンスの内容でしか評価してもらえないというのはどうかとも思うし、

もうすこし作業者の心理になって考えて欲しいなと思うことがままあったりする。

 

 

人にもよるだろうが、この溝がなかなか埋まらない。

「林先生の痛快!生きざま大辞典。」を見て…

たまたまテレビ見た。

番組名は「林先生の痛快!生きざま大辞典。」(TBS系)。

 

何人かの偉人について取り上げ、

その偉人の人生の中で出くわしたピンチをどう乗り越え、成功していったかを紹介し、

そこから現代の人生にも通じるヒントを探っていき、解説していく番組。

 

その偉人の1人に将棋棋士の米長邦雄について紹介されていた。

 

かつて四冠王まで上りつめた米長が、突然勝てなくなってしまった。

その状況をどう乗り越えていったか?

その対処として「今まで独学で研究していたのをやめ、若手棋士に教えを請う。」というエピソードが紹介されていた。

 

「かつての四冠王が、年齢もキャリアも下の若手に頭を下げて教えを請う。」という行動に

「プライドを捨てるなんてなかなか出来ないよね。」というスタジオのゲストの方々の感想に対し、

解説の林修先生(「今でしょ」でブレイクした東進ハイスクールの講師)は、

スタジオの感想とは異なり「プライドを捨てたのではなく、ゴールを見誤らなかった。」という見解を述べた。

詳細は以下の通り。

  ・ 「若手に頭を下げている自分よりも、将棋に勝てない自分が一番許せなかった。」

  ・ 「再び勝てるようになるなら、若手に頭を下げて教えを請うなんて安いもの。」

  ・ 「体裁だけの価値が安いプライドは捨てて、本物のプライドを持っていた。

         だからこそ、49歳にして名人位を獲得することが出来た。」

 

「体裁だけの価値が安いプライドは捨てて、本物のプライドを持っていた。」という結論。

なかなか本質をついていると思う。

 

とても胸が打たれた…

それとともに生きていく上でプライドは邪魔なものではなく、捨ててはならない大切なものなのだと思った。

 

テレビは内容が薄い番組が結構あったりするので、努めてあまり見ないようしていたのだが、

この番組には最後まで見入ってしまった。良い番組だったと思う。

 

 

今年も宜しく。

将棋のアマチュア化(良い意味で)

将棋の話を書きたい。

 

自分が将棋に傾倒した時期(1991-1993)は指される戦法は殆どが矢倉。

しかも当時は森下システム全盛期でタイトル戦は殆ど矢倉だったのを覚えている。

 

しかし、今は振り飛車等他の戦法も普通にお見受けするようになった。

当時は全くと行っていいほど見られなかった相振り飛車等も指され、

本当に多彩になったように思う。

 

その要因について、今まではプロ棋士間で居飛車党、振り飛車党といった風に、

基本的にその棋士での得意戦法は固定化される傾向にあったが、

それにより相手に事前に研究、対策を練られやすいため損と感じ、

その枠に依存せず様々は戦法を指しこなす棋士が増えたこともある。

 

それも大きいと感じているが、しかし、こうして将棋の戦法が多彩化した最大の要因として、

プロ棋士がアマチュアの発想を柔軟に取り入れているように感じる。

 

当時、「振り飛車には角交換」といって、受け主体の戦法である振り飛車について

「角交換は居飛車側の得」、「振り飛車は角交換させない」というのが

当たり前といっていいほどのセオリーだったのだが、

今では、ゴキゲン中飛車や角交換振り飛車等、

むしろ、振り飛車側から積極的に角交換を行うほうが当たり前といっていい。

 

また、一手損角替わり腰かけ銀みたいにあえて手損する戦法や、

藤井システムのように居玉から攻撃を仕掛けるのをよしとする戦法なんて、

当時の発想では思い浮かぶことすらなかったのではなかろうか。

 

昔常識とされてきた将棋のセオリーが一部、あるい全てが覆されてきている。

 

しかし、上記傾向について別の視点で考えれると、

こういう発想は、プロに比べてセオリーに対して執着心の薄いアマチュアのほうが思いつきそうだ。

確かに、振り飛車側から積極的に角交換して、

攻撃に転じるセンスはプロよりむしろ、アマチュアの方が好みそうだ。

 

自分が近年の将棋を見てて、アマチュアっぽさ(良い意味で…)を感じているのだが、

それは、戦法が多彩となったことと、既存のセオリーに執着しない指し回しが多く見受けられること

この2点が要因として大きいと思う。

 

おそらく、プロ棋士の間で、今までの将棋にどこか限界みたいなものを感じていたのではないのだろうか。

その限界を打破するため、既存の概念に捕らわれるのをやめて、様々な発想を取り入れ、指し手に反映されているように推測している。

その結果、将棋がまた別の方向性を模索しているように感じている。

 

近年ではアマチュアでの指した手がプロの実戦で現れ、おおいに注目されるケースも幾つかある。

また、電王戦等でコンピュータの筋にはまらない指し手が、話題となり、プロを大いに悩ますこともよく見かける。

 

よくよく考えれば、今では振り飛車対策として当たり前のように指されている穴熊なんかも、

指された当初はあまり見向きされなかったようだ。

それについても、おそらくは理解できるセンスが追いついてなかったのだろうと思慮できる。

 

 

今後、将棋自体がどう広く、かつ深く展開されるのか興味深い。

画一的な「作業者から業務リーダ、プロジェクトリーダへのシフト」について

10月末に、弊社で新しく制定される予定である新人事制度についてのお話を聞いた。

 

全内容は当然公開出来ないので、一部の概要だけいうと、

業務リーダ、プロジェクトリーダの育成、シフトに重きを置いており、

ゆくゆくはリーダクラスの人間をを増やし、新規案件の獲得や、既存案件の拡大に結びつけ、

最終的には会社の業績アップを図ろうという試み。

 

決して誤っているわけではないのだが…

 

話を聞いている限り、必要以上に作業者より業務リーダ、プロジェクトリーダを重宝しているように感じた。

一律「作業者より業務リーダ、プロジェクトリーダの方が優秀」という風に。

別の視点でいうと、通常は各種リーダの下で作業に従事している作業者について、

その存在意義を軽視しているように感じた。

 

それについて違和感を感じている。

 

確かに、優秀なリーダの采配によって、

求められた成果にプラスして有益は付加価値を与えられたら、

リーダの功績とて評価されてもいいし、するべきだと思っている。

 

しかし、プロジェクトはリーダ1人で進めているわけでは当然なく、

その下で柱となって従事している作業者の目に見えない活躍があって成立している。

リーダが評価されるのならば、作業者にもそれに劣らない評価を与えるべきである。

 

また、リーダ全てが優秀なわけではない思っている。

実際、能力に欠けるリーダもいるし(うちの現場にもいるしね)、

末端の作業者でも、リーダを凌駕する程活躍している人もいる。

 

そもそも、リーダとか作業者とかというのは、プロジェクトにおけるただの「役割」にすぎない

役割を評価しているのがおかしい。業務への貢献度で評価するべきだと思う。

 

また、「業務リーダ、プロジェクトリーダへのシフト」についてだが、

全ての人間にリーダとして素質があるわけではないと思っている。

作業者として申し分ないくらい優秀だが、

リーダとしては重要は局面で責任の重みに耐えきれずに適切な決断を行えず、

一般的なリーダと比べ、パフォーマンスを出し切れないう人もいると思うし、

その逆のケースもあると思う。

 

また、よく考えてみて欲しい。

従業員全員が社長になってしまったら、会社なりたたないだろう。

 

新しく制定される予定である新人事制度については、

一律「作業者から、業務リーダへのシフト」といった画一的なものではなく、

「三流の業務リーダ、プロジェクトリーダより、一流の作業者を重宝する。」といった

よりきめ細かい画期的な人事制度を望む。

 

 

そうでなければ、今まで現場のため、会社のため身を粉にしてきた末端の人間が報われなさすぎる。

残業自慢

「昨日、徹夜してさぁ~」とか「休み連チャンで出勤したんだよ。」とかいったクソ安いアピール。

好きになれない。

 

しかし、かくいう俺も残念ながらその1人…orz

 

俺の場合、スキルに自信がないから、

「周りよりも多くの時間現場で業務に従事した」ことしか誇れるものがない。

 

こんな俺を笑わば笑え。