Planet EZO

コンピュータやソフトウェアのあれこれ@道民(&元道民)

Follow me on TwitterRSS Feeds

  • Home
  • 全記事を表示
  • Planet EZOについて
  • EZOLIST
  • HOW TO JOIN?

達人プログラマー読書会@札幌-2012.01.25 に参加しました(最終回)

1月 26th

Posted by irasally in Planet

1月25日(水)に行われた、達人プログラマー読書会@札幌に参加しました。
本日が最終回。最後まで参加して、本を読み通す事ができました!(途中2回休んだけど)
最後の2つのセクションが心に響きました。

43. 容赦ないテスト

「早めにテスト、何度もテスト、自動でテスト」
というヒント62に尽きるね、という話になりました。
テストの大切さ、そしてそれがなかなか現場で実践できていない事、今も昔も変わらない。
根本的なところは変わらないけれど、TDDの流れの源流(テストのテストをするための破壊工作など)を感じる部分もありました。
テストそのものよりも、テストデータを作る事が大変な事が多いのだけど、スクリプトを作ればもう少しうまくやれる事が多いのかもしれないという気づきがありました。

44. すべてはドキュメント

いらないドキュメントをたくさん作るのではなく、コードとドキュメントを一体化させる事。
ドキュメントの原本は1つにする事。
マークアップ言語を使えば原本から様々な状況に適したドキュメントを生成できる事。
コードはドキュメントであり、コメントはとても大事な事。

昔、プログラムを始めた頃の自分のコメントは酷かったなあ。
今は、もう少しまともに書けている気がする。でも、まだまだだ。

未来の誰かがソースコードを読んだ時に「?」と引っかかる部分に対するメッセージをコメントとして残しておけるような、そんな書き方がしたい。
「コメントは”何故”を書く、目的やゴールを書く」
忘れないようにする。(ああ、最近TODOコメントが多い・・・)

45. 大きな期待

とてもよいセクションでした。
「達人プログラマ」の”プログラマ”的技術向上の話ではなく、「お客さんと向き合ってものをつくる」という事に対する心構えの話。
「ユーザーの期待をやや上回って、お客さんに嬉しいサプライズを与える」ような仕事がしたい!
アジャイルサムライでも書かれている「期待のマネジメント」について
「特権的な立場ではなく、ユーザーと一緒に作業をすることで期待とその実現方法をお客さんとチーム全体が共有していく」
と書かれていました。
「お客さんと一緒に」仕事をする大切さ。・・・そして難しさ。
読んでいて、ハッとさせられる事が多かったです。

46. 誇りと愛着

達人プログラマは自分の作った物に誇りと愛着を持つ。匿名で逃げてはいけない。
匿名性により、コードに責任を持たなくなり、ソースコードがどんどん酷い事になるプロジェクトを体験した事があります。その時は正直自分も「とりあえず動けばいいや、私に責任はないし」と考えていた事を告白します。
きちんと名前を書いて自分のコードに責任を持つ、責任を持てるコードを書けるようになる事を大切にしていけるプログラマになりたい。

「私はこれを記述した、そしてこの仕事の後ろには私がついている」

それがお客さんに対する品質の保証となれるような達人プログラマ目指して、これからも頑張っていきたいです。

最後に

昨年の7月から開始して計13回。
主催した@onjiro_mohyahyaさん、本当にお疲れさまでした!読了おめでとうございます。
隔週で同じ場所で読書会をやっており、勉強になるところがたくさんありました。
輪読のセンテンスの区切り方はかなり参考にさせていただいていました。
これからも勉強会などなどでお会いすると思いますので、よろしくお願いします!

all

えにしテックカフェにいってきました

1月 26th

Posted by irasally in Planet

P1242095

えにしテックカフェ 2012-01-24にお邪魔してきました。
いつも、ここにくると癒されます。(ケーキじゃなくて!皆さんの雰囲気に)

今回のお話はこの3本でした。

  • Design Rule Index を読んでみよう
  • gollum を使ってみる
  • iOS HIG を読んでみよう

Design Rule Index を読んでみよう

@mayucoさんの担当。
今回は「共通運命」の話。
デザイン上、動きがなければ同じ形のものを無意識にグルーピングしているけれど、動きがあると同じ動きのものをグルーピングして考えるようになるという人間の意識の話。
「同時に、同じ速度で、同一方向へ動かす」
「同時に、同頻度で、同じ強度で明滅させる」
と、同じものとして知覚されます。

という文章だけを読んでいると、とても難しく感じたのだけど、
「例えばこの人間の知覚がどういう場面で使われているか」
の例がいろいろと出てきて(レーダーのポイントと文字、人が走るアニメの背景と地面の関係など)、理解する事ができました。
本を読むだけじゃなくて、具体的な例を話し合いながら学ぶ事はとても良い事なんだなと感じました。
えにしテックカフェに行ってDesign Rule Indexの時間があるととても嬉しいです。

gollum を使ってみる

@tricknotesさん担当。
githubのwikiの機能を取り出して使う事のできるサーバー付きアプリケーション。gollumについて。
実際にgithubから持って来てローカル環境で使えるまでを実践。
インスールするまでの手順に興味津々。
知らないコマンドや便利なもの(bundllerなど)がたくさんあって、とても勉強になりました。
でもまだ、1人で入れられる自信は・・・ない。

テキストをgitにコミットするとwiki上で見る事ができるという仕組みはとても便利。
開発でgitを使っている時だと、ブラウザに移動しなくても書きたい事をwikiに残しておけるのは良いなぁ。

しまださん&しだらさんの後ろからの的確な指導にも感動。

iOS HIG を読んでみよう

@darashiさん担当。
iOSヒューマンインターフェースガイドラインをみんなで読んでみる。
実は日本語のドキュメントはちょっと古くて、最新版は英語版のみみたい。
しかし、大枠は変わらないという事で、最初の方からガイドラインを読みました。

頻繁にきちんとガイドラインを更新している事、ユーザーの目線に立つ事、ユーザーが「気持ちいい」と思える操作は何であるかを考える事・・・アップルらしいところがたくさん。

iOSの標準アプリはそう考えると本当にとても良くできているんだなあ。

