JavaEdge 第4回ライブセッションのレポートをいまさら。

ということで、約1ヶ月前の2/29に開催されたJavaEdgeのレポートをいまさら。きしださんのセッションは個人的にタイミング・内容がベストフィットだったので気合を入れて書かないと…と思ってたら、そのまま時間が…。やっと書いたので表に。

開発の現場から(ファンクションポイントについて)

EC-OneのPMの市川さんによる、ファンクションポイント法(FP)についての話。

EC-Oneでは見積もりをファンクションポイント(FP)とWBSを使った方法の組み合わせでやってます、という話。内容のほとんどはFPの説明だったけど、それは省略。見積もりとか自体にはあまり興味がないので、聴いている間、何度か意識を失いそうになった…。

EC-Oneでの見積もり手法
  • 初期はFP概算法、あとから詳細にやったFPとWBSを比較。
  • 設計フェーズ、製造フェーズ、テストフェーズといったフェーズが変わる都度、再度見積もりして、再評価する
  • 開発の終了時にも再評価を行う
FPの利点
  • ユーザ視点
  • ユーザと一緒に考えるので、ユーザにとってわかりやすい
    • 交渉がやりやすい
JavaRubyの比較

「まだ実績が少ないので断言はできないが」

  • Java では人月 5FP 〜 10FP 程度
  • Ruby では人月 10FP 〜 15FP 程度

ゲストスピーカーセッション(Java・プログラムの学び方)

きしだなおきさん(id:nowokay)による、Javaやプログラムの学び方について。
ペンタブ+Windows Journal使って話しながら絵を書いて説明をするという話し方をしてたんだけど、これはいいなぁと思った。これを見た日からTablet PCが欲しくてしょうがない…。

Javaの学び方
  • プログラムを始める
    • まずはプログラムに興味を持ってもらう
  • Javaをはじめる
    • 言語の勉強
    • (繰り返しだけど)このフェーズに来る前に、先にプログラミング自体に興味をもってもらう
  • Javaをつかう
    • Frameworkやライブラリの勉強
      • これの勉強だけをしても、ライブラリは使えるけど実力がつかない人になっちゃう
      • Frameworkの勉強は疲れる、「酔っ払いのランダムウォーク」に付き合う事になっちゃう
      • それよりもJava実行環境の勉強をしたほうがいいよ
プログラムの学び方
  • プログラムの勉強ではないもの
    • テスト技法やマネジメントや設計
      • プログラミング能力が一定な世界の中で、良いものをつくる為の能力
    • アーキテクトとかプロマネってプログラマから職種が変わっちゃってるよね。
      • 個人的にはこの発言にはちょっと目が覚めたかも…。
  • プログラムの勉強
    • プログラム=プログラム言語で計算をする事
    • 計算ってなに?
    • Javaは言語自体の機能が少ない=不自由・制約
      • 言語の勉強には向かない
      • 実務というか、多人数で制約が欲しい世界に向いてる
    • いろんなパラダイムの言語をやるといいよ
    • プログラミング能力を伸ばさずに(Frameworkの使い方とか)最適化しても行き詰ってしまう
  • 「ライブラリはあるんだからアルゴリズムなんて覚えなくていいでしょ」って言う人いるけど
    • アルゴリズムは超重要
    • アルゴリズムとデータ構造
      • 綺麗な条件でのソートかその程度は入門にすぎない
      • 100件のデータを10件分のメモリしか存在しないケースでソートをするとか
    • アルゴリズムを学ぶのにいい本
プログラマとお金の話
  • プログラマで良いお金をもらうには?
    • FPとかで見積もる事ができないものをつくる
      • 自己紹介の「VB6 to Curlな変換ツール」はまさにそれ。誰も見積もれない。
      • 発注側がだせる金額(期間)まででものを作る

その他

ライブセッションの会場となっているOracleさんがマグカップをくれた。

*1:ライブセッションの日はDISられから1週間後ぐらい