mhlyc -practice

ソフトウェアテストと品質保証がメインテーマです。

NaITE #12「PFDワークショップ & JaSST'16 Tokyo 参加報告」レポート

PFDワークショップとJaSSTの参加報告の勉強会

先日、こちらの勉強会に参加してきました。

nagasaki-it-engineers.connpass.com

 

JaSST報告について

www.slideshare.net

業務で色々あって超行きたかったんだけど行けなかったJaSSTについてお話を聞きました。以下、自分の気になったポイントについて書いていきます。

 

テストプロセス改善 ~プロセス改善でテストエンジニア総活躍社会へ~

正直自分はまだプロセス改善とか言ってられるようなレベルではないのですが、いずれ必要になる知識だろうなと思いながら聞いていました。

こんな話がありました。

  • 型にはめるのがプロセスではない(自分も同意です)
  • キーエリアは改善の方向性を示すもの(あくまで示すのは方向性である、ということですね)
  • ISO33063はむしろカッチリしているのがメリットでもある(柔軟性がないという見方もできますが、むしろカッチリしていることで助かる面もあるということのようです)

特に気になったのはこれ。

  • そもそも「問題意識がない」のをどうしたらいいか?

でも実際この悩みはとてもありますよね。

プロセス改善について、石川馨氏著「日本的品質管理」には「とにかく仲間を作って、小さくても行動していく」といったことが書かれていたように思います。また読み返しますが…

清水吉男氏は「自分で実践して、成果を出すと、周りの人の中で注目してくれる人が出てくる。その人を仲間に引き込む」と言った言い方をされていたと思います。

とにかく「問題意識がない」という人を真正面から説得していくのは骨が折れるし難しいです。マフィアオファーといった方法もありますが…

なので自分も、まずは問題意識を持っている人どうしで仲間になって、小さくても進めていくのがいいんじゃないかなと思っています。いなければ一人ですが、それが二人になるだけでも全然違います。

テスト自動化エンジニアになるためのマインド、将来像、キャリアパス

自分はコーディングスキルもないし自動化スキルもないです。その方向に舵を切ろうと思っていないのもありますが…正直苦手な分野です。

自動化エンジニアには、どんなことが求められるか?というところですが、まずどんなことが自動化できるのか?と考え、設計し、それをうまく回していくスキルが必要とのことです。

「スクリプトを書くだけ」なら、できるようになるまでそんなにかからない。けれど、手動テストやテスト設計も学ばなければいけないとなると2〜3年時間はかかるとのこと。(むしろ、2〜3年で学べるものなのですね…)

また、とがったスキルを持つのもいいが全体をみれるというか、ジェネラリスト的な役割も必要なのではということです。スキルだけとがっているのではなく、何を自動化するべきか見極められるような。自動化エンジニアはやはり、全体的にレベルが高い職種ですね。 

こちらはブロッコリーさんのブログが詳しいです。

nihonbuson.hatenadiary.jp

テスト設計コンテスト決勝

聞いていてわかりやすかった発表は、「どこのフェーズを、どういうツールを使ってやるかがPFDで表されていた発表だった」とのことでした。確かにそれがわかると、全体像が掴みやすいのかもしれません。

あまりにひどい出来で積極的には言いたくないのですが、実は自分もコンテストの予選には参加していました。

自分で作った感想としては、結局テストというのは何を保証していて何をスコープ外にしているのかはっきりわかるようにする必要がある(というか、それを示せと上司やお客さんに言われることが多い)ので、それをわかりやすく整理しなければならないのがとても難しく感じました。(これがいわゆるテスト戦略、テストアーキテクチャと呼ばれるものだと自分は理解しています)

そのためにはなかなか文章のみで説明するのは困難で、PFD、マインドマップといった視覚的によりわかりやすいツールを選択したりモデリングをする必要がありますが、「どこのフェーズを、どういうツールを使ってやるのか」というのはPFDで表すと確かにわかりやすくなるかもしれないと思いました。

JaSST自体には参加できなかったので、発表の内容はとても参考になりました。発表者の方々、どうもありがとうございました。

PFDワークショップ

www.slideshare.net

PFDのワークショップです。個人的にPFDは難しく感じていたのでとても良い機会でした。

自分で試しに書いてみたものは線が長くなったり線が多く交差していたりして見づらくなっていました。それも、今回の勉強で少し見やすく書けるようになった気がします。

こちらも気になったポイントを何点か挙げておきます。

  • PFDの理解には、まずDFDを学習する必要がある(勉強します…)
  • 組織などで定められる標準プロセスは、あくまでベースライン。そこから変化の設計を行ったり、事前の検証(シミュレーション)ができるようにするのがPFDである。
  • 必要な成果物の見通しが立つ→安心感につながる
  • 成果物の連鎖にすることで、作業の目的の明確化につながる
  • 準備不足を予防できる

上記の発表の中で、以下のスライドも参照されていました。WACATE (ソフトウェアテストワークショップ)でのセッションの内容ですね。 

www.slideshare.net

  • プロセスを固定するのではなく、安定させる。そしてシミュレーションをする。(これはPFD提唱者である清水吉男氏が言われていることです)
  •  成果物はドキュメントとは限らない。「ノウハウ」など見えないものや、「人そのもの」になることもある。
  • 「更新」を表す両矢印を使うこともある(ex. 課題管理表)
  • 入力が出力に変換される様子がリアルにイメージできるように、プロセスを記述する

