CROSS 2014 で何かしゃべります

CROSS 2014 「現場に聞く!テスト/CI/DevOps、実際のところどうなの」 - naoyaのはてなダイアリーで、naoyaさんからも紹介いただきましたが、明日開催の、CROSSというイベントで登壇します。

はてなのチームでの開発フローのおける、レビューやペアプログラミングなどのプラクティスに関することや、テストやCIなどにおける技術的な取り組みに関することなどを中心に、いろいろお話しようと思っています。

こちらのセッションでもid:shiba_yu36さんとはてなのエンジニアとして少しお話をするかもしれません。

たまの東京なのでいろいろな方とお話できればと思っているので、どうぞよろしくおねがいします。

Clean Coderを読んだ感想

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道

読み終わった。

この本は、著者のボブおじさんが師匠としてソフトウェア開発のプロとはなんぞやということをいろいろ教えてくれる本。技術的なことよりも、プロのプログラマの態度、規律、行動に重点を置いて書かれている。

ボブおじさんは、
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技Clean Code アジャイルソフトウェア達人の技 の著者で、アジャイルソフトウェア開発宣言の著者のひとりでもある。SOLIDの原則をまとめるなど、ソフトウェア工学に貢献している方で、まさに師匠という感じがする。

この本の前半で言われていることは中々に厳しくて、胸がちくちく痛む。例えば、"2章 「ノー」と言う"、では、どうがんばっても間に合いそうにない仕事を頼まれたときなんかに、思わず言ってしまう「試しにやってみます」という言葉について言及がある。

試しにやってみるというのは、温存しておいた力を使えば目標が達成できると認めることだ。
...<<中略>>...もし力を温存していないのなら、もし新しい計画がないのであれば、もし振る舞いを変えないのであれば、もし最初の見積に自信があるのであれば、試しにやってみるというのは不誠実である。ウソを付いているのと同じだ。

厳しく聞こえるが、略した部分や前後に丁寧な説明があるので、本で確認すると良いと思う。

ここで言われていることは、厳しいが確かにそのとおりだと感じる。「試しにやってみる」と安易に約束せず、ノーということで、期日に間に合わなかった場合の準備や説明が、事前にできるかもしれない。マネージャが「試しにやってみる」に期待して、期日の当日に、間に合いませんでした、となると、プロジェクトやチーム全体の危機になる。プロのエンジニアであればノーという場面を知っているのだ、とこの章には書かれている。

前半はこの調子で胸にぐさぐさ突き刺さるエピソードが、上司と部下の対話形式でわかりやすく説明されている。読み終わると反省している、という感じになる。

後半はより実践的な話にうつる。コーディングの環境や割り込みについて、テスト駆動開発の必要性やパフォーマンスを出すための時間の使い方、プロジェクトの完了を定義する方法(受け入れテスト)、自分の腕をみがくための日々の練習方法について(コーディング道場Kataの話)、実践的な見積もりの方法(プランニングポーカなど)、そして、チームやメンバーと協力していく方法などなど、プロのエンジニアとしておさえておくべしと著者の考えるトピックについて丁寧に教えてくれる。多くがボブおじさんの経験談や具体例にそって語られるので説得力がある気がする。

気楽に読み始めてみたものの、いきなり師匠が出てきて、普段の行いについてしっかり叱られた後、ひと通り稽古をつけてもらって、最後には感謝しながら道場を去るといった気分になった。ちゃんとしようという感じになるので良い本。

WebService::SyoboiCalendar 0.01 Released

このブログの最人気コンテンツであるアニメの最速情報(この冬の情報はこちら)を計算するモジュールをCPANにリリースしました。2年くらい前に作って完全に放置していてひどかった。ひどすぎたのをなんとかしたという体でして、めでたさよりも懺悔の気持ちで心があふれています。

WebService::SyoboiCalendar (github)

exampleに最速情報を生成するscriptを同梱しているので、以下のようにご利用いただけます。

$ cpanm --look WebService::SyoboiCalendar
$ cpanm --with-recommends .
$ perl example/list_saisoku_programs.pl 2014 winter # http://cal.syoboi.jp/ のID/パスワードを入力する
# 最速情報のHTMLが出力されます

2年くらいまえに途中まで作っていた奴は、ちょっと古い感じだったので、MooをつかったりMinilla化したりと微妙にモダン化した。

Ruby版Golang版がr7kamuraさんによって実装されているので、Perlをご利用でない方もAPIを便利に利用できます。

六道珍皇寺

喪中なので神社にいかずに寺に行った。風葬の地の入り口に建てられた寺で、奥にある井戸が地獄につながってるとされている。小野篁というお役人は昼は朝廷で仕事をし、夜になるとこの寺にある井戸を通って閻魔大王のもとで仕事をしたらしい。