iOSに関わらず、何かを作る時に使う人の事を考える(その人がどういう使い方をする事が一番気持ちがよいかを考える)、自分が本当にそのユーザーの気持ちにたてているか(自分にとって便利だと思う動作は、ターゲットにとっても便利なのか?)など、考える事がたくさんありました。

えにしテックカフェに行くと、コードをたくさん書きたくなる不思議!
たくさんコードと戯れたいなあと感じた夜でした。

all

Ruby勉強会@札幌-21に参加しました

1月 23rd

Posted by irasally in Planet

1/21(土)に行われたRuby勉強会@札幌-21に参加しました。
読み合わせとコードレビュー大会。勉強会でコードレビューするのはとっても面白い試みだなあと思いました。

初めてのRuby読み合わせ

6.3制御式〜。6.3.4 while式までやりました。
case文の書き方が独特だなあ。特に条件を横に並べて書く事ができる点。
例えば、targetという変数の値が1の場合はxx、2,4,5の場合はyy、7の場合はzz、その他の場合はhogeという処理を書くとすると

<Java>

switch(target){
    case 1:
        xx();
        break;
    case 2:
    case 4:
    case 5:
        yy();
        break;
    case 7:
        zz();
        break;
    default:
        hoge();
    }
}

<Ruby>

case target
when 1 then
  xx
when 2,4,5 then
  yy
when 7 then
  zz
else
  hoge
end

Groovyを併用する事で、Javaでもswitch文でパターンマッチングを簡単に使用する事ができたり、
セミコロンを省いたり、とかなり気持ちよく書けるようになっているのだけど、breakを書かなくていいというのはすごく気持ちがよいなあ。
caseと処理が1:1なので、あるcaseにマッチしたときにどの処理を行うべきなのか見やすい。

読書会の中では、rubyの色々な記述方法について、「どれを使っているか、そしてそれはなぜか」という話がたくさんされていました。
色々な書き方があると「意味を考えてコードを書く」という気持ちが強くなるんだなぁと感じました。
どっちを使うか考える時に、このコードで表現したい事は何かを今一度考えるというような。
表現方法がたくさんあるrubyならではの強みだなぁ。

次回は P118 6.3.5から。

初めてのRuby読み合わせ

volpe28vさんがリリースした「コタれん」のソースコードをみんなでレビュー。
Railsのソースをそんなにたくさん見た事がないので興味津々でした。
そして、プロダクトの構成を説明してもらう事、そのソースコードを見る事、ソースコードの指摘を聞く事、全部がとても面白かった。
書いた人も、見ている人も、どっちにも有益な時間でした。あっという間!
業務で行われるソースコードレビューも同じようにたくさんの学びや刺激を受ける事ができますが、勉強会では業務という枠を飛び越え、本当にいろいろな考えを聞く事ができるのが面白い。(人数も多いし)
またやってみたいなあ。

Sapporo Cafeさん

今回の会場はSapporoCafe(北8条西5丁目)でした。
1階はWifi完備のカフェ、2階は談話室として解放されています。
今回の勉強会は2階で開催されました。
普段は2階も自由に使えるスペースとなっていますが、2階の半分のスペースを1時間800円で貸していただけるそうです。1階のカフェメニューを2階でいただく事もできるし(スイートポテト美味しかった!)、プロジェクタも電源もあります。半日で電源、インターネット環境、プロジェクタがついて4000円は安い。小さめの勉強会を開催する時にとても嬉しい場所です。開発オフなど出入り自由な勉強会にもとても向いているんじゃないかな。
ただ、冬場の2階はちょっと寒いので、膝掛けなどの防寒具を持参した方が良さそうです。

1階は居心地のよいカフェでした。机が広々。コーヒーも美味しかったし(350円)、立地条件もとても良い(駅から近い、自分の場合は自宅からも会社からも近い)。
1人でちょっと勉強するのに最適のスペースだなと感じました。
仕事帰りに勉強したり本を読んだりするのに、これからたくさん利用させていただこうと思います!

数年前はこういう施設(インターネットが使えて、4,5人でPCを使いながら開発や話し合いをするスペース)が札幌の街中には全然なかったんだよなあ、時代が嬉しい方向に変わっていっているのを感じました。
これからもよろしくお願いします。

今回の勉強会に参加して、いい刺激を受けて「Rubyのコード書きたいー!」という気持ちになりました。
「どうしてその書き方をするのか」という話をしていたのが一番大きかった。
どの書き方を選ぶかでソースコードから伝わるニュアンスや伝えたい意味が変わるなんて考えた事がなかったので、そういう変化を楽しみながら書いていきたいです。まずは写経から。

all

第12回アジャイルサムライ読書会 @札幌道場 開催

1月 18th

Posted by irasally in Agile

第12回アジャイルサムライ読書会 札幌道場を開催しました。
参加者は9名。2012年サムライ初め!

今回の範囲で「グっときた」ところ

共犯者になろうとしちゃだめだ

個人の生産性を計測すると、プロジェクトで大切に育んでいきたい心構えと振る舞いを台無しにしてしまう

勉強会として

「第8章 アジャイルな計画作り」を読み進めていっています。
お客さんとどのように接していくか、信頼関係をどう築くかという話が一番心に残っています。

共犯者になってはいけない

今回、一番心に響いた言葉。
大前提として、お客さんは「敵」ではない。
意見が合わなかったり、なかなかやり方を認めてもらえないお客さんであっても「敵」ではない。
一緒にものを作っていくチームのメンバーです。
でも、「敵でなくなる」ために共犯者になってはいけないのだよなぁ。

実際、

