Hatena::ブログ(Diary)

Munch Box

2013-05-12 『JUnit実践入門』写経・実践会 in 横浜 #6(特別編) に参加した

 毎度のコトながら、書いてるのがもう一週間後だったりして(汗)
⇒ 今回は特に他に2つほどありまして。。。

 「『JUnit実践入門』写経実践会 in 横浜 #6 (特別編)」
 http://bit.ly/13BJyEU
 
 例の如く、内容の詳細については主催のしんやさんの
ブログを参照して頂くとして今回も楽しく参加させて頂きました。
 
 『JUnit実践入門』写経実践会 in 横浜 #6 (特別編) を開催してきた
 Shinya’s Daily Report 「http://bit.ly/14obj6E
 
 今回は特別編ということで本の著者である渡辺さん(@shuji_w6e)と
いろふさん(@irof)のインスタンスまで、懇親会には
最近リア充になった(?)えなむさん(@enum)まで登場して
エラく豪華な顔ぶれが揃った勉強会でした。

 個人的には前回「良く分からんなぁ」と言っていた
Cucumber と Selenium の入口に立つ事ができました。

 ⇒ 前回は正直何がいいのか良く分からん、という感じで
   終わってしまったんですが、「いっちょやってみっかな」
   という感じになりました。

 ただ、かなり我ながら「老害化してきたなぁ」と。。。
最近手を動かせてないというのがモロ出てしまったというか
理解して書いて、また理解して、、、というサイクルから
若干乗り遅れ気味で、休み時間にいろふさんに手伝ってもらって
何とかキャッチアップする、という感じでした。。。orz

 何とか少しずつでもコーディングしないとダメですねぇ。。。
と、いうわけで個人的には反省が大きかったんですが
それ以上に得る物が多い一日になりました。

 実際の現場で何とか適用していきたいんですが、、、
何か面白い話になりそうなら(なったら)、まとめてアップしたいと思います。

 主催者の @shinyaa31 さん、講演者の@shuji_w6e さん &
@irof さん(の横浜インスタンス?(^^;;)参加者の皆さん、
及びタネマキの中の人、どうも有り難うございました&次回もよろしくお願いします!

2013-04-20

 っても、毎度の事ながら書いてるのが数日後だったりして(汗)
 
 「Git天空闘技場」
 http://bit.ly/15QpmVq
 
 結構勢いというか「まぁ、凄くマニアックな勉強会になりそうだし
数人程度集まったらいいかな」位のノリで 神速(@sinsoku_listy)さんと
ふと話した事がキッカケで開催の運びになったGit勉強会

 今回はネタを神速さんにお任せして、自分の方は会場準備とか募集ページを
チョロッと準備しただけで殆ど参加者のノリで開催&参加してきました。

 当日の内容は神速さんも書かれているので(http://bit.ly/10CAc0L
そちらにお任せするとして、個人的な振り返りを少々。

----------------------
Keep
 ・今回は開催週の頭、前日の夜と2回ほどリマインドのメッセージを
  送りましたが、おかげさまでほぼドタキャンは無く、かつキャンセル待ちで
  繰り上がった方にも参加して頂く事ができて良かったな、と。

Problem
 ・準備不足。例の如く自前のプロジェクタを持って行ったのはイイけど、
  肝心の電源とモニタのケーブルを忘れるという大失態。。。
  急遽会場のプロジェクタを借りてその場をしのぐ事はできましたが、、、
  うーん、お粗末だったな、と。後、ついでに自分のノートPCの電源も
  忘れてたという(こちらはバッテリが十分あったので、何とか持ちましたが)
  
 ・資料、事前打ち合わせの不足。っていうか殆ど神速さんにお任せになってたので
  せめて前週にやってた「なのハッカソン」に参加して打ち合わせしておけば
  良かったかな、と(反省)

Try
 ・課題の練り直し+回答用紙の準備とか。

----------------------

 うーん、振り返ってみると今回の勉強会の最大のProblemは
準備不足だったことかなぁ、と。

 肝心のネタ自体は神速さんが作ってきてくれてたので
良かったんですが、もっと自分も下読みとか打ち合わせしっかり
出来てたら良かった、と。

 ⇒ まぁ、若干白いトコありましたけど、それも元ネタの
   冨樫マンガの影響ということで(^^;;(本誌連載時は「白ッ!」みたいな)

 後、参加者の皆さんは結構Gitの事を知ってる方・使ってる方が多かったんで
自分が一番Git力が低かった、みたいな(汗)

 ⇒ 何とか200階には辿りつけたと思うんですが、、、
   ヒソカの壁は中々越えられなかったなぁ、と。
   もう少し下層階で修行ですな。

 何はともあれ、神速さん、参加者の皆さん、いつも甘モノを提供してくれるちょびさん
(今回はジェラート。例の如く美味かった)どうも有り難うございました(^^)

 うし、寝る前にチト復習しよっかなー。

2013-04-14 『JUnit実践入門』写経・実践会 in 横浜 #5 に参加しました。

 っても、またもや書いてるのがもう数日後だったりして(汗)
 
 「JUnit実践入門』写経実践会 in 横浜 #5」
 http://bit.ly/11mLXV8
 
 内容についても、、、まぁ、主催のしんやさんの
 ブログを参照して頂くとして今回も楽しく参加させて頂きました。
 
 『JUnit実践入門』写経実践会 in 横浜 #5 を開催してきた
 Shinya’s Daily Report 「http://bit.ly/XPonSV
 
 またもや写経が終わってない状態での参加という(略)
ただ、今回は結構長めに実践タイムがあったので、
Cucumber-Junitの触り程度をやる事が出来ました。

 ⇒ 途中、サンプルコードをパクッたりして
   時間節約モードでとにかく動かす事を目的に
   やってみたんですが、、、正直なところ
   cucumber-junit の良さは良く分からず「モヤッ」と
   した状態で終わってしまいました。。。
 
 果たしてそれが自分だけなのか、そうじゃないのか思わず
確かめたくなって回りの皆さんに「cucumber-junit
他の人に奨めますか?」と聞いてみたら、、、全員がNO(ワラ

 勿論、自分が使いこなせていない事も大きな原因だとは思いますが
J-Unitと比べると自信を持って人に奨める事ができない状態です。。。

 途中名古屋の方からマサカリが飛んで来てましたが、
どっかのタイミングでこの辺りの話をうさみみさんとしてみたいなぁ、と。

 ⇒ あ、別にBDDに対して否定的なわけではなく、
   あくまでもcucumber-junitのメリットがよくわからなかった、ということです。

 主催者の @shinyaa31 さん、参加者の皆さん、及びタネマキの方、
どうも有り難うございました&次回もよろしくお願いします!

2013-03-18 【SEC特別セミナー】 アジャイル開発の人材 に参加してきました

 天気はイイものの、エラく風が強い月曜の昼間、
品川で開催されたIPA主催のセミナーに参加してきました。

 今回のセミナーは4本立てでしたが、目玉はScrum Alliance の
ボードメンバーでもある Mr.Stephen Forte の講演でした。
後、個人的に興味深かったのは天野さんの講演でした。

 当日のアジェンダはこちら

「【SEC特別セミナーアジャイル開発の人材
アジャイル開発の技術者人材像・認定制度と大学・企業での取組みについて〜」
 http://bit.ly/ZbhfKq

 当日の内容をツダったモノはこちら

「2013-03-18 【SEC特別セミナーアジャイル開発の人材 のまとめ
 http://bit.ly/15YbyWH

 セミナーの内容・雰囲気については上のツダりを眺めて戴くとして
以下、各講演内容についてツラツラと書いていこうと思います。

 ⇒ セミナー開始前にIPAの司会進行の方が、「後日講演者の許可が下りたものは
   動画公開します」と仰っていたので、Stephen 氏の講演も公開されるかも、です。

 あ、そうそう、その前に、、、
どうも上のツダりの一部が凄い人に漏れた(?)らしく
それを自分のTL上で見かけて「ドキッ」としたので、
念のため、その内容を確認してみました。

 そのツダりは
「10年以上も前、休暇でスキーに行った人達の中で、「ビジネスに対しての価値」について話し始めました。
で、結論としてWFでは時間がかかりすぎ、ルールに縛られすぎるということになりました」

 というヤツだったんですが、やっぱり、、、ビミョーに歪んでますね(汗)

 「11年ほど前、WFに対抗していこうと考えた人達がアメリカのスキーリゾートに集まりました。
  スキーという事で、また休暇という事だったので、リラックスしながら
  ビジネスの価値につながるような新しいソフトウェアの開発手法について話し始めました。

  そして、彼らの議論の中での結論というのが、やはりWFのアプローチを取っていては
  時間がかかりすぎる〜あまりにもルールでがんじがらめになってしまい
  計画通りにやろうとするために、時間がかかりすぎる〜と言う事になりました。

  WFにとっての価値というのはソフトウェアを使う人達にとっての価値ではなく
  ソフトウェアを開発するためのプロジェクトにとっての価値にしかならないということです。

  そこで暖炉の火を囲んで彼らは話し合い、その結果生まれたのがいわゆる
  「Agile Manifesto」なのです」

 ⇒ テープ起こししたんで、殆どあってると思いますが、、、
   ツダりの中から、肝心な「価値」についての話がスポッと抜けてますね(反省)

 さて、(上のような若干残念なツダりではありますが)講演内容については
そっちを参照して頂くとして、ツダれなかったセミナー最後の会場との
質疑応答について書いておきたいと思います。

 1.資料のP.20 に関して、イギリスとブラジルの(Scrum資格取得者の)
   割合が多いようですが、何か背景があるのでしょうか?

   ⇒ 実は色々な国の平均値がそれらの国と近かったからです(3%位が平均らしい)。
     市場規模が大きかったので、代表例として持って来ました。
     後、例としてアメリカと中国を持ってきたのは、私がアメリカ出身
     現在香港に住んでいるからです。

 2.コミュニケーションが大切だと言う話がありましたが、
   (オフショアの時の)時差とかの問題にはどんなものがあるでしょうか?

   ⇒ まずアメリカとブラジル間には言語の問題があり、あまりオフショアは行われていません。
     (ブラジルはポルトガル語なので)
     アメリカからオフショアが多いのはインドです(英語を話せる人の割合が高いので)。
     Scrumの認定数も高いものになっています。

 3.P.8 に60%の所で「STOP」という標識があるが、(開発を途中でストップさせるために)
   お客さんとうまく合意できる方法を知りたい。

   ⇒ これは60%で開発を終わらせる、という事を意味していません。
     予算が無くなってしまったり、その他の何らかの理由で開発を途中で
     止めざるを得なかった場合を表現しています。

     また、事前に計画していたイテレーションが、開発途中で
     実は必要ないことに気づいた、という場合もあります。

     ただ上記いずれの場合も、そこまでに完成していた箇所(システム)は
     ビジネス的な価値を提供できている、という事を表現したかったのです。
     WFの場合、途中で開発が終わってしまうとビジネス的な価値は0になってしまいます。
 
 4.WFの場合はレイヤー毎に切って、アジャイルの場合は縦切りでフィーチャー毎に開発していきますが
   アジャイルにおいてもデータモデルとか下の方のレイヤーの変更が後の方で起こると
   ヒドイ目に遭うことが多いと思いますが、その辺りをうまく回避する方法はありますか?

   ⇒ 確かに後の方のスプリントで(DBとかの)変更が無いという事は保証できません。
     ただ、アジャイルの場合、「モジュール毎に」設計(・開発)をしますので
     チームが一旦このフローに慣れてしまえば、そういった問題に関しては
     WFで直面する問題よりもひどい事にはならないと思います。

     WFでありがちなのは、全く使わないフィーチャーまで、設計・開発してしまうということです。
     そうすると、データモデル・オブジェクトモデルなどが複雑化してしまいがちです。
     アジャイルの場合、シンプルなモデルなので、修正に関してもそれほど複雑にはなりません。
     ただ、(質問にあったような)後に発生する修正を回避する、という事についての処方箋はありませんが。

 5.アジャイルはチームで仕事をすると思いますが、人の評価というのはどうやっていますか?
   個人別でしょうか?チーム別でしょうか?(チーム単位でやる場合、どのようにしていますか?)

   ⇒ AgileやScrumにおいて、評価のガイダンスというものはありません。
     私達の会社では人事考課は個人レベルで行います。ただ、その評価の重要な部分として
     「チーム(の一員)として」どのように機能したのかという点があります。

     私のチームにとある有能なプログラマ、恐らくそのチームでは一番のプログラマがいました。
     ただ、彼の評価は平均的なものでした。
     彼が私のところにやってきて理由を尋ねたので、私はこう答えました
     「君は確かにプログラマとしてはA+だ。ただ、チームプレイヤーとしてはD-だ。
      だから君の評価は平均的なものになったのだ」

 6.アジャイルは「システム開発手法」なのか、それとも「プロジェクトマネジメント手法」なのか?あるいは両方なのか?

   ⇒ 正解としては「両方」になります。ただ、今日のプレゼンに関しては、プロジェクトとしての
     方法論についてフォーカスして話を進めてきました。システムエンジニアリングについては
     もし、関心があれば、CITDDXP等を付加彫りして頂ければと思います。

  以上、Stephen氏の講演終了、と。


    ×    ×    ×

 以下、ちょろちょろと私見を。

 客層を意識されたのか、今回のStephen氏のお話はベーシック(というか入門編)でした。

 ⇒ そうそう、お客さんの7〜8割はスーツで、年齢もかなり高めでした。
   IPA主催 かつ 平日昼間ってー事で、、、いつも自分が参加させてもらってる
   勉強会とは違った雰囲気でしたね〜(そういや以前参加したIPA主催の
   セミナーもそんな感じだったなー)

 正直なところ、自分としては「知っている」話が多かったのですが、同じ古典落語のネタでも
駆け出しの落語家がやるのと大御所がやるのとでは違うように、「厚み」というか「深み」が
あったように思いました。

 最後の質疑応答の時間ですが、初めは(自分も含めて)全然会場から手が
上がらず、Stephen氏も少々困っていましたが、勇気を持って手を挙げられた方が一人出ると
その後は結構手が挙がって、時間一杯まで質疑応答して頂くことになりました。

 ⇒ 自分もちょっと遠慮していたんですが、「このままでは日本の
   Agileに対してのレベルが疑われる!」なんてワケの分からん
   使命感に駆られ、2つほど質問させてもらいました
   (なんて事を言うと「オマエがいつ日本のAgile背負って立つ事になったんだ!」
   とマサカリでハリネズミになりそうですな(汗)
   まぁ、折角の機会なんだから「このままでは勿体無いなー」という部分のが
   大きいんですが(^^;;)

    ×    ×    ×

 後、3本あるんですが、、、パラパラと思いつくままにコメントだけすることにします(汗)
(チト今週は忙しくなってしまって、このまんまではいつまでたっても書き終わらないので。。。)

 「アジャイル検定試験について」

 こちら、正直個人的には色々と思うところがあります。正直これだけで1本分のネタになる位。
ただ、時間も無いので、少しだけ。

 「アジャイルが世の中に広まってきたのは良いけど、それに伴って誤解も広がった部分もある。
  それを正し、本当のアジャイルを広めるために試験を制定する事にした」

 ⇒ 正直、これだけでも色々と「?」が出てきますが。。。因みに準備委員会の中でも
   色々と議論があったそうです。オージス総研さんのサイトにそれが公開されている、と
   長瀬さんはおっしゃっていたんですが、ちょっと自分には見つけられませんでした。

   一度拝見したいものなんですが、、、どこにあるんだろ?

 後、終了前の会場からの質疑応答で印象に残った質問を。

 「準備委員会の中に、アジャイルに対して(プロジェクトの進め方や会社をアジャイルにやって行きたいという)
  「想い」を持った人が参加しているのか?」
 という質問でした。回答としては「それぞれの企業様の中でアジャイル実践されている方々が
 それぞれの経験を持ち寄って議論している」という事でした。

 ⇒ うーん、今、改めて講演内容を聞き返してみたんですが、正直なところ僕レベルの
   (いわゆるアジャイルについてちょっと勉強した事がある程度のレベルで)
   ツッコミどころが色々と。。。
 
 イチイチ書いていたら、また睡眠時間が削られてしまうので一言だけ。

 数年後に
 「僕アジャイル検定の資格持ってます!プロダクトコード書く前に
  テストコード書くのがTDDなんですよね!その上でCI回すんですよね!」
 「お、良く知ってるね!じゃ、このクラスのテスト書いて!」
 「テストコードってどうやって書くんですか?」
 「・・・」
 というやり取りが色々な現場でされなければ良いな、と思っています。

    ×    ×    ×

 「早稲田大学におけるワークショップによるアジャイルマインド習得と開発実習」

 学生のうちからアジャイルに触れられるのはいいですね〜。
ただ、なぜ(一般的に普及している)ScrumとかXPとかではなく、
IBMさんの方で提唱されている「DAD(Disciplined Agile Delivery)」という手法やら
ツールやらを題材としたんですかね?

 ⇒ いや、大体予想はついているんですが、敢えて言ってるんですけど、、、

   実際、講演の中で講演者の鷲崎さん自身が仰っていた通り
   「学生へ聞いたところ、プロセスをこなしたり、ツールの使い方をマスターするだけで
    結構一杯一杯で、Agile開発が身につけられたかとか、Agileとはなんぞや
    という事が腹落ちできていたかとというと疑問である」と。

    ×    ×    ×

 「企業におけるアジャイル人材育成の取り組み」

 はい、トリは永和システムマネジメントの天野さんのお話でした。
個人的には、ちょっとモヤモヤする内容が続いていたのですが、
溜飲が下がる(?)ような面白い内容でした(^^;;

    ×    ×    ×


 その他雑感を少々。

 ITコーディネータのポイント認定があったせいか(?)、(興味も無いのに
ポイントのために参加したのか)居眠りしてる人もチラホラいたようです。
っつーか、隣で寝てるヒト居たし。。。

 「こんな事既に知ってるよ!退屈だ!」というのであれば、まだ
わからなくは無いんですが、、、じゃ、最後の質疑応答の時にハイレベルな
質問をぶつけりゃイイのにと思ったり。

 ⇒ 海外のセミナーとかでは、内容がイケてなかったら、
   観客が途中で平気で席を立つ、という事もあると聞いた事があります。
   まだその方が講演者に対してフィードバックがあるので
   いいんじゃないかと思います。
   居眠りってのは、、、学生じゃないんだから、そもそも香港から
   わざわざ来てくれている氏に対する礼を欠いていると思いますけどねー。

 後、「IPAの人にハッシュタグ付けるように言っといて」と某鬼コーチからメンション飛んできたんで
アンケート用紙にその旨記載しておきました。

 ⇒ スタッフの人捕まえて直接言おうかと思ったんですが、、、終了後アンケートを書くのに
   時間がかかって、書き終わってから見回したら、どう見てもハッシュタグはおろか
   「ついったー?」って聞き返されそうな方しか残ってなかったんで、、、直接は言えませんでした(スンマセン)

 うーん、Stephen氏の部分はともかく、その他は書きたいことの半分も書けていないなぁ。。。

 もう少したって仕事が落ち着いたら、続編もしくは追記とかするかも。

2013-02-02 『JUnit実践入門』写経・実践会 in 横浜 #3 に参加しました。

 っても、書いてるのがもう数日後だったりして(汗)
 
 内容については、、、まぁ、下記の皆さんのブログを参照して頂くとして
 (これをInternet規模のDRY化と呼ぶらしい)
 今回も非常に楽しく参加させて頂きました。
 
 『JUnit実践入門』写経実践会 in 横浜 #3 を開催してきた
 Shinya’s Daily Report 「http://bit.ly/VBjkiK
 
 ⇒ ページ下部に参加者のブログがまとめられてるので、
   他の皆さんのブログはそこから辿って頂く、と(^^;;
 
 毎回恒例(?)になってしまった、まだ写経が終わってない
状態での参加でしたが(とうとう開き直ったな、ッテオイ)
Mr.TDD の @t_wada 先生が突如参加表明!
(途中でconnpassのページ(http://bit.ly/VGw8cV)見たら
 律儀に参加登録して頂いてました(^^))
 
 たまたま自分はタネマキにやってくる途中で
SQLアンチパターン」を仕入れて来てたんですが、
これ幸いとばかりにサインをお願いしてしまいました(タダノミーハーヤ!)
(先日川崎に行った時にラゾーナ丸善で購入できなかったのが
 いい方向に転びましたな)

 ⇒ 他の皆さんも近くのダイエーの本屋に
   本があるだけ買いに行くという買占め部隊を
   結成してました(ワラ (残念ながら5冊しか置いてなかったけど)
 
 内容的には1回目、2回目と同様、軽く5分ほど黙読して、
本の内容について議論するというスタイルで進みました。
 
 で、t_wada さんが登場されるまでに以下の質問を会場に
投げかけていたのですが、参加者の皆さんとの議論と
t_wada さんからの回答のお陰で個人的にはスッキリとしました。

 1.private メソッドはテストすべき?
   ⇒ 個人的には「すべきではないんじゃ無い?ただ、
     したくなる時があるのも事実なんで、そういう場合は
     package private に格上げしたりしてやってます」
     という感じでしたが、こちら t_wada さん登場であっさり解決。
     結論は「すべきではない」。
     何故なら、「テストがしたくなるようなメソッドなら
     他のクラスのpublicメソッドとかに切り出した方が
     設計的には正しいと考えられるから」という非常に
     明快な回答が頂けました。OO的にも(個人的な今までの経験的にも)
     確かにという感じでした。
     ただ、許されるとしたらレガシーコードに対してのテストかも、
     という事も至極納得です。そんでもって、そういう時に
     「魔改造」してやっつけてやる、ってのも(^^;;
 
 2.「リファクタリング」の価値は分かるし、個人的にした方が良いのは
   感覚的に分かるけど、その工数は誰が支払うの?
   ⇒ 以前別のセミナーの時に平鍋さんに「価値創造契約」の話を踏まえて
     質問した事があったんですが、その時は確かその為にチケットを消費する
     (=お客さんに納得してもらって支払ってもらう)ということだったと
     思います。
     補足しておくと、基本的に日々リファクタリングはしているから、
     (チケットを消費するほど大きな)リファクタリング工数はかかっていない、
     と仰っていた気がするんですが。
     さて、t_wada さんの回答は「リファクタリング工数」という言葉が
     出てきた時点で、かなり負けがこんでいる状態、とのこと。
     確かに仰る通りですね(汗)
     じゃ、どうすればいいか、というと、普段のプログラミング(の一部)
     としてやるのが良い、という事でした。

 3.「生産性」という言葉について
   ⇒ こちら、個人的に凄く「?」なんですよね。で、
     参加者の皆さんとかはどういう「モノサシ」で測っているのか?という
     素朴な疑問が前々からありまして、思わず質問しました。
     こちら、やっぱり結論は出ませんでした。COBOLの時代ならいざ知らず
     今時ステップ数で測るってのはナンセンスですし。。。
     ただ、t_wada さんが一つヒント、というかキーワードを仰ってました。
     「時間」です。それと、他者(・他社)と比較してもあまり
     意味が無いけど、自分自身で比較(=時系列で比較)するのは
     良いのではないか(アジャイルのベロシティの話にも通じるし)、という事でした。
     
 あと、Mockist vs Classicist の話も面白かったですね。
実は「実践テスト駆動開発」の著者はバリバリのMockistで、その本の前書きに Classicistの
Kent Beck寄稿しているという話ですが。

 勉強会の後も懇親会で 色々と t_wada さんにお話を伺う事もできて、非常に
1日楽しく過ごす事が出来ました。
 ⇒ t_wada さんが、実はRDBに原点があった、という話を聞いて少々驚きました。
   TDDオブジェクト指向の人だとばっかり思ってたんで。良く聞いたら
   今回のSQLアンチパターンの本の監訳にも関わられた親父さんが実はデータベース技術者で、
   その手伝いをしていたから、という事で、ナルホドーと一人納得してしまいました。
   
 主催者の @shinyaa31 さん、ゲストの @t_wada さん、参加者の皆さん、及びタネマキの方、
どうも有り難うございました&次回もよろしくお願いします!