六道珍皇寺 - Wikipedia

f:id:hakobe932:20140104132726j:plain

井戸の底にはタヌキが化けたカエルが住んでいるということでも有名。

f:id:hakobe932:20140104132241j:plain

Team Geek読んだ

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geekを読んだ。チームの生産性を上げるために、どうやって人間関係やコミュニケーションの問題に取り組めばよいかという、実践的なテクニックがいろいろ詰まっていておもしろい。謙虚・尊敬・信頼という信条を中心に、個人、チーム、組織そしてユーザ、それぞれとどのように付き合えばいいか、いろいろな例を使って教えてくれる。おもしろい感想エントリもたくさんあるので、内容が気になる人は読むと良さそう。

1.7 批判の配分と対応を学ぶ という章にあるエピソードがおもしろい。批判をするときは相手を尊敬する気持ちを持つことで、余計な波風もたたないし、建設的なことが言える。批判をうけとるほうも大事で、まずは、謙虚にひとの話を聞かないといけないし、相手を信頼してを攻撃してるんじゃなくてアドバイスをもらってるという風に受け取ったほうがうまくいく。といったことが書いてある。

例として、コードレビューのコメントがあげられている。その部分を以下に引用する。

頼りにならない人がいたとしても、「このメソッドの制御フローは完全に間違ってますよ。みんなが使ってる標準的なxyzzyコードパターンを使うべきです。」などといってはいけない。...<<中略>>... 言われた方は防御的になり、必要以上に感情的な反応をするだろう。

同じことをもっとうまく伝えるには、「この部分の制御フローがよくわからないのですが、xyzzyコードパターンを使えば読みやくなるでしょうか?」にすればいい。相手に対する疑問ではなく、自分の疑問として謙虚に聞くのである。

笑い話っぽいけど、身の回りではこういうレビューコメントをよく見るのでおもしろい。機能性や機密性にかかわるような重要な部分は、ちゃんとコメントを書くけど、重要度の低い場合は、レビューコメントに感想とか書いてやんわり議論したさを醸し出したりする。思い返すといろいろパターンがある。

[MAY]
xyzzyコードパターンを使ったほうが良さそうだけど、コード自体の意味はわかるので急いでたらこのままでも良さそう。
[質問]
ここ難しいので口頭でききにいっていいですか? > @hakobe
[感想]
xyzzyコードパターンみたいなのをつかえるとかっこいい気がする

思いやりがある感じになったほうが、言われた方は冷静に批判に対処できるので、うまく議論できてることが多いような気もする。

批判する場合、感情をこめたりせず、客観的な事実を述べるので済めば楽ではある。個人間のコミュニケーションになってくると、経験的にそれだけではうまくいかないよ、ということがこの本には書いてあるのだと思う。

関西2014年冬アニメ 放送時間まとめ

毎度おなじみの関西における今期のアニメの放送状況を表にまとめました。今回もWebService-SyoboiCalendarでしょぼいカレンダーのデータを抽出し、整形しました。予約設定時の確認などにお役立てください。

今季の関西最速は以下の2作品でした。

2作品ということで少しさみしい冬になりそうです。中二病でも恋がしたい!の第二期が関西最速なのはうれしいですね。実はTOKYO-MXと同じ時間帯の放送なので、関東地方も同時に最速なのでした。とはいえ、六花ちゃんがまた動くところが見れるのはとても楽しみです。黒髪モリサマーも気になりますね。鬼灯の冷徹はモーニングで連載されているコメディマンガのアニメ化作品です。原作は未読なので楽しみにチェックしたいと思います。

それでは、関西の皆さん、今期もがんばりましょう。

