Nothing Lasts... But Nothing Is Lost

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

転職しました(2年ぶり3度目)

大学卒業して7年、何度か転職を繰り返し、こないだ3度めの転職をして4社目に入った。 最初の転職のときはなかなか仕事が決まらず1年半くらい転職活動を続けていたが、2回目以降はコツを掴んできて、1ヶ月足らずで内定まで進めるようになってきた。 色々と見えてきたことなどもあるので、備忘録代わりに残しておく。

最初の会社の話

新卒で入った。当時文房具が好きだったので文房具の問屋に入社して、酒が飲めなかったので営業にはならず倉庫管理部門に所属した。 基幹システムはいわゆるオフコン、黒背景に緑色の文字が煌々と光っている画面を見て「マトリックスかよ」とひとりごちたのを今でも覚えている。

そんな会社には4年くらい勤めた。倉庫での仕事は暑かったり寒かったりキツかったり汚かったり給料安かったり(残業代が出なかった)大変だったが、 なんだかんだで長続きしたのは、カイゼン系の仕事が自分には合っていたからかもしれない。 マトリックスみたいな画面にも慣れて、Excelマクロで作ったデータをVBScriptで基幹システムに自動入力したりとかして楽していた。

辞めたのは単純に仕事がキツかったのと、なんか報われない感じがしたからだ。 物流部門はコストセンターだ。誰よりも早く来て、誰よりも遅く帰っても、それで売上が上がるわけではない。 営業ばっかり評価されて、自分は評価されないのが不満だった。営業の新卒よりボーナスの比率が低かった時には上司に食って掛かった。

新しい職場はなんでもいいから楽な仕事にしたい!と思っていたんだけど、そう思っているうちは全然仕事が見つからなくて、 今までの経験を活かして新しい物流にトライしたい!と気持ちを切り替えたら面白いくらいスムーズに転職先が決まった。 軸足を定めるというのは大事なんだなと思った。

入社から一度も有給を使ったことがなかったので相当溜まってたはずだが、すべては消化できず、1ヶ月分くらい使った。 休みの間は、学生の時に取りに行かなかった車の免許を取りに行った。 教習が休みの日は、妻が仕事から帰るのを待って、一緒に夕飯を作って食べた。

次の会社の話

転職先は国内最大手の運輸業…の子会社のSI業…のやっている3PL部門という、説明が非常に難しい会社だった。 運輸業向けのシステムを作ってる会社がロジスティクスをやってるんだから、さぞや素晴らしいシステムを使っているのだと思っていたが、 その期待は初日で裏切られた。Accessだった。COBOLもあった。平和島の、6フロアもある広大な倉庫で、全体を管理するシステムは無く、それぞれの顧客ごとにスクラッチで構築したシステムが動いていた。入出庫予定は内線で荷受けのおっちゃんに伝えていた。 俺は泣いた。

俺はこの会社で初めて、真の「悪循環」というものを見た。 冒頭で「クソブラック」と評したが、恐ろしいのは会社自体は非常にまともで、立派に見えるのだ。 営業は受注に応じてインセンティブが支給される。倉庫は過重労働撲滅のために残業時間を抑制している。 サービス残業防止のために、入退館システムとタイムカードが連動しており、就労時間の過少申告が出来ないようになっている。 当然のように残業代は100%支給される。非の打ち所のないシステムだ。

だが、この素晴らしい仕組みも、マネジメント層がクソであることで一瞬で陳腐化するのだ。 なにしろ仕事が多いのだ。営業は仕事を取れば取るほどインセンティブがもらえるので、バンバン仕事を取ってくる。 難易度が高い仕事ほど他社は嫌うので受注しやすい。顧客ごとにアレンジされた、様々な流通加工案件が押し寄せてくる。 対して、倉庫は売上が上がる前から人員を増強するわけには行かないから、どうしても案件量に対して人員は不足傾向にある。残業時間はどんどん増えてくる。

そして、労基署の出番である。課長が労基署に出頭しお叱りを受ける。 課長は労基署に怒られたくないので、「なんとか今月の残業時間は45時間以内に納めてくれ!」と部下にお達しを出す。 だが、どうみても無理なのである。先月は80時間以上残業しており、今月の受注量は先月比2倍なのである。160時間残業しても足りないのである。 営業からは「課長の言うことなんて無視無視!どんどん残業して!」と言われる。だが残業すると課長から怒られる。完全に詰んでいる。

そんなわけで、気の弱い社員から順に、入退館システムをうまーくごまかしてサービス残業する羽目になるのである。そういう悪循環である。

そういうのに嫌気が指していたところに、妻が妊娠したのをきっかけに職探しを始めた。 1回目の転職活動で大体コツはつかめていたので、結構スムーズに内定が出た。 軸足は大事だ。俺の場合、物流とITが自分の軸にあるのが割と明確になっていたので、そこらへんをアピールした。

最終出社日に終電を逃して、会社に泊まって翌朝そのまま次の会社に出社した。眠かった。

次の次の会社の話

先に言っておくとウルトラホワイトだった。富樫の原稿より白かった。無無明亦無も真っ白の驚きの白さだった。 社員数10人に満たない会社で、コンサルみたいなことをしていた。給料は今までで一番高く、勤務時間は今までで一番少なかった。 リモートワーク可能だったので、子供が生まれたばかりのときは良くリモートで仕事していた。 社会人になって初めて、会社にウォーターサーバーがあるのを体験した。コーヒーも飲み放題だった。天国かと思った。

結局この会社も、自分のわがままで2年くらいで辞めてしまったのだけど、本当にいい会社だった。 ただ、変な話だけどこの会社は自分の軸に合ってないというのを長らく感じていて、そのギャップを埋めきれず、辞めてしまった。

次の次の次の会社の話

2週間くらい前から、物流系のITスタートアップに遅まきながらジョインして楽しくやっています。 入社初日から「エンジニアなのにITリテラシが低いね!」とマサカリを飛ばされて首が吹っ飛ぶ一歩手前です。

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

ここ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でオープニングのみ動かしてみたところ結構モッサリであった。若干音飛びもする。