2011年5月22日日曜日

DevLove HangarFlight に参加してきました。

勉強会ラッシュの一週間の締めとしてDevLove HangarFlightに参加してきました。

私は勉強会デビューが最近なので初参加となりましたが、
DevLoveはかなりの実績のあるイベントで2008年から開催している(もっと前から?!)ようです。

勉強会などは大概ATNDで検索していますが、
このイベントはTwitterで知りました。

発表者や内容を見てみると、
面白いものがいっぱいありそうで、どのセッションに参加しようか
結構悩みました。

とりあえず、以下、私が参加したセッションの内容というか印象を…


いま敢えてJava言語について話そう - 知ってたはずのJava言語
『Java the Good Parts』の監訳者矢野さんによるJavaについてのお話。

Java言語や最近はやりのScala、Ruby、Pythonなどの比較から、
Java言語を特徴付けるものは型システムであるという説から入ります。

今後導入されるであろうラムダ式についても、
最初のラムダ式の提案

{
    object.doSomething();
}

は抽象度が高いが、あとから提案された

new Handler(){
    onject.doSomethig();
}

の方がJavaらしいという経緯があるなどの説明がありました。
(ここでいうJavaらしいというのは型システムが適用されており、かつインスタンスの生成にnewが使われているということ)

この後は『Java the Good Parts』の目玉といっても構わないInterfaceにまつわるお話になります。

ここで矢野さんが提案するのは
Javaはオブジェクト指向と言われているが、
むしろInterfaceでプログラムが何をしているかを記述する言語、
つまりInterface Drivenな言語ではないかということです。

これはExceptionの概念にも及ぶ考え方で、
Userという概念があって、#findByName(String)というメソッドがあったときに、
FileNotFoundExceptionSQLExceptionが発生するのはおかしくて、
UserNotFoundExceptionが発生するのが妥当であるという考えになります。

FileNotFoundExceptionSQLExceptionがおかしいのは、
これらの例外が発生するというのは、概念の中で特定の実装を想定しているということを含むからで、
Userという概念はあくまで概念であって実装を含むべきではないからであるというわけです。

たしかに、このへんは共感する部分があります。
というのも、かつて私が所属していたプロジェクトで、
例外処理の最中に、#getOracleErrorCode()みたいなコードが普通に書いてあって、
なにそのOracleマスター的な実装、みたいなことを感じたことがあります。
(ましてや、このコードが書かれていたシステムのDBはSQLServerという、ちょっと素敵過ぎる状態)




インターフェース指向設計というのは非常に興味深いものですが、
すこしだけSIer泣かせな部分もあって、
インターフェースを書きまくると、
ファイル数が半端無く増えます。

実際、別のプロジェクトでインターフェース作りまくっていたら、
PM、というか上司に、「なんでそんなにファイル作るの、馬鹿か?」みたいにdisられたことがあります。

あとで、このあたりのことを矢野さんに伺ったときに、
「たしかにSIerだと嫌がるかもしれませんね(苦笑)」と言っていました。



ちなみに、私の今回のDevLoveの目的は矢野さんの話を聴くことだったので、
このセッションで目的は達成。

おまけで矢野さんに『Java the Good Parts』にサインもらいましたw


とある会社のtrac事情 ~不具合管理 からタスク管理へ~ (仮)
Shibuya.tracを主催されているかぬさんのTracにまつわるおはなし。

どこのSIerでもプロジェクト管理の定番といえばExcelな訳ですが、(って、オイ)
  • Excelから脱却
  • Apache CGIベースのチケット管理
  • Tracとの出会い
  • さらに踏み込んだ活用
といった順番でお話されました。

印象に残ったのが、
Tracでも定着させるのに三年かかった
ということで、
どこの会社でもExcelから抜けられないんだよな~と思いました。

あとでかぬさんにお尋ねしたところ、
トップダウン、ボトムアップの両面からじっくりやっていくことが大事だよ的なアドバイスと
Shibuya.tracシールを頂きましたw

ちなみにかぬさんにたずねればシールをもらえる旨教えてくれたのは
きょんさんです。

@afukuiと語り合おう ?わしの30年を引き出してみぃ?
@afukuiさんというベテランプログラマー(アーキテクト)に質問をぶつけてみようというコーナーです。

チームに分かれて、質問を洗い出して、
ぶつけてみるという感じの流れでした。

生来の目立ちたがり屋精神が発揮されて、
質問の第一番を飾ってみました。

とりあえず、「メンバーの皆にテストを書かせるにはどうすればいいですか?」
というここ半年取り組んでいる課題をダイレクトにぶつけました。

返ってきたのは、
「なぜテストが大事なのか、その思いをぶつけること。そして品質が大事なのはなぜなのか、その思いをぶつけること」
という回答でした。

そして、テストには二種類あって、
  • TDDのような振る舞いを実装するためのテスト
  • 品質を保証するためのテスト