放送日時 放送局 作品名 補足 しょぼいカレンダー
1月4日 (土) 11時0分〜 BS Japan フューチャーカード バディファイト 3271
1月4日 (土) 22時30分〜 サンテレビジョン 最近、妹のようすがちょっとおかしいんだが。 3256
1月6日 (月) 23時30分〜 サンテレビジョン そにアニ -SUPER SONICO THE ANIMATION- 3258
1月6日 (月) 24時0分〜 BS11デジタル SOUL EATER - ソウルイーター - 再放送 1336
1月6日 (月) 24時30分〜 サンテレビジョン 生徒会役員共* 3239
1月6日 (月) 25時15分〜 テレビ大阪 ノブナガ・ザ・フール 3265
1月6日 (月) 25時30分〜 KBS京都 そにアニ -SUPER SONICO THE ANIMATION- 3258
1月6日 (月) 26時0分〜 サンテレビジョン とある飛空士への恋歌 3235
1月6日 (月) 26時9分〜 読売テレビ ノブナガン 3261
1月6日 (月) 26時25分〜 MBS毎日放送 ノラガミ 3242
1月6日 (月) 26時39分〜 読売テレビ バディ・コンプレックス 3243
1月6日 (月) 27時0分〜 BS11デジタル ノブナガン 3261
1月6日 (月) 27時30分〜 BS11デジタル そにアニ -SUPER SONICO THE ANIMATION- 3258
1月7日 (火) 24時30分〜 BS11デジタル バディ・コンプレックス 3243
1月7日 (火) 26時10分〜 テレビ大阪 咲-Saki- 全国編 3238
1月7日 (火) 27時0分〜 BS11デジタル ノラガミ 3242
1月8日 (水) 24時30分〜 BS11デジタル ウィッチクラフトワークス 3240
1月8日 (水) 24時30分〜 サンテレビジョン 中二病でも恋がしたい!戀 最速 3259
1月8日 (水) 25時0分〜 KBS京都 中二病でも恋がしたい!戀 3259
1月8日 (水) 25時30分〜 KBS京都 生徒会役員共* 3239
1月8日 (水) 26時13分〜 ABCテレビ 未確認で進行形 3225
1月8日 (水) 26時35分〜 テレビ大阪 スペース☆ダンディ 3241
1月8日 (水) 26時43分〜 ABCテレビ ウィッチクラフトワークス 3240
1月9日 (木) 25時35分〜 MBS毎日放送 鬼灯の冷徹 最速 3266
1月9日 (木) 26時30分〜 BS日テレ GJ部 再放送 2877
1月9日 (木) 27時0分〜 BS11デジタル 最近、妹のようすがちょっとおかしいんだが。 3256
1月10日 (金) 23時30分〜 BS11デジタル 生徒会役員共* 3239
1月10日 (金) 26時10分〜 テレビ大阪 ハマトラ THE ANIMATION 3267
1月11日 (土) 10時30分〜 BS Japan ヴァンガードTV TRY 3273
1月11日 (土) 24時0分〜 BS-TBS 鬼灯の冷徹 3266
1月11日 (土) 26時28分〜 MBS毎日放送 ニセコイ 3252
1月11日 (土) 26時30分〜 テレビ大阪 Wake Up, Girls! 3234
1月11日 (土) 26時58分〜 MBS毎日放送 世界征服~謀略のズヴィズダー~ 3260
1月12日 (日) 24時0分〜 BS日テレ とある飛空士への恋歌 3235
1月12日 (日) 24時0分〜 BS11デジタル 中二病でも恋がしたい!戀 3259
1月12日 (日) 24時30分〜 BS11デジタル 未確認で進行形 3225
1月12日 (日) 24時30分〜 BSフジ スペース☆ダンディ 3241
1月12日 (日) 24時30分〜 サンテレビジョン ウィザード・バリスターズ~弁魔士セシル 3236
1月12日 (日) 25時0分〜 サンテレビジョン のうりん 3248
1月13日 (月) 24時30分〜 BS11デジタル のうりん 3248
1月13日 (月) 25時0分〜 KBS京都 ウィザード・バリスターズ~弁魔士セシル 3236
1月13日 (月) 27時25分〜 MBS毎日放送 桜Trick 3247
1月14日 (火) 25時58分〜 関西テレビ 銀の匙 Silver Spoon(第2期) 3268
1月15日 (水) 26時0分〜 サンテレビジョン マケン姫っ!通 3249
1月16日 (木) 24時0分〜 BS11デジタル ウィザード・バリスターズ~弁魔士セシル 3236
1月16日 (木) 25時30分〜 サンテレビジョン いなり、こんこん、恋いろは。 3254
1月17日 (金) 27時0分〜 BS11デジタル マケン姫っ!通 3249
1月18日 (土) 23時30分〜 BS11デジタル ニセコイ 3252
1月18日 (土) 23時30分〜 KBS京都 いなり、こんこん、恋いろは。 3254
1月18日 (土) 24時0分〜 BS11デジタル 世界征服~謀略のズヴィズダー~ 3260
1月18日 (土) 25時0分〜 BS-TBS 魔法戦争 3246
1月18日 (土) 25時30分〜 BS-TBS 桜Trick 3247
1月18日 (土) 27時0分〜 BS11デジタル いなり、こんこん、恋いろは。 3254

余談ですが、このブログでは技術的なエントリの合間にこういったとアニメの最速放送情報のまとめエントリを書いています。自分としては技術的な内容がメインというつもりでしたが、昨年の記事ごとのアクセス回数を調べると上位がすべてアニメ放送時間まとめでした! 今年は技術ブログも頑張りたい!!