その他階層の表現や、複票表現といった書き方の説明がありましたが、書き方については提唱者である清水吉男氏が公開されているPFDのPDF(ややこしいですね…)を見るのが良いです。

http://homepage3.nifty.com/koha_hp/process/PFDform3.pdf

  • ワークフローとは違って、PFDは時系列・順序性を表さない。

→あくまで成果物指向である。まず「何を作るか?」というところから始める。(「このプロセスでやるよね?」よりも「この成果物を作るよね?」の方が共通認識を持ちやすい)

→PFDに計画の考え方を持ち込んでしまうと、計画に縛られて直接的な成果物が出てこないことがある。あくまでPFDは成果物の洗い出しに活用するツール。順序、タイミング、誰が何をするかはPFDを作った後に考える話。

  • 階層化は、基本的に見づらくなったタイミングで行う。

PFDを作っていくのは、以下のような手順で進めるのが良いとの事でした。

  1. 成果物、作業の洗い出し(ここではPFDの記号を使わなくてOK。リスト形式でいい)
  2. 関係でつなぐ
  3. 全体のMECEを見る
  4. 全体の調整
  5. 他の人との認識合わせ

この後に、具体的な計画・WBSへの落とし込みを行っていきます。

ただし、作成の仕方も作成のパターンによって変わってきます。

新規プロセス作成の場合

基本的にブレストでの洗い出し。マインドマップ、KJ法など活用できる。

既存プロセス改善の場合

まずは現状のプロセスを分析する必要がある。

プロセスを追加するならば、それに関するインタフェースを考慮する必要がある。

ex. 既存プロセスに「レビュー」を追加する

→現状では、レビューが意識されたプロセスになっていない。レビューに関するインタフェースを考慮すること。

参考までに、自分が演習で書いたものをあげておきます。雰囲気だけでも伝われば…

こちらは最初のお題で、朝家を出るまでに必要なプロセスの洗い出しを行いました。

f:id:mhlyc:20160328232910j:plain

成果物が曖昧なものや状態になってしまい、難しかったです。

2問目はこちら。「ビジネス書出版プロセス」です。

f:id:mhlyc:20160328232923j:plain

2問目はまずリスト形式で作業と成果物を洗い出すところからやってみました。

ちなみに問題はこちらのページに掲載されている内容です。

itpro.nikkeibp.co.jp

 実際にプロセスをつないでみたのがこちら。(作成途中で時間が来てしまいましたが…)f:id:mhlyc:20160328232919j:plain

ここでまず両矢印の使い方が間違っていて、指摘をいただきました。基本的にプロセス同士、成果物どうしが直接関連することはない、と。本来ならば、成果物と成果物を「更新する」というプロセスを通じて関係付けるのが良いそうです。

 

以上、非常に内容の濃い勉強会でした。

改めて、勉強会で発表などしてくださるのは大変ありがたいです。一人ではわからないこともたくさんあるので…

発表者の皆様、本当にありがとうございました。 

懇親会(テスト酒場)

connpass.com

勉強会後の懇親会は、こちらのテスト酒場と合同開催。これまでは自分が幹事をやってきたのですが、流れでブロッコリーさんが幹事'sになってくださいました(多分)。ありがたいことです!

そういえばこれも毎月やっていますが、10回目なんですね。よく覚えてなかったです(笑)

こちらの懇親会では、「20代は無茶が効く。というか、20代を過ぎると無茶が効かなくなる」というお話を聞きました。

正直自分はまだ余裕があります。徹夜したって次の日寝れば元気になるし、3時間睡眠でも(辛いけど)なんとかなる。

これから先も仕事はやっていくわけですが、これから先仕事が楽になっていくということはたぶんないでしょう。で、体力も落ちていく。必然的に、勉強するなら今やるしかないということになります。

今の仕事では自分の知識も経験も全然通用しません。というか、やったこともない設計をチェックするというほぼ無謀な仕事です。今自分は全然プロジェクトに貢献していません。なんか今まで「燃えてるんで」とか言ってるのが恥ずかしくなってきましたね。

自分はいつも口だけで、「頑張ります」とか言うのだけど家に帰ったら寝てしまうしゲームもしてしまうしアニメも見てしまったりする。

楽な方へ、楽な方へと流れてしまうわけですよね。で、結局後から苦労することになる。

でも、少し怖くなりました。仕事して、帰って寝て、休みは遊んで、また仕事。なーんも身につかないまま、時間だけが過ぎて、単価だけ無駄に上がって、今内心バカにしている「単価だけ高くて、勉強する気もない、知識のない人」に自分自身がなってしまう。正直、耐えられません。というか、これからの時代そんな感じで仕事にありつけるのかという危機感もあります。

なので、何度目かわからないけれどまた決心します。必死で頑張ると。

仕事でもっと貢献できるようになって、いつもお世話になっている先輩の力になりたいし、開発チームをもっと助けたいし、もっと収入をもらって親に恩返ししたい。

頑張ります。というか、行動で示します。思っているだけでは何も変わらないですから。