JavaEdge第四回ライブセッション

JavaEdgeの第四回ライブセションに行ってきました。

前半は市川さんのファンクションポイントを中心とした見積りの話。
プロジェクトとは定義した成果を制約のなかで達成することであり、プロジェクトの開始時点での成果定義とは見積りである、見積もりがいいかげんでは、なにを達成したらいいのか分かっていないということだから、成功など絶対ないというか形容矛盾、というような話からスタート。続いていろいろある見積り手法の分類とファンクションポイント法の概説に続いて、ファンクションポイントによる見積りを簡単なアプリケーションについて実際にライブで行ってくださって、これはとてもよくわかりました。お手本重要ですね。
プロジェクトにおける運用としては、初期に概算見積りをした後、基本設計が終わったところで今度は詳細に見積り、以降、工程のマイルストーンの度に再見積りを行うと。最終的にプロジェクトの終了時に(成果物はもうできあがっているわけですが)もう一度見積りを行い、次回以降のための数値を取るということも行っているそうで、そんなお話から、見積りというものをどう考えるべきなのかがみえてきました。何度も見積りを行ってみることで経験をつんだり係数を決める材料にしたりできるわけで、そうやって使える道具にしていくこと、そしてムービングターゲットを捉えるように用いるというイメージが持てました。
懇親会の場で、LOCでも人月でも進行状況(見積りに対してnn%できてます)が表現できるけれどファンクションポイントではできないので不便では?という話を片山さんにしたところ、顧客価値で考えたらnn%できてますってないでしょー山本さん、と一蹴されてしまいました。

続いて、Javaプログラマの勉強法というお題できしださんから。
まったく初めてのときは興味を持つこと。プログラミングは楽しいと思うことが大事で、教える側が最短経路を示してもそれが最善とは限らない、と。その次は環境、ライブラリやフレームワークについて理解すること。そしてそれ以降をどうするといいか。純粋にプログラミングに取り組むべきだ、ときしださん。いろんな道具の味見ばかりしていてもだめ。方法論や設計技法は効率の話でこれもプログラミングの本質ではない。アーキテクトだの上流なんとかみたいのは職種が変わる話だからもう全然趣旨がずれている、と。ここへきて、きしださんは、プログラミングは本当に楽しいことで、好きになってずっと続けたいことで、それを続けていく人としてのプログラマの話をしているということがやっと分かってきました。
きしださんは、いろいろなカテゴリの言語を学ぶことといい本から学ぶことを勧められました。言語なら、Javaの後ならLispやHaskelといった関数型、Prologのような論理型の言語を学びましょうと。また学ぶべき本としてSICPやCTM、アルゴリズムサイエンスシリーズを挙げておられました。
先に見積りの話があってこの講演だったわけですが、見積りは非属人的なものであり、見積もれないような仕事=属人的=自分にしかできない=真のプログラマを目指しましょう、ということで話はしめくくられました。
僕の考えとしては、ソフトウェアの開発は周辺まで含めた世界で自己相似なのであんまり限定的に考えようとしなくていいんじゃないかと思いますが、そう思う自分だからこそ、もっとガチにプログラミングと向かい合うのもいいな、と思いました。関数型言語アルゴリズムもちゃんと勉強してみよう。

懇親会でも楽しくすごさせて頂きました。コミュニティはなにがテーマであれ人のあつまりであり、そのことのよさを改めて感じました。JavaEdgeのLiveSessionはひさびさの参加でしたがいいですね。楽しい時間と多くの気づきをありがとうございました。