(´し`)<「お客さんはなにもわからないのだから、気持ちよくいてもらうために、本当の事を伝えずに、(どれだけ現場が火の車でも)うまくごまかしてプロジェクトを収束させる、それがプロ。」

なーんて事を言っている人もいt…るかもしれないんですよね、世の中には。
でもそれって、ただの共犯者になっているだけなんだよな。
できない事をできると言って、本当の事を伝えずにその場しのぎで気持ちよくさせるのは、敵にならない方法じゃなくて共犯者になる方法。
お客さんに対してちっとも誠実ではない。

共犯者にならずにお客さん一緒にものを作っていく、そのためには誠実さ、強い気持ち、信頼貯金、きちんと相手と話をする事ができるコミュニケーション力、総合すると、高い「人間力」が必要になると思う。

技術だけでなく、人間としての力も磨いていかなければいけないなと感じました。

計画を立てるということ

アジャイルな見積りと計画について、実践がとぼしいのもあり、ピンと来ないところもけっこうありました。

  • 顧客に取って価値ある成果を届けられる計画
  • わかりやすくありのままを伝える、誠実な計画
  • 約束した事を守り続けられる計画
  • 必要に応じて変更できる計画

特に「必要に応じて変更」した場合、具体的にどうなっていくのか、どうするのかというところがモヤモヤしている。
アジャイルな見積りと計画作りをしっかり読んで、この辺りの知識をもっと深めたいです。

運営の立場で

今日は出張帰りで空港からまっすぐ参加してくださった @sandinistさんからチーズケーキのお土産をいただきました!

チーズケーキをいただきました!

ありがとうございましたー!!とっても美味しかったです:)
(そして、コーヒーを皆さんにお出しするのを忘れました)

今年も最後まで本を読み通すことを目標に、焦らずしっかりと続けていきたいです。
雪が溶ける頃までには全部読み終わるかな?

読書会のディスカッションのwikiはこちらになります。
https://github.com/agile-samurai-ja/support/wiki/Readingagilesamuraiinsapporo20120117

最後に。毎回会場を提供していただいた弊社に感謝。
今年もよろしくお願いします。

all

達人プログラマー読書会@札幌-2012.01.10 に参加しました

1月 13th

Posted by irasally in Planet

新年あけましておめでとうございます。
2012年1回目の勉強会は1月10日(火)に行われた、達人プログラマー読書会@札幌でした。
「チーム」という最近ずっと興味を持っていることについてまったりと語らいました。

第8章 達人のプロジェクト

この章では、達人プログラマがプロジェクトに入ったら、どうなるか、どうすべきか、という事が書いてあります。
達人が集まるプロジェクトチーム、最強だなあと思います。
また、チームとして集まる事で、達人だけではなく達人「なりかけ」の人の力もたくさん引き出していけそうな(引き出させてもらえそうな)。

「成功とは見る人が判断するもの、プロジェクトの場合見る人はスポンサー、だから、スポンサーの大きな期待に応える事が大事」

心に留めて読み進めていきます。

41. 達人チーム

達人の技法が集団としてのチームにどう適用できるのか。
よくも悪くも染まりやすい自分としてはうなずく事がたくさんありました。

  • 品質を気にかけないチームに配属されると、どんなに優秀な開発者でも面倒な問題を修正する情熱を維持しづらく感じる
  • プロジェクト開発における環境全体の温度に気をつける、ということは難しい
  • チームも組織の一員であり、他の世界と情報交換しあわないといけない
  • しっかりと準備されたパフォーマンスがチーム全体を心地よくする

この辺りのチームのあり方、気持ちの持ち方、モチベーションについて、ずっと誰かに引っ張ってもらってきた(幸いにも良い形のチームである事が多かった)ところです。
これからは、自分がこのようなチームを作り上げていく力の一つになりたいと思う。

また

  • 機能によってチームを分ける事で二重化を減らす
  • プロジェクトの諸活動(分析、設計、コーディング、テスト)を別のものとして独立させることは問題を発散させてしまう事につながる
  • 実際のユーザーから2〜3階層離れたプログラマーは、自分たちのコードが実際に使用される際のコンテキストについて、あまり注意を払わないようになる

この辺りはまさに「大規模開発をやっている職業プログラマ」時代に思い当たるところがたくさんありました。
コードのコンテキストについての意識は常に持っていたい。

42. どこでも自動化

今、業務で「Maven」を使用している事もあり、自動化の重要性、便利さ(そして使いこなすまでにはちょっと苦労する事)などを感じていたところでした。

「プロジェクトの整合性と再現性を保証」するためには、なるべく手動の手続きは入れない方がよい。
ただ、細かい部分の自動化にどこまで時間を使うか、は判断を迷う時が結構あります。
(最近だと、Excelにコピーしてデータ量順にソートして終わりにするか、ソート用のプログラムを作るか、など)

自分は細かい部分(自分だけの作業)だと、手動でゴリゴリやりがちなので

「コンピューターの方がうまくやってのけるような繰り返しや俗っぽいことはすべてコンピューターに任せてしまう」

ようにしていきたいと思います。
そして、労力をかけずにそうできるようになりたい。

次回で達人プログラマ読書会は終了(予定)です。
約半年間、あっという間だったなぁ。
最終回もきちんと出席したいです。

all

2012年に向けて、2011年を振り返る

12月 31st

Posted by irasally in Planet

2011年は、「思い描いていたのと全然違う形でやりたいと思っていたことに近づいた。」そんな年でした。

やりたいと思っていたこと

2010年の終わりに、私は今年の目標としてこんなことを言っていた。

  • もてなされるだけじゃなくて、もてなす、楽しいことを伝える側にたつ
  • 素敵な情報を発見するハードルを下げたい、リーチを楽にしたい
  • 「勉強会内容」じゃなく「勉強会雰囲気」の感想を届けたい
  • 勉強の内容より勉強会そのものを知りたい

で、そのために、北海道の勉強会情報に特化した情報を流す何かを自宅サーバーから届けたいなと思っていたのです。

実際にやったこと

  • ブログをたくさん書いた
  • 勉強会のスタッフをした
  • 読書会を主催した

あれ、全然、違うじゃないか、と。
自宅サーバーどこいったんだ、と。(←いるにはいます、生きてます

ブログをたくさん書いた

今年の寺子屋未満に投稿した記事数は57本。
(昨年、一昨年は10本程度)
月平均4本以上書いていることになります。
ブログの投稿数がこんなことになるなんて、今年の頭には思ってもみませんでした。

何故こんなに増えたかというと、

6月頃に「参加した勉強会の情報はすべてこのブログに書こう」と決めた

からなのです。
いつ決意したのか、なにが原因でそうしようと思ったのか、全然覚えていません。

ですが、ブログを書くことで、技術的な感想だけじゃなくて、参加した自分がどう感じたか、どこをどのように良いと思ったかをきちんとアウトプットすることができたように思います(実質半年分だけど)。
やってみたら、思ったよりも苦痛ではありませんでした。
それに、その場で何かをきちんと得て、帰ってから言葉にしようという思いが強くなった。
ただ参加して消化するのではなく、より良い形で勉強会に参加できるようになった。
1つ1つを大事に思うようになった。など、勉強会に対する自分の姿勢も変化しました。

技術的な成分は少ない記事だけど、勉強会がどういうものか、イチ参加者として何を感じたか、これからも誰かに伝わるかもしれない記事を書いていきたいと思っています。

勉強会のスタッフをした

昨年の札幌Ruby会議03のスタッフに引き続き、今年はOSC北海道2011を筆頭に、色々なイベントや勉強会のお手伝い側の経験もさせていただくことができました。
「やってみたい」と「実際にやってみる」の間にある大きな違いを実感できた年でした。
何事もやってみなければわからない。
「やりたい」を「やってみる」に変える1歩が大事、と学びました。

また、スタッフというのは参加者と反対の立ち位置にいるのではなく、同じ方向にいるんだなということにも気がつけました。
向かい合っておもてなしをする時間も、もちろん大切なのだけど、同じ方向から少しだけ遠くや深いところが見れるのがスタッフなのかなと。
1つのイベントについての様々な見方、感じ方、楽しみ方なんかをもっと伝えていけたらいいなと思います。

読書会を主催した

8月から、アジャイルサムライ読書会@札幌道場を開催しています。
今年のはじめに、自分が何かを主催するなんて全く考えてもいませんでした。
日本Ruby会議に参加して、開催中にアジャイルサムライに出会い、自分で何かをやってみたいと思った30歳の決意から、気がついたらこうなっていました。
11月には、読書会がご縁でスライド発表もさせていただきました。
読書会を開催できたことは、自分にとって大きな1歩だったんだなあと振り返って改めて思います。

なにせ、初めて伝える側になるきっかけとなったのですから。

2011年総括

最初に思い描いていたのとは全然違うのですが、

  • もてなされるだけじゃなくて、もてなす、楽しいことを伝える側にたつ
  • 素敵な情報を発見するハードルを下げたい、リーチを楽にしたい
  • 「勉強会内容」じゃなく「勉強会雰囲気」の感想を届けたい
  • 勉強の内容より勉強会そのものを知りたい

この、思いには着実に近づいていけた、そんな気がするのです。
人生何がどうなるかわからないものだなあと。
なんというか、振り返ってみて一番の感想は「びっくり」なんですよね。
その時々の自分の気持ちや勢いを大事にして良かったな、そんな風に思います。

2012年

今のまま、思うがままに、ぶれない気持ちで進んでいこうと思います。
特に、「リーチを楽にしたい」「楽しいことを知るためのハードルを下げたい」という思いについては割と長期的な目標として取り組んでいきたいなと考えています。
その1つとして「勉強会レポート」はこれからも続けていこうと決めています。

自分が今ここでこうしているのは、楽しいということを知ることができたから。
何かをきっかけにして、「楽しい」と感じて、勉強会などに関わる人が増えていったらよいなー。
うまく言えないのですが。
何らかの良い影響を自分も誰かに届けることができたら良いなと思うのです。

あとは、個人的な技術力の向上。
今年も新しい事に触れ、自分のスキルもちょっとだけアップしたのを感じます。
でもでも、もっと磨きたいことがたくさんあります。
きちんと手元に揃えておきたい道具をそろえること、使いこなしていくことが来年の目標です。

来年もサボらずに、自分のペースで歩んでいきたいと思います。
今後ともよろしくお願いいたします。

all

[メモ][planet]2011年のまとめ

12月 29th

Posted by hiratara in Planet

2009年のまとめはあるのに2010年のまとめがないことに気がつきましたが気にしない。

  • CLTT読書会に割と出た
  • #yhiosに割と出た
  • 各種.pmに割と出た
  • スタートHaskellに少し出た
  • Awodey読書会に少し出た
  • Java EE勉強会に少し出てClojureした
  • GAEにパッチ送った
  • (お仕事で)レガシーなのをPSGI化した
  • Git勉強会で話した
  • 揺れた
  • 計画停電時間検索ツールをDIS手伝った
  • (お仕事で)iPhoneアプリ書いた
  • Coqに触れた
  • 論理と計算のしくみ読んだ
  • 書くことなくなってソース読むシリーズでお茶を濁した
  • JSゲーム製作勉強会に出た
  • 函数プログラミングの集いに出た
  • RIP Steve Jobs
  • YAPCのスピーカーデビュー
  • YAPC::ASIA 2011 をレポートした
  • Hokkaido.pm のおかげで結婚した
  • Allowsの論文読んだ
  • #fcsap にお邪魔した
  • Hacker Track に書いた
  • node.js に触れた
  • Scala に触れた

今年は計算論方面にどっぷり染まった1年でしたが、今後はどうするか迷うところです*1。また、来年は大きな変化も訪れる予定です。そんな変化の年を迎えるにあたり、ブログ名もシンプルにしてみました。


それでは皆様、よいお年をお迎え下さい。

*1:機械学習に戻りたいんだけど、勿体ないし面白いしという泥沼orz

all

第11回アジャイルサムライ読書会 @札幌道場 開催

12月 21st

Posted by irasally in Agile

第11回アジャイルサムライ読書会 札幌道場を開催しました。
参加者は6名。今年最後の開催です。

今回の範囲で「グっときた」ところ

チームで見積りをすることで実のある話し合いにつながっていく

少し手間をかけるだけで見積りはずいぶんと良くなるもの

変化は競争優位を獲得するために活用すべきものになる

勉強会として

今回は、見積り、そして計画作りの話へと進んでいきました。
「アジャイルな見積りと計画作り」と、今回のテーマそのものの本が出ていることからもわかる通り、きちんと学ぶにはこの本では薄すぎる分野なのだと思いました。
実際に他の本を読んでいた人達からの意見を聞くことで、文中の疑問点を補完できたところもたくさんありました。
1人で読んでいたらそうはならないところなので、読書会という場はとてもありがたいです。

同時に、アジャイルサムライは、その分野をさらに深く学んでみたいな、という気持ちにさせる記述がたくさんあるなと感じました。
この本1冊で完璧というのではなくて、とっかかりやすいきっかけとして位置している。
実際、この本から始まったに等しい自分としては今度はこれも学んでみたい、とわくわくする気持ちをたくさん本から得ているような気がしています。

相対的な見積り

「相対的に見積もる」ための前提条件として「プロジェクト全体を俯瞰できる」「客観的にプロジェクトを見ることができる」技術的・現実的な立場が重要だなと思いました。
(まるでベルトコンベアのように)自分の担当する機能の設計書だけが渡されて、全体像もわからないまま、経験値だけで終了予定日数を出す、これは全く相対的ではありませんね。
相対的に見積もることにより、メンバーが全体を把握する、客観的にいろいろな物事を考えることができるようになる、そういうメリットもあるんだろうなと思いました。

プランニングポーカー

実際に現場でやったことはないのだけど「見積りをチームで話し合う」ことはとても重要だと感じています。
自分が気がつかなかった材料を教えてもらえることもあるし、全員の同意を得た上でプロジェクトの規模感を決めていくことはモチベーションという見地からも良いことだと思う。

チーム全体でイテレーション内でやることをコミットメントする

アジャイル的な自己組織化されたチームであればよりやりやすいことではあるのですが、そうでなくても
「チーム全体でゴールを決めて、目標に向かって日々の仕事をする」
ってすごく良いことだなと思います。
上から降ってくる仕事を(全体量も把握できないまま)ただ消化する、そういう形では得られないモチベーションがあると思います。
最初にこの職業についてみたいと思った動機も「皆で何かを作ることができるから」だったんだよなぁ。
ちょっとの方法の違いで、この辺りはチームが生き生きしてくるポイントになるんじゃないかなと思いました。

運営の立場で

今年の終わりまで、オーソドックスに読書会を開催できたこと、何よりもそれにほっとしています。
参加してくれる人がいたからこそ、ここまで来れたのだと思います。
ほんとうにありがとうございます。

約半年、読書会をやってみて、つくづく感じたのは、1冊の本なのに皆全然違う視点で読んでいるんだなあということ。

自分はどちらかというと、疑いの目を持たずに、わくわくしながら読んでいた方なのですが、他の本と照らし合わせてみたり、矛盾点を見つけたり、なにより「これを現実の現場でどう生かすのがよいか」という視点でいろんな話をできたこと、これがとても有意義でした。

本の分量としては半分くらいは進みました。(決して早くはない、むしろのんびり)
読書会としてきちんと最後まで本を読み通すことが来年の目標です。

読書会のディスカッションのwikiはこちらになります。
https://github.com/agile-samurai-ja/support/wiki/Readingagilesamuraiinsapporo20111220

最後に。毎回会場を提供していただいた弊社に感謝。
ありがとうございます。
来年もよろしくお願いします。

all

達人プログラマー読書会@札幌-2011.12.13 に参加しました

12月 21st

Posted by irasally in Planet

12月13日(火)に行われた、達人プログラマー読書会@札幌に参加しました。
この日は、仕事でかなりやられていて絶不調でした。
しかし、参加してそんな絶不調の原因を知ることができたのでありました。

37. 不可能なパズルを解く

「制約を認識すること」と同時に「自由度を認識すること」。
”それは本当にだめなことなのか?制約なのか?”・・・・ハッとしました。
その日、まさに「もっと簡単な方法があるはずだ」という発想の転換をせずに、ひたすら”この方法しかない”と信じ込んで、そして、疲弊していたのです。
218ページに書いてあった自分への問い

  • 簡単な手段は存在するのか?
  • 正しい問題を解決しようとしているのか、それとも末端の問題に迷っているだけなのか?
  • 何故それが問題なのか?
  • 解決を難しくしている真の原因は何なのか?
  • この手段でやり遂げなければならないのか?
  • 多少なりともこの方法でやり遂げなければならないのか?

この問いは、常に”あれ、なんかおかしい”と思った時に自問すべきだと思いました。

ちなみに、自分の場合どん詰まりになっていた原因は、技術的問題や制約ではなく、元を正すと環境が整備させていないが故に手段が限られてしまうというものでした。
環境の整備を同時に働きかけることで、どん詰まりから抜け出せたのは翌日、翌々日の話です。

38. 準備ができるまでは

なんとなく、思い当たる節があり、うなずきながら読んでいました。
その日、疲弊していた事柄についても(面倒だという気持ちをのぞいて)なんだか進んでよいのか、迷いが生じていたのですよね。
その迷いを、ただの怠慢だと片付けずに、本能に耳を澄ませることの必要性が書いてあり、勇気づけられました。
「本能をあなたの能力に貢献させる」。まずは、本能を研ぎすませたいですね。

また、不安材料を洗いだすためにプロトタイプを利用する方法も書かれていました。
ちょっとした簡単なコードを書いて手を動かしてみることで解決できる、見通しが立つことはびっくりするくらい頻繁にあります。
最初の1歩に迷った時に、小さなプログラムを書いて自分の進むべき道を見つけてあげる、そのくらいのプログラムは呼吸するように書ける、気持ちよく仕事をするために、身につけたい技術です。

39. 仕様の罠

設計を言葉にすることの難しさ、そして何より

「完璧な設計書を作成すれば、1mmも頭を使わずにプログラミングできるというのは間違いである」

という強いメッセージを感じたセンテンスでした。

  • プログラミングには必ず人間の解釈が必要
  • コーディング担当者に解釈の余地を与えない設計というのは良い設計とは言えない

生産的な仕事をしたい、と思っている自分には力強い言葉でした。

また、設計(仕様を策定すること)と実装は切っても切りはなせないものであり、きちんと境界なしに流れていくべきものである、という部分にも大いに納得しました。

40. 丸と矢印

「形式的方法論の奴隷になってはいけない」
この章はこれがすべてですね。
ちょうど10年前と言えば、UMLがでてきて
「UMLでプログラミングのすべてを表すことができる!」
「UMLとオブジェクト指向でコードを自動生成できる、生産性があがる!」
という話が一部で出てきた頃だったんじゃないかな(そういう本を読んだことがある)と思い返していました。

そういう考えによる弊害、もっと考えなければならないポイントについて、たくさん書かれていました。

特に、形式方法論は専業化を奨励してしまい、コミュニケーションの定価と努力の無駄遣いにつながりやすい、という話はなるほどな、と一番納得しました。
この本で書かれている「VS ○○ と敵をつくらない」「全員がシステム全体を理解しながら進むべき」というのは、今読んでいるアジャイルサムライの中でもチーム像として書かれていることでした。

ただ、形式的開発方法論を学ぶ必要がないというのではなく「とらわれずに道具箱にはいれておく」、知った上で良い使い道を見つける、それが達人プログラマなんだなあ、と。
一通りきちんと学んだ上で、取捨選択できるプログラマでありたいと思いました。

今年の読書会はこの回で終了です。
来年もよろしくお願いします。

all

TDD Boot Camp 札幌 2.3に参加しました。

12月 12th

Posted by irasally in Java

12月10日に行われた、TDDBC札幌 2.3に参加しました。
今回はJavaで参加。
お題は「ボーリングのスコア計算」でした。

事前イメージがあった

今回は、お題を聞いて最初におぼろげに実装をイメージしていました。
実装がイメージしやすかった分、当日も取り組みやすかったなと感じました。

int score = new Game("omuko").bowling(1,2)
                             .bowling(3,4)
                             .bowling(5,2)
                             .bowling(6,2)
                             .bowling(8,0)
                             .bowling(9,0)
                             .bowling(6,4)
                             .bowling(2,3)
                             .bowling(1,1)
                             .bowling(5,2)
                             .score();
assertThat(score, is(68));

※スコアはだいたい普段の成績、残念。

イメージ通りにはいかない

当日のプログラムはこちら https://bitbucket.org/irasally/tddbc2.3
細かい部品から作っていったのですが、どうしても(Javaの言語の性質もあると思いますが)かっちり作ろう、という方向に流れがちでした。
たぶん、一番エラーチェックが多いチームだったと思う。
「クラスに状態を持たせすぎるとテストが大変」というのを身をもって体験した感じ。
でも、部品を作り込んでいた分、部品の組み合わせは思ったよりも楽だった。
この辺りのバランス感覚は、磨いていきたいなと思いました。
「まず、1本簡単な実装を最初から最後まで通す、細かいことは2週目に考える」
途中からその言葉を何回か言いながら開発を進めていきました。

手を動かしたくてたまらなかった

わりと、テストで方向性がつかみやすかったことと、取り組みやすいお題だったことで、
悩んで考える時間よりも、手を動かしてコードを書きたい時間が長かった。
「どうやってテストを書こうか…」と悩む時間が今までで一番少なかったように思いました。
TDDをやりながら開発速度が上がるというのはこういう経験なのかもしれない。

自分が体験して思ったことは

  1. IN/OUT、得たい結果がはっきりしているお題であること
  2. お題(取り組むべき相手)が技術的に自分の手に負えること

この二つが揃うと、TDDがとても楽しくなりますね。
特に2は、自分が技術力を上げれば上げるほど広がる幅なので、精進あるのみ!です。

次回も是非参加したいと思います。
主催者の@shuji_w6eさん、今回もありがとうございました!

all
12345»102030...Last »
    • Recent comments
    • Popular posts
    • Archives
    • 2012年1月 (23)
    • 2011年12月 (34)
    • 2011年11月 (21)
    • 2011年10月 (65)
    • 2011年9月 (39)
    • 2011年8月 (34)
    • 2011年7月 (42)
    • 2011年6月 (50)
    • 2011年5月 (89)
    • 2011年4月 (34)
    • 2011年3月 (80)
    • 2011年2月 (115)
    • 2011年1月 (175)
    • 2010年12月 (197)
    • 2010年11月 (171)
    • 2010年10月 (146)
    • 2010年9月 (56)
    • 2010年8月 (45)
    • 2010年7月 (17)
    • 2010年6月 (13)
    • 2010年5月 (17)
    • 2010年4月 (4)
    • 2010年3月 (2)
    • 2010年2月 (5)
    • 2010年1月 (9)
    • 2009年12月 (2)
    • 2009年11月 (5)
    • 2009年10月 (3)
    • 2009年9月 (6)
    • 2009年4月 (2)
    • 2009年3月 (1)
    • 2009年2月 (7)
    • 2007年11月 (1)
    • [Java][AppEngine][slim3] pirka-mobileによるGAEのモバイル対応 (0)
    • ポスター完成しました! (0)
    • 月刊北海道IT勉強会:2010年9月号 (0)
    • RubyからSNMPを使ってみる (0)
    • 第4回北海道セキュリティ勉強会に参加してきた (0)
    • 第47回 CLR/H 勉強会に参加してきた (0)
    • 第14回北海道開発オフに行ってきた (0)
    • CLR/H第44回勉強会に行ってきた (0)
    • 第3回北海道情報セキュリティ勉強会に参加してきた (0)
    • Microsoft.VisualBasic.dllを参照しない(その1) (0)
    • ボク様ろぐ » Planet道民の実験をしてみたい: [...] さて。それで、何をしたいのか。実験サイトの方に軽く書いてみたので、良ければ読んでみてください。実験サイトはいつか潰しちゃうかもしれないので、まるっとコピペしておきます [...]...
    • » Planet道民の実験を始めました。 寺子屋未満: プログラミング:トライアンドエラーの結果をコツコツ&しっかり記録: [...] 詳しくは、@bokusamaのこちらの記事を読むと良いと思います。 PLANET EZOについて [...]...
  • My latest tweets

    Loading tweets...
    Follow me on Twitter!
  • User Login






    • Lost your password?
  • Blogroll

    • ameroe Blog - planet
    • but it's up to us to change
    • Chuta Blog
    • iakioの日記
    • iakioの日記
    • irasallyの日記
    • KUSHIRO OSS Community OFFICIAL BLOG
    • LDD'10/Fall in KUSHIRO
    • Ogagaga Diary
    • onodes’s Memo
    • riaf-ja blog
    • SONY狂な日々 » oss
    • tenyawanya.com » Planet
    • www.haselog.com
    • [-*煙猴*-]
    • ふわふわな毎日
    • まっ
    • やさしいデスマーチ
    • ウェビンブログ
    • キンケドゥ・ナウの不定期戯言
    • ボク様ろぐ » Planet
    • ヽ(´・肉・`)ノログ(without comments)
    • 北海道苫小牧市出身のPGが書くブログ
    • 実はhokkai7go
    • 寺子屋未満
    • 帰ってきたネコブログ » コンピューター
    • 最近の投稿

      • 達人プログラマー読書会@札幌-2012.01.25 に参加しました(最終回)
      • えにしテックカフェにいってきました
      • UbuntuにMySQLを入れる
      • MovableTypeのテスト環境を作りたい
      • Groovyのsortキーの話
      • Ruby勉強会@札幌-21に参加しました
      • 筋トレ
      • 暖かい一日
      • 寝過ごし
      • 相談
      • NDKを使ってみた
      • 第12回アジャイルサムライ読書会 @札幌道場 開催
      • ByteBufferのお話
      • homebrewのgitに乗り換えました
      • 達人プログラマー読書会@札幌-2012.01.10 に参加しました
    • アーカイブ

      • 2012年1月 (23)
      • 2011年12月 (34)
      • 2011年11月 (21)
      • 2011年10月 (65)
      • 2011年9月 (39)
      • 2011年8月 (34)
      • 2011年7月 (42)
      • 2011年6月 (50)
      • 2011年5月 (89)
      • 2011年4月 (34)
      • 2011年3月 (80)
      • 2011年2月 (115)
      • 2011年1月 (175)
      • 2010年12月 (197)
      • 2010年11月 (171)
      • 2010年10月 (146)
      • 2010年9月 (56)
      • 2010年8月 (45)
      • 2010年7月 (17)
      • 2010年6月 (13)
      • 2010年5月 (17)
      • 2010年4月 (4)
      • 2010年3月 (2)
      • 2010年2月 (5)
      • 2010年1月 (9)
      • 2009年12月 (2)
      • 2009年11月 (5)
      • 2009年10月 (3)
      • 2009年9月 (6)
      • 2009年4月 (2)
      • 2009年3月 (1)
      • 2009年2月 (7)
      • 2007年11月 (1)
    • カテゴリー

      • #946oss (2)
      • #docap (2)
      • #ldd11f (5)
      • #LDD11i (1)
      • #tqrk04 (1)
      • .NET (3)
      • 2011 (1)
      • a-blog cms (5)
      • Agile (13)
      • agilesamurai (9)
      • agilesapporo (3)
      • aj11hs (1)
      • Android (7)
      • animal (2)
      • API (3)
      • AppEngine (20)
      • aptitude (2)
      • Arduino (3)
      • asakusarb (1)
      • Asalato (11)
      • ATDD (1)
      • b-mobile (2)
      • benkyo (2)
      • bibitter (1)
      • Bitbucket (1)
      • blog (1)
      • Book (48)
      • Books (1)
      • bot (2)
      • bukken (1)
      • business (2)
      • C (29)
      • Camera (1)
      • capoeira (21)
      • CentOS (4)
      • Chrome (1)
      • CMS (5)
      • Cocoa (3)
      • CoffeeScript (1)
      • column (1)
      • consadole (3)
      • Coq (2)
      • couchdb (1)
      • CSS (4)
      • Cucumber (1)
      • Customize (2)
      • DB (1)
      • debian (3)
      • Debian/Ubuntu (1)
      • design (1)
      • devdo (1)
      • Didgeridoo (1)
      • dock spaces (1)
      • Eclipse (1)
      • emacs (1)
      • enishitech (3)
      • enishitechcafe (3)
      • etc (2)
      • ethna (1)
      • etupirka (3)
      • event (3)
      • evom (1)
      • facebook (1)
      • Family (11)
      • festival (2)
      • Firefox (1)
      • football (2)
      • FreeBSD (1)
      • ftp (1)
      • gae (3)
      • game (1)
      • gem (1)
      • geohash (1)
      • gist (1)
      • git (7)
      • github (1)
      • gmail (1)
      • go (1)
      • google (1)
      • Groovy (1)
      • gw (1)
      • hachiojipm (1)
      • Hadoop (3)
      • haskell (1)
      • Hatena (1)
      • hemp (1)
      • hiranabekaigi (2)
      • Hokkaido (3)
      • hokkaido.pm (15)
      • hokkaidopm (4)
      • HTML5 (2)
      • ICONIX (1)
      • impression (1)
      • Internet (1)
      • IPA (1)
      • iPhone (13)
      • IT Workshop (15)
      • Java (52)
      • java-ja (1)
      • javafesta (1)
      • JavaFX (2)
      • javascript (10)
      • Java札幌 (6)
      • JenkinsCI (3)
      • joomla (1)
      • JS (4)
      • JUnit (1)
      • Kanon (1)
      • kof2011 (1)
      • KUSHIRO OSS (6)
      • LDD (15)
      • LDD 釧路 (1)
      • ldd11d (1)
      • leaning (1)
      • learning (3)
      • Lesmills (1)
      • Life (8)
      • Linux (11)
      • Live KUSHIRO (1)
      • LiveKUSHIRO (1)
      • LOCAL (6)
      • LT (6)
      • Mac (1)
      • MacBook (1)
      • machidapm (1)
      • manner (1)
      • math (14)
      • Maven2 (1)
      • mercurial (4)
      • Monad (1)
      • MovableType (7)
      • movie (19)
      • MTOS (1)
      • Music (3)
      • musume (2)
      • MySQL (5)
      • nagoyarubykaigi02 (1)
      • nanapi (1)
      • NDK (1)
      • nequal (1)
      • network (7)
      • node (2)
      • notify (1)
      • oedorubykaigi01 (1)
      • OpenMP (1)
      • OSC (4)
      • osc10do (1)
      • osc11do (4)
      • oss (15)
      • OSSコミュニティ (1)
      • osx (3)
      • Others (2)
      • oyoyo (1)
      • packet (4)
      • perl (89)
      • perl+web (33)
      • pharo (4)
      • Photo (2)
      • PHP (25)
      • pirka (2)
      • PL/pgSQL (1)
      • Planet (354)
      • PostgreSQL (1)
      • Private (2)
      • product (1)
      • proftpd (1)
      • Programing (35)
      • programming (1)
      • python (9)
      • rememberingsteve (1)
      • review (2)
      • rhaco (1)
      • Ruby (89)
      • ruby-no-kai (1)
      • rubyconf (3)
      • RubyKaigi (4)
      • rubykaigi2011 (12)
      • rubysapporo (5)
      • sapporo (59)
      • sappororubykaigi03 (8)
      • Scala (1)
      • scenic3 (8)
      • SCM (1)
      • Security (12)
      • Server (13)
      • sjc11 (1)
      • slide (1)
      • slim3 (12)
      • smalltalk (4)
      • smec (1)
      • snow (2)
      • SoftwareDesign (3)
      • SOHO (1)
      • SOYCMS (2)
      • sports (1)
      • squeak (2)
      • Swing (1)
      • TDD (18)
      • TddAdventJp (1)
      • TDDBC (13)
      • tDiary (1)
      • TDL (1)
      • Technical (41)
      • Test (6)
      • Testing (2)
      • Think (2)
      • tips (2)
      • tokyurubykaigi04 (1)
      • Trac (1)
      • training (8)
      • traning (12)
      • travel (5)
      • twitcasting (2)
      • Twitter (8)
      • Ubuntu (3)
      • UcDDBC (1)
      • UNIX (1)
      • ustream (3)
      • vim (2)
      • weather (2)
      • Web (7)
      • Webdesign (1)
      • Win32 (1)
      • WordPress (4)
      • Wordpress for iPhone (3)
      • Work (2)
      • workshop (60)
      • xdebug (1)
      • XHP (1)
      • xinetd (1)
      • XOOPS (1)
      • yapc (10)
      • yapcasia (9)
      • youtube (3)
      • zlib (1)
      • いくら (1)
      • おみやげ (1)
      • おもしろかった (1)
      • お知らせ (3)
      • きのこ97 (102)
      • けあらし (1)
      • これはいい (1)
      • ごはん (126)
      • ししゃも (3)
      • しるこ (1)
      • その他 (3)
      • ひな祭り (2)
      • わっと (3)
      • アウトドア (1)
      • アサラト (8)
      • アジアカップ (1)
      • イベント (3)
      • イベント情報 (12)
      • インチキ (3)
      • カスタムフィールド (1)
      • カレー (2)
      • カレー南 (113)
      • コミュニティ活動 (8)
      • コンピューター (89)
      • サッカー (1)
      • サーバー構築 (6)
      • サーバ管理 (2)
      • サーモン (1)
      • ザイル (1)
      • スタッフ向け情報 (2)
      • スライド (1)
      • スープカレー (2)
      • セミナー (3)
      • セミナーイベント (5)
      • セミナー・勉強会 (4)
      • ソフトウェア (1)
      • ソフトウェア開発 (108)
      • テクノ (2)
      • トラブル (1)
      • ネットワーク (1)
      • ハッカソン (2)
      • ハードウェア (4)
      • パスワード (1)
      • プライベート (4)
      • プログラミング (3)
      • プログラム (1)
      • ヘンプパチカ (1)
      • ホテル (1)
      • ホルモン (1)
      • ポスター (2)
      • マラソン (3)
      • ミーティング (3)
      • メモ (17)
      • モデリング (1)
      • ライブ配信 (1)
      • ランニング (2)
      • ラーメン (2)
      • レポート (10)
      • 今日の出来事 (1)
      • 今日の弁当 (1)
      • 仕事 (1)
      • 企画物 (2)
      • 休み (1)
      • 会場 (1)
      • 体調 (8)
      • 備忘録 (3)
      • 免許証 (1)
      • 写真 (2)
      • 冬 (1)
      • 出会い (2)
      • 初氷 (1)
      • 初霜 (1)
      • 勉強会 (26)
      • 募集 (1)
      • 北海道 (16)
      • 北見 (3)
      • 厚岸 (1)
      • 参加登録 (1)
      • 地域 (1)
      • 塩焼きそば (2)
      • 夏休み (1)
      • 大盛り (1)
      • 大葉 (1)
      • 妻が綺麗 (2)
      • 娘 (3)
      • 学生 (1)
      • 室蘭 (1)
      • 就職活動 (1)
      • 屈斜路湖 (1)
      • 巷論 (3)
      • 帯広 (1)
      • 弟子屈 (1)
      • 忘年会 (1)
      • 快晴 (1)
      • 懇親会 (9)
      • 技術 (2)
      • 技術ねた (6)
      • 技術ネタ (1)
      • 担々麺 (1)
      • 携帯 (1)
      • 携帯投稿 (1)
      • 斜視 手術 (2)
      • 新釧路川 (50)
      • 日々の出来事 (4)
      • 日常 (4)
      • 日記 (75)
      • 昼ごはん (115)
      • 昼ごはん ラーメン (2)
      • 晩ごはん (5)
      • 晩ごはん 冷やし月見 ぬき (1)
      • 暖房 (1)
      • 月末 (1)
      • 月末処理 (1)
      • 未分類 (23)
      • 本 (1)
      • 札幌 (1)
      • 東北 (3)
      • 松茸 (1)
      • 樹氷 (1)
      • 洞爺 (1)
      • 温泉 (2)
      • 牛丼 (1)
      • 生活 (1)
      • 登別 (1)
      • 白鳥 (3)
      • 社員食堂 (114)
      • 禁煙 (1)
      • 秋 (3)
      • 紅葉 (1)
      • 美術館 (1)
      • 考える (2)
      • 臓器提供 (1)
      • 芸術館 (1)
      • 虎や (1)
      • 観光 (2)
      • 誕生日 (1)
      • 読書 (1)
      • 読書感想文 (2)
      • 講演 (6)
      • 通勤 (49)
      • 遊び (5)
      • 酒場 (5)
      • 釧路 (1)
      • 釧路OSS (10)
      • 釧路OSS-COMMUNITY (4)
      • 釧路OSSコミュニティ (4)
      • 釧路新聞 (4)
      • 閉会式 (1)
      • 阿寒湖畔 (1)
      • 雑多 (179)
      • 雑感 (3)
      • 雑記 (1)
      • 雨 (2)
      • 雪 (5)
      • 霜 (1)
      • 霧 (2)
      • 霧雨 (1)
      • 音楽 (3)
      • 風景 (1)
      • 食べる (1)
      • 馬鹿 (1)
      • 駐車場 (1)
      • 高専 (3)
      • 鹿 (1)
Mystique theme by digitalnature | Powered by WordPress
RSS Feeds XHTML 1.1 Top