Nothing Lasts... But Nothing Is Lost

目がたくさん描いてあるCDについては特に触れていません

『アジャイルプラクティス』を読んだ

ここ2年くらい事業会社の一人SEをやってたんですけど、そんな生活に嫌気が差して11月から某物流系スタートアップに転職し、エンジニアチームの一員となりました。 なにしろチーム開発の経験が全然無いもんで、色々勉強することが多いなーと思っていたら、上司から「これ読みなよ」と渡されたのがこちら。

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣

以下、簡単ですが所感をまとめておきます。

アジャイルとは「テクニック」ではなく「習慣」

アジャイル開発におけるテクニック、例えば「テスト駆動開発」なんかはそれ単体で議論できるほどのボリュームがあり、Web上の情報も含めて様々な所で触れることができる。 本書の中でもいくつか取り上げられているが、具体的な実践方法についてはほとんど書かれていない。

代わりに、開発の中で陥りやすいエクスキューズを「悪魔の言葉」として、 その習慣を取り入れるべき理由を「天使の言葉」として、 習慣を取り入れることで得られるものを「こんな気分」として紹介している。

「テクニック」はあくまで「テクニック」であり、実践するかどうかは各自の自由。 だけど、習慣として身につけ実践するとこんないい事がありますよ、ということを紹介するスタイルになっている。

オープンなコミュニケーションと共有

誤解を恐れずざっくり要約するならば、アジャイルな習慣とは * コミュニケーションを中心に置く * 課題とコードを共有する * 問題を先送りにしない ということだと理解した。

中でも、コミュニケーションは一番大切だ。 何しろ一番心に響いたのはエピローグ直前の最終第45節「みんなに知らせる」の、この一文だった。

悪いニュースを最後まで伝えないでいるということは、マネージャーや技術主任に「自分のことを事細かく管理してください」と頼んでいるようなものだ

エンジニアに限らず、大抵のチームで同じようなことは起きてるんじゃないだろうか?現に、自分も何度か「悪いニュースを伝えない」ことでやらかしたことがある。 だから、アジャイルでは毎朝スタンドアップミーティングを開き、日々各メンバーが一日やるべきことを手短に説明する場を設けたり、 Wikiやブログに自分の取り掛かっている作業やつまづいていることなどを「発信」する。

今のチームでもこの習慣は実践していて、毎朝カンバンの前に集まって朝会を開いて、自分が今日やるつもりのことを話したり、 Slackに”分報”チャンネルを各自作って、やっていること、やったこと、つまづいていることなどを都度発信している。

ちなみに、自分が大昔にいた(ITとは無縁の)職場では、朝会とは偉い人が話すのを部下が黙って聞く場だったり、失敗したことを報告して叱責を受ける「公開処刑」の場だったので、 「アジャイルを採用している職場では朝会をやっています」というようなことを耳にする度、「まじかよアジャイル最低だな」と思っていた。 (今は全然そんなことはない)

すべてを環境のせいにするつもりはないけれど、自分がよく「悪いことを抱え込んで後回しにしているうちに取り返しがつかなくなる」最悪の失敗をしてきたのは 上に書いたような良くない習慣がチームにはびこってたせいなのかもなと思った。

気に入った言葉

フィードバックをコーディングする

ユニットテストについての説明。文中では、従来的なprintデバッグとの対比で、

(デバッグのための)スタブコードを消さずに保存しておき、自動的に走らせ続けるんだ

との記載がある。 「これまでと何一つ変わったことはしていない、ただ洗練させただけ」ということだろう。

僕自身、人にTDDを説明するときは「チェックリスト2.0」なんて表現を使っていた。 プログラミングに限らず、仕事をする前にはチェックリストを作って、抜け・漏れがないか確認するものだ(トイレ掃除ですらそうだ)。 そのやり方をエンジニア目線でアップグレードしたのがTDDなのだ、と理解している。

ミドルレンジChromebook2機種比較レビュー (ASUS C302CA vs SAMSUNG CBPlus)

SAMSUNG Chromebook Plusを数ヶ月ほど使っていましたが、いろいろ使いにくい部分があってASUS Chromebook Flip C302CAに買い替えてしまいました。 同時期・同価格帯で発売された2機種をいまさらながら比較レビューしていきます。

TL;DR

  • エンジニアのサブ機にはC302CAがおすすめ
  • 非エンジニアのメイン・サブ機にはCBPlusがおすすめ

理由は後述していきます。

C302CAの良いところ

キーボードが打ちやすい

実は、昔購入したZenBookのキータッチが控えめに言ってクソだったため、ASUSのラップトップにはあまり良い印象が無かったのですが、ことChromebookに関しては、ASUSはしっかり作ってくれているようです。打ちやすいです。

筐体がガッチリしている

膝の上などでもたわまず打てます。代償として若干重いです。

Core m3搭載

開発用サブ機として使う場合、Linuxデュアルブートして使うことが多いと思いますが、ARM系プロセッサだとVirtualboxが動かなかったりして悲しい思いをします。 また、前の記事でも書きましたが、CrossOverというアプリを使うとChromeOSネイティブでSteamを動かしたりも出来ます。便利です。

CBPlusの良いところ

軽い

C302CAと比べて、持った感じが明らかに軽いです(実重量でもいくらか軽いんですが)。

電子書籍が読みやすい

ディスプレイ比率が3:2なので、漫画など固定レイアウトの電子書籍を見開きで読むのに適しています。

電車で使いやすい

横幅がかなり抑えめなので、電車で使っても横の人に迷惑を掛けにくいです(掛けにくいだけです。混んでるときは控えましょう)。

Chromeロゴが抑えめ

これはもう完全に好みのレベルですが、Chromeロゴが白黒でシャレオツです。

ChromebookでSteamを動かしてUNDERTALEがプレイできた

f:id:tsuemura:20171019225045p:plain

知っている人も多いと思うが、最近のChromebookではAndroidアプリが動作する。 そして、「Crossover」というAndroidアプリを使うと、Android上でWindowsアプリを動作させることが出来る。 つまり、ChromebookWindowsアプリを動作させることができる。

www.codeweavers.com

ただし、動作させるには以下の条件を満たすことが必要。

  • プロセッサがARM系でないこと
  • Androidアプリが動作すること

Wineベースで動いているらしい。

f:id:tsuemura:20171019225635p:plain

C302CAでオープニングのみ動かしてみたところ結構モッサリであった。若干音飛びもする。