Planet EZO
コンピュータやソフトウェアのあれこれ@道民(&元道民)
コンピュータやソフトウェアのあれこれ@道民(&元道民)
1月 26th
1月25日(水)に行われた、達人プログラマー読書会@札幌に参加しました。
本日が最終回。最後まで参加して、本を読み通す事ができました!(途中2回休んだけど)
最後の2つのセクションが心に響きました。
「早めにテスト、何度もテスト、自動でテスト」
というヒント62に尽きるね、という話になりました。
テストの大切さ、そしてそれがなかなか現場で実践できていない事、今も昔も変わらない。
根本的なところは変わらないけれど、TDDの流れの源流(テストのテストをするための破壊工作など)を感じる部分もありました。
テストそのものよりも、テストデータを作る事が大変な事が多いのだけど、スクリプトを作ればもう少しうまくやれる事が多いのかもしれないという気づきがありました。
いらないドキュメントをたくさん作るのではなく、コードとドキュメントを一体化させる事。
ドキュメントの原本は1つにする事。
マークアップ言語を使えば原本から様々な状況に適したドキュメントを生成できる事。
コードはドキュメントであり、コメントはとても大事な事。
昔、プログラムを始めた頃の自分のコメントは酷かったなあ。
今は、もう少しまともに書けている気がする。でも、まだまだだ。
未来の誰かがソースコードを読んだ時に「?」と引っかかる部分に対するメッセージをコメントとして残しておけるような、そんな書き方がしたい。
「コメントは”何故”を書く、目的やゴールを書く」
忘れないようにする。(ああ、最近TODOコメントが多い・・・)
とてもよいセクションでした。
「達人プログラマ」の”プログラマ”的技術向上の話ではなく、「お客さんと向き合ってものをつくる」という事に対する心構えの話。
「ユーザーの期待をやや上回って、お客さんに嬉しいサプライズを与える」ような仕事がしたい!
アジャイルサムライでも書かれている「期待のマネジメント」について
「特権的な立場ではなく、ユーザーと一緒に作業をすることで期待とその実現方法をお客さんとチーム全体が共有していく」
と書かれていました。
「お客さんと一緒に」仕事をする大切さ。・・・そして難しさ。
読んでいて、ハッとさせられる事が多かったです。
達人プログラマは自分の作った物に誇りと愛着を持つ。匿名で逃げてはいけない。
匿名性により、コードに責任を持たなくなり、ソースコードがどんどん酷い事になるプロジェクトを体験した事があります。その時は正直自分も「とりあえず動けばいいや、私に責任はないし」と考えていた事を告白します。
きちんと名前を書いて自分のコードに責任を持つ、責任を持てるコードを書けるようになる事を大切にしていけるプログラマになりたい。
「私はこれを記述した、そしてこの仕事の後ろには私がついている」
それがお客さんに対する品質の保証となれるような達人プログラマ目指して、これからも頑張っていきたいです。
昨年の7月から開始して計13回。
主催した@onjiro_mohyahyaさん、本当にお疲れさまでした!読了おめでとうございます。
隔週で同じ場所で読書会をやっており、勉強になるところがたくさんありました。
輪読のセンテンスの区切り方はかなり参考にさせていただいていました。
これからも勉強会などなどでお会いすると思いますので、よろしくお願いします!
1月 26th
えにしテックカフェ 2012-01-24にお邪魔してきました。
いつも、ここにくると癒されます。(ケーキじゃなくて!皆さんの雰囲気に)
今回のお話はこの3本でした。
@mayucoさんの担当。
今回は「共通運命」の話。
デザイン上、動きがなければ同じ形のものを無意識にグルーピングしているけれど、動きがあると同じ動きのものをグルーピングして考えるようになるという人間の意識の話。
「同時に、同じ速度で、同一方向へ動かす」
「同時に、同頻度で、同じ強度で明滅させる」
と、同じものとして知覚されます。
という文章だけを読んでいると、とても難しく感じたのだけど、
「例えばこの人間の知覚がどういう場面で使われているか」
の例がいろいろと出てきて(レーダーのポイントと文字、人が走るアニメの背景と地面の関係など)、理解する事ができました。
本を読むだけじゃなくて、具体的な例を話し合いながら学ぶ事はとても良い事なんだなと感じました。
えにしテックカフェに行ってDesign Rule Indexの時間があるととても嬉しいです。
@tricknotesさん担当。
githubのwikiの機能を取り出して使う事のできるサーバー付きアプリケーション。gollumについて。
実際にgithubから持って来てローカル環境で使えるまでを実践。
インスールするまでの手順に興味津々。
知らないコマンドや便利なもの(bundllerなど)がたくさんあって、とても勉強になりました。
でもまだ、1人で入れられる自信は・・・ない。
テキストをgitにコミットするとwiki上で見る事ができるという仕組みはとても便利。
開発でgitを使っている時だと、ブラウザに移動しなくても書きたい事をwikiに残しておけるのは良いなぁ。
しまださん&しだらさんの後ろからの的確な指導にも感動。
@darashiさん担当。
iOSヒューマンインターフェースガイドラインをみんなで読んでみる。
実は日本語のドキュメントはちょっと古くて、最新版は英語版のみみたい。
しかし、大枠は変わらないという事で、最初の方からガイドラインを読みました。
頻繁にきちんとガイドラインを更新している事、ユーザーの目線に立つ事、ユーザーが「気持ちいい」と思える操作は何であるかを考える事・・・アップルらしいところがたくさん。
iOSの標準アプリはそう考えると本当にとても良くできているんだなあ。
iOSに関わらず、何かを作る時に使う人の事を考える(その人がどういう使い方をする事が一番気持ちがよいかを考える)、自分が本当にそのユーザーの気持ちにたてているか(自分にとって便利だと思う動作は、ターゲットにとっても便利なのか?)など、考える事がたくさんありました。
えにしテックカフェに行くと、コードをたくさん書きたくなる不思議!
たくさんコードと戯れたいなあと感じた夜でした。
1月 23rd
1/21(土)に行われたRuby勉強会@札幌-21に参加しました。
読み合わせとコードレビュー大会。勉強会でコードレビューするのはとっても面白い試みだなあと思いました。
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から。
volpe28vさんがリリースした「コタれん」のソースコードをみんなでレビュー。
Railsのソースをそんなにたくさん見た事がないので興味津々でした。
そして、プロダクトの構成を説明してもらう事、そのソースコードを見る事、ソースコードの指摘を聞く事、全部がとても面白かった。
書いた人も、見ている人も、どっちにも有益な時間でした。あっという間!
業務で行われるソースコードレビューも同じようにたくさんの学びや刺激を受ける事ができますが、勉強会では業務という枠を飛び越え、本当にいろいろな考えを聞く事ができるのが面白い。(人数も多いし)
またやってみたいなあ。
今回の会場はSapporoCafe(北8条西5丁目)でした。
1階はWifi完備のカフェ、2階は談話室として解放されています。
今回の勉強会は2階で開催されました。
普段は2階も自由に使えるスペースとなっていますが、2階の半分のスペースを1時間800円で貸していただけるそうです。1階のカフェメニューを2階でいただく事もできるし(スイートポテト美味しかった!)、プロジェクタも電源もあります。半日で電源、インターネット環境、プロジェクタがついて4000円は安い。小さめの勉強会を開催する時にとても嬉しい場所です。開発オフなど出入り自由な勉強会にもとても向いているんじゃないかな。
ただ、冬場の2階はちょっと寒いので、膝掛けなどの防寒具を持参した方が良さそうです。
1階は居心地のよいカフェでした。机が広々。コーヒーも美味しかったし(350円)、立地条件もとても良い(駅から近い、自分の場合は自宅からも会社からも近い)。
1人でちょっと勉強するのに最適のスペースだなと感じました。
仕事帰りに勉強したり本を読んだりするのに、これからたくさん利用させていただこうと思います!
数年前はこういう施設(インターネットが使えて、4,5人でPCを使いながら開発や話し合いをするスペース)が札幌の街中には全然なかったんだよなあ、時代が嬉しい方向に変わっていっているのを感じました。
これからもよろしくお願いします。
今回の勉強会に参加して、いい刺激を受けて「Rubyのコード書きたいー!」という気持ちになりました。
「どうしてその書き方をするのか」という話をしていたのが一番大きかった。
どの書き方を選ぶかでソースコードから伝わるニュアンスや伝えたい意味が変わるなんて考えた事がなかったので、そういう変化を楽しみながら書いていきたいです。まずは写経から。
1月 18th
第12回アジャイルサムライ読書会 札幌道場を開催しました。
参加者は9名。2012年サムライ初め!
共犯者になろうとしちゃだめだ
個人の生産性を計測すると、プロジェクトで大切に育んでいきたい心構えと振る舞いを台無しにしてしまう
「第8章 アジャイルな計画作り」を読み進めていっています。
お客さんとどのように接していくか、信頼関係をどう築くかという話が一番心に残っています。
今回、一番心に響いた言葉。
大前提として、お客さんは「敵」ではない。
意見が合わなかったり、なかなかやり方を認めてもらえないお客さんであっても「敵」ではない。
一緒にものを作っていくチームのメンバーです。
でも、「敵でなくなる」ために共犯者になってはいけないのだよなぁ。
実際、
(´し`)<「お客さんはなにもわからないのだから、気持ちよくいてもらうために、本当の事を伝えずに、(どれだけ現場が火の車でも)うまくごまかしてプロジェクトを収束させる、それがプロ。」
なーんて事を言っている人もいt…るかもしれないんですよね、世の中には。
でもそれって、ただの共犯者になっているだけなんだよな。
できない事をできると言って、本当の事を伝えずにその場しのぎで気持ちよくさせるのは、敵にならない方法じゃなくて共犯者になる方法。
お客さんに対してちっとも誠実ではない。
共犯者にならずにお客さん一緒にものを作っていく、そのためには誠実さ、強い気持ち、信頼貯金、きちんと相手と話をする事ができるコミュニケーション力、総合すると、高い「人間力」が必要になると思う。
技術だけでなく、人間としての力も磨いていかなければいけないなと感じました。
アジャイルな見積りと計画について、実践がとぼしいのもあり、ピンと来ないところもけっこうありました。
特に「必要に応じて変更」した場合、具体的にどうなっていくのか、どうするのかというところがモヤモヤしている。
アジャイルな見積りと計画作りをしっかり読んで、この辺りの知識をもっと深めたいです。
今日は出張帰りで空港からまっすぐ参加してくださった @sandinistさんからチーズケーキのお土産をいただきました!
ありがとうございましたー!!とっても美味しかったです:)
(そして、コーヒーを皆さんにお出しするのを忘れました)
今年も最後まで本を読み通すことを目標に、焦らずしっかりと続けていきたいです。
雪が溶ける頃までには全部読み終わるかな?
読書会のディスカッションのwikiはこちらになります。
https://github.com/agile-samurai-ja/support/wiki/Readingagilesamuraiinsapporo20120117
最後に。毎回会場を提供していただいた弊社に感謝。
今年もよろしくお願いします。
1月 13th
新年あけましておめでとうございます。
2012年1回目の勉強会は1月10日(火)に行われた、達人プログラマー読書会@札幌でした。
「チーム」という最近ずっと興味を持っていることについてまったりと語らいました。
この章では、達人プログラマがプロジェクトに入ったら、どうなるか、どうすべきか、という事が書いてあります。
達人が集まるプロジェクトチーム、最強だなあと思います。
また、チームとして集まる事で、達人だけではなく達人「なりかけ」の人の力もたくさん引き出していけそうな(引き出させてもらえそうな)。
「成功とは見る人が判断するもの、プロジェクトの場合見る人はスポンサー、だから、スポンサーの大きな期待に応える事が大事」
心に留めて読み進めていきます。
達人の技法が集団としてのチームにどう適用できるのか。
よくも悪くも染まりやすい自分としてはうなずく事がたくさんありました。
この辺りのチームのあり方、気持ちの持ち方、モチベーションについて、ずっと誰かに引っ張ってもらってきた(幸いにも良い形のチームである事が多かった)ところです。
これからは、自分がこのようなチームを作り上げていく力の一つになりたいと思う。
また
この辺りはまさに「大規模開発をやっている職業プログラマ」時代に思い当たるところがたくさんありました。
コードのコンテキストについての意識は常に持っていたい。
今、業務で「Maven」を使用している事もあり、自動化の重要性、便利さ(そして使いこなすまでにはちょっと苦労する事)などを感じていたところでした。
「プロジェクトの整合性と再現性を保証」するためには、なるべく手動の手続きは入れない方がよい。
ただ、細かい部分の自動化にどこまで時間を使うか、は判断を迷う時が結構あります。
(最近だと、Excelにコピーしてデータ量順にソートして終わりにするか、ソート用のプログラムを作るか、など)
自分は細かい部分(自分だけの作業)だと、手動でゴリゴリやりがちなので
「コンピューターの方がうまくやってのけるような繰り返しや俗っぽいことはすべてコンピューターに任せてしまう」
ようにしていきたいと思います。
そして、労力をかけずにそうできるようになりたい。
次回で達人プログラマ読書会は終了(予定)です。
約半年間、あっという間だったなぁ。
最終回もきちんと出席したいです。
12月 31st
2011年は、「思い描いていたのと全然違う形でやりたいと思っていたことに近づいた。」そんな年でした。
2010年の終わりに、私は今年の目標としてこんなことを言っていた。
で、そのために、北海道の勉強会情報に特化した情報を流す何かを自宅サーバーから届けたいなと思っていたのです。
あれ、全然、違うじゃないか、と。
自宅サーバーどこいったんだ、と。(←いるにはいます、生きてます
今年の寺子屋未満に投稿した記事数は57本。
(昨年、一昨年は10本程度)
月平均4本以上書いていることになります。
ブログの投稿数がこんなことになるなんて、今年の頭には思ってもみませんでした。
何故こんなに増えたかというと、
6月頃に「参加した勉強会の情報はすべてこのブログに書こう」と決めた
からなのです。
いつ決意したのか、なにが原因でそうしようと思ったのか、全然覚えていません。
ですが、ブログを書くことで、技術的な感想だけじゃなくて、参加した自分がどう感じたか、どこをどのように良いと思ったかをきちんとアウトプットすることができたように思います(実質半年分だけど)。
やってみたら、思ったよりも苦痛ではありませんでした。
それに、その場で何かをきちんと得て、帰ってから言葉にしようという思いが強くなった。
ただ参加して消化するのではなく、より良い形で勉強会に参加できるようになった。
1つ1つを大事に思うようになった。など、勉強会に対する自分の姿勢も変化しました。
技術的な成分は少ない記事だけど、勉強会がどういうものか、イチ参加者として何を感じたか、これからも誰かに伝わるかもしれない記事を書いていきたいと思っています。
昨年の札幌Ruby会議03のスタッフに引き続き、今年はOSC北海道2011を筆頭に、色々なイベントや勉強会のお手伝い側の経験もさせていただくことができました。
「やってみたい」と「実際にやってみる」の間にある大きな違いを実感できた年でした。
何事もやってみなければわからない。
「やりたい」を「やってみる」に変える1歩が大事、と学びました。
また、スタッフというのは参加者と反対の立ち位置にいるのではなく、同じ方向にいるんだなということにも気がつけました。
向かい合っておもてなしをする時間も、もちろん大切なのだけど、同じ方向から少しだけ遠くや深いところが見れるのがスタッフなのかなと。
1つのイベントについての様々な見方、感じ方、楽しみ方なんかをもっと伝えていけたらいいなと思います。
8月から、アジャイルサムライ読書会@札幌道場を開催しています。
今年のはじめに、自分が何かを主催するなんて全く考えてもいませんでした。
日本Ruby会議に参加して、開催中にアジャイルサムライに出会い、自分で何かをやってみたいと思った30歳の決意から、気がついたらこうなっていました。
11月には、読書会がご縁でスライド発表もさせていただきました。
読書会を開催できたことは、自分にとって大きな1歩だったんだなあと振り返って改めて思います。
なにせ、初めて伝える側になるきっかけとなったのですから。
最初に思い描いていたのとは全然違うのですが、
この、思いには着実に近づいていけた、そんな気がするのです。
人生何がどうなるかわからないものだなあと。
なんというか、振り返ってみて一番の感想は「びっくり」なんですよね。
その時々の自分の気持ちや勢いを大事にして良かったな、そんな風に思います。
今のまま、思うがままに、ぶれない気持ちで進んでいこうと思います。
特に、「リーチを楽にしたい」「楽しいことを知るためのハードルを下げたい」という思いについては割と長期的な目標として取り組んでいきたいなと考えています。
その1つとして「勉強会レポート」はこれからも続けていこうと決めています。
自分が今ここでこうしているのは、楽しいということを知ることができたから。
何かをきっかけにして、「楽しい」と感じて、勉強会などに関わる人が増えていったらよいなー。
うまく言えないのですが。
何らかの良い影響を自分も誰かに届けることができたら良いなと思うのです。
あとは、個人的な技術力の向上。
今年も新しい事に触れ、自分のスキルもちょっとだけアップしたのを感じます。
でもでも、もっと磨きたいことがたくさんあります。
きちんと手元に揃えておきたい道具をそろえること、使いこなしていくことが来年の目標です。
来年もサボらずに、自分のペースで歩んでいきたいと思います。
今後ともよろしくお願いいたします。
12月 29th
2009年のまとめはあるのに2010年のまとめがないことに気がつきましたが気にしない。
今年は計算論方面にどっぷり染まった1年でしたが、今後はどうするか迷うところです*1。また、来年は大きな変化も訪れる予定です。そんな変化の年を迎えるにあたり、ブログ名もシンプルにしてみました。
それでは皆様、よいお年をお迎え下さい。
*1:機械学習に戻りたいんだけど、勿体ないし面白いしという泥沼orz
12月 21st
第11回アジャイルサムライ読書会 札幌道場を開催しました。
参加者は6名。今年最後の開催です。
チームで見積りをすることで実のある話し合いにつながっていく
少し手間をかけるだけで見積りはずいぶんと良くなるもの
変化は競争優位を獲得するために活用すべきものになる
今回は、見積り、そして計画作りの話へと進んでいきました。
「アジャイルな見積りと計画作り」と、今回のテーマそのものの本が出ていることからもわかる通り、きちんと学ぶにはこの本では薄すぎる分野なのだと思いました。
実際に他の本を読んでいた人達からの意見を聞くことで、文中の疑問点を補完できたところもたくさんありました。
1人で読んでいたらそうはならないところなので、読書会という場はとてもありがたいです。
同時に、アジャイルサムライは、その分野をさらに深く学んでみたいな、という気持ちにさせる記述がたくさんあるなと感じました。
この本1冊で完璧というのではなくて、とっかかりやすいきっかけとして位置している。
実際、この本から始まったに等しい自分としては今度はこれも学んでみたい、とわくわくする気持ちをたくさん本から得ているような気がしています。
「相対的に見積もる」ための前提条件として「プロジェクト全体を俯瞰できる」「客観的にプロジェクトを見ることができる」技術的・現実的な立場が重要だなと思いました。
(まるでベルトコンベアのように)自分の担当する機能の設計書だけが渡されて、全体像もわからないまま、経験値だけで終了予定日数を出す、これは全く相対的ではありませんね。
相対的に見積もることにより、メンバーが全体を把握する、客観的にいろいろな物事を考えることができるようになる、そういうメリットもあるんだろうなと思いました。
実際に現場でやったことはないのだけど「見積りをチームで話し合う」ことはとても重要だと感じています。
自分が気がつかなかった材料を教えてもらえることもあるし、全員の同意を得た上でプロジェクトの規模感を決めていくことはモチベーションという見地からも良いことだと思う。
アジャイル的な自己組織化されたチームであればよりやりやすいことではあるのですが、そうでなくても
「チーム全体でゴールを決めて、目標に向かって日々の仕事をする」
ってすごく良いことだなと思います。
上から降ってくる仕事を(全体量も把握できないまま)ただ消化する、そういう形では得られないモチベーションがあると思います。
最初にこの職業についてみたいと思った動機も「皆で何かを作ることができるから」だったんだよなぁ。
ちょっとの方法の違いで、この辺りはチームが生き生きしてくるポイントになるんじゃないかなと思いました。
今年の終わりまで、オーソドックスに読書会を開催できたこと、何よりもそれにほっとしています。
参加してくれる人がいたからこそ、ここまで来れたのだと思います。
ほんとうにありがとうございます。
約半年、読書会をやってみて、つくづく感じたのは、1冊の本なのに皆全然違う視点で読んでいるんだなあということ。
自分はどちらかというと、疑いの目を持たずに、わくわくしながら読んでいた方なのですが、他の本と照らし合わせてみたり、矛盾点を見つけたり、なにより「これを現実の現場でどう生かすのがよいか」という視点でいろんな話をできたこと、これがとても有意義でした。
本の分量としては半分くらいは進みました。(決して早くはない、むしろのんびり)
読書会としてきちんと最後まで本を読み通すことが来年の目標です。
読書会のディスカッションのwikiはこちらになります。
https://github.com/agile-samurai-ja/support/wiki/Readingagilesamuraiinsapporo20111220
最後に。毎回会場を提供していただいた弊社に感謝。
ありがとうございます。
来年もよろしくお願いします。
12月 21st
12月13日(火)に行われた、達人プログラマー読書会@札幌に参加しました。
この日は、仕事でかなりやられていて絶不調でした。
しかし、参加してそんな絶不調の原因を知ることができたのでありました。
「制約を認識すること」と同時に「自由度を認識すること」。
”それは本当にだめなことなのか?制約なのか?”・・・・ハッとしました。
その日、まさに「もっと簡単な方法があるはずだ」という発想の転換をせずに、ひたすら”この方法しかない”と信じ込んで、そして、疲弊していたのです。
218ページに書いてあった自分への問い
この問いは、常に”あれ、なんかおかしい”と思った時に自問すべきだと思いました。
ちなみに、自分の場合どん詰まりになっていた原因は、技術的問題や制約ではなく、元を正すと環境が整備させていないが故に手段が限られてしまうというものでした。
環境の整備を同時に働きかけることで、どん詰まりから抜け出せたのは翌日、翌々日の話です。
なんとなく、思い当たる節があり、うなずきながら読んでいました。
その日、疲弊していた事柄についても(面倒だという気持ちをのぞいて)なんだか進んでよいのか、迷いが生じていたのですよね。
その迷いを、ただの怠慢だと片付けずに、本能に耳を澄ませることの必要性が書いてあり、勇気づけられました。
「本能をあなたの能力に貢献させる」。まずは、本能を研ぎすませたいですね。
また、不安材料を洗いだすためにプロトタイプを利用する方法も書かれていました。
ちょっとした簡単なコードを書いて手を動かしてみることで解決できる、見通しが立つことはびっくりするくらい頻繁にあります。
最初の1歩に迷った時に、小さなプログラムを書いて自分の進むべき道を見つけてあげる、そのくらいのプログラムは呼吸するように書ける、気持ちよく仕事をするために、身につけたい技術です。
設計を言葉にすることの難しさ、そして何より
「完璧な設計書を作成すれば、1mmも頭を使わずにプログラミングできるというのは間違いである」
という強いメッセージを感じたセンテンスでした。
生産的な仕事をしたい、と思っている自分には力強い言葉でした。
また、設計(仕様を策定すること)と実装は切っても切りはなせないものであり、きちんと境界なしに流れていくべきものである、という部分にも大いに納得しました。
「形式的方法論の奴隷になってはいけない」
この章はこれがすべてですね。
ちょうど10年前と言えば、UMLがでてきて
「UMLでプログラミングのすべてを表すことができる!」
「UMLとオブジェクト指向でコードを自動生成できる、生産性があがる!」
という話が一部で出てきた頃だったんじゃないかな(そういう本を読んだことがある)と思い返していました。
そういう考えによる弊害、もっと考えなければならないポイントについて、たくさん書かれていました。
特に、形式方法論は専業化を奨励してしまい、コミュニケーションの定価と努力の無駄遣いにつながりやすい、という話はなるほどな、と一番納得しました。
この本で書かれている「VS ○○ と敵をつくらない」「全員がシステム全体を理解しながら進むべき」というのは、今読んでいるアジャイルサムライの中でもチーム像として書かれていることでした。
ただ、形式的開発方法論を学ぶ必要がないというのではなく「とらわれずに道具箱にはいれておく」、知った上で良い使い道を見つける、それが達人プログラマなんだなあ、と。
一通りきちんと学んだ上で、取捨選択できるプログラマでありたいと思いました。
今年の読書会はこの回で終了です。
来年もよろしくお願いします。
12月 12th
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をやりながら開発速度が上がるというのはこういう経験なのかもしれない。
自分が体験して思ったことは
この二つが揃うと、TDDがとても楽しくなりますね。
特に2は、自分が技術力を上げれば上げるほど広がる幅なので、精進あるのみ!です。
次回も是非参加したいと思います。
主催者の@shuji_w6eさん、今回もありがとうございました!