があり、(このあたりは井芹さんも言っていましたが…)、
TDD→ペアプロを実践する。
品質→これはじっくりテストを書いておく
という解決方法もあるのではないかというアドバイスを頂きました。

最近、私は読書量が減っているので、
自分の思いを伝えるためのボキャブラリーが減っているなと感じているのですが、
「思いをつたえる」というあたりは怠っていたなという感じはしましたし、
その「テストへの思い」って何なんだろうともう一度再考するきっかけをもらったと思います。

このブログを読んでいる方などほとんどいないと信じていますが、
結構私の務めている会社では、
テストっていうのはやらなくてはいけないと誰もが思っている事なのですが、
手動でテストするということに慣れていて、
自動でテストするというと、(´・ω・`)ショボーンという顔されてしまうんですね。

で、テストっていうのはとくにリグレッションテストについては、
非常に神経質にしなければならなくて、
これはしっかりやっておかないとあとで痛いしっぺ返しを食らいます。

それと同時に、特に弊社ですが、チェックリストというあのクソ忌まわしいものがあって、
それでチェックすればするほど「レグレッションの観点でテストを洗い出していること」とかいう
なんだこのクソ抽象的なチェックリストはなんてものもあったりして、
こんなチェックリストで無駄にテスト項目の時間を消費するんだったら、
テストコード書いとけよなとか思ったりするわけですね。

ただ、ベンダーの人にすれば、レグレッションテストの工数を見積に加算するわけで、
テストコードがあるほど、テストの工数が増えて、儲かるという目の前の利益に目が行きがちで、
レグレッションテストというのはSIerにとっての癌だと私は思っていたりします。

ま、他の方の質問としては、ウル覚えで申し訳ですが、
30過ぎてからプログラマーになったんだけど、どうなのよ的な質問がありました。
福井さんは「コードを書きまくれ」というアドバイスが有りましたが、
私も同感です。

特に私は勉強本を読んでもあまり覚えないので、
指で覚えるということを実践して、頭で考える前にすぐ指が動くようにしたいですね。
で、その洗練された指の動きは、コードを書きまくって、覚えるしかないと
私は信じていますので、この考え方は非常に納得しましたね。

あとは女子大生PHPerのどうやって勉強するかの話で、
福井さんは「おじさんに聞く、コミュニティに参加する、OSSのソースを読む」ということを提案されていました。

ちなみに私が「女子大生PHPer」とつぶやいたところ、キョンさんがGroovistにしようと語りだして、
この女子大生PHPerはなかば強引にGroovistにしてしまおうという流れになりました。

まあそのうち、東京Groovyなんて勉強会を開いてみたいななんて思ってみました。


俺たちのハンガーフライト整備士
とりあえず、振り返りセッションです。

チームに分かれて議論しましたが、私のグループでは、
  • 今後の自分のキャリアどうするか
  • チームを強くするにはどうするか
という二つの問題に別れたと思います。

ただ、ひとつ共通の解があって、
一人で問題を抱えても仕方がないのではないかと思ってみました。

なお、この時、「私を勝手にGroovistにしないで、きゅんきゅん」と女子大生PHPerに怒られました。



「次の時代を作るのは、老人ではない。」 ボースンの白昼夢
あと二年で定年という方のお話でした。

もと海上○安庁に務めていた方の計算機との出会いと、今後やりたい事を熱く語ってくれました。

ここで気になったのは「老人ではない」というキーワードなのですが、
@jojoAtHanawaさんは、話を聞いても老人ではないと思いました。
後二年で定年とおっしゃっていましたが、
いや、このチャレンジ精神は、弊社の若手社員に見習ってもらいたい。
というより、弊社の若手社員のほうが老人に見える
そんなことを感じました。

これは安西監督の名台詞「あきらめたら、そこで試合終了ですよ」を思い出しました。
プログラマーももうこれ以上技術を追いかけるのを諦めたとしたら、
「エンジニアとしてもう老人になってしまう」のかと思いました。


と、まあこんな感じでしたが、
会場ではいろいろ初対面のかた、Twitterでフォローしているけど、
はじめましてなんて方もいらっしゃってびっくりでした。

個人的には、kimkou_26さんアラさんとご挨拶していただいたのが印相的ですね。

とくにアラさんにはびっくりしました。
アラさん宛に返信を書いていると、後ろから突如、
あ~、それ、あたしですと声をかけられてびっくりしました。
きれいな方で二十歳で、おれのヨメさんになってくれないかな(ピピーッ。イエローカード!)、、、なんて妄想を抱きました。

ちなみに、彼女とともにキョンさんとキムコウさんの下でGroovistに成長していきたいと考えております。

そんな訳で、次のDevLoveあったら、また参加したいと思います。

以上、駄文失礼をば失礼いたした

0 件のコメント:

コメントを投稿