久しぶりに C# での開発現場に戻ってからテストコードを書く時にやっていること

久しぶりに C# の現場になる

といっても、2018 年の 2 月から徐々になので、そろそろ 戻ってから 1 年経つというところです。

それまでは Ruby メインの開発現場に 4 年と少しいて、その前は C# をずっと書いていたので久しぶりという感じです。

Ruby から戻って困ったこと

Ruby というよりは Ruby on Rails の現場に長く居たということと、C# に戻って担当したアプリが長年運用されていたもので、それこそテストコードすら存在しないものだったいうのが大きいと思います。

で、何に困ったかというと、、、テストです。

その前にディスクレイマー

  • 筆者は C# でのテストの経験がそれまであまりない。NUnit で簡単なテストを書いていたぐらい。
  • 筆者は Ruby on Rails での現場に長くいて、そのやり方に慣れている
  • 筆者は最近の C# でのテストの書き方に精通しておらず、その状態でプロジェクトに望む必要があった

ということで、以降の内容は Ruby on Rails の現場に居た人間が C# でも Rails みたいにテストコードを書きたいという、ちょっとしたワガママの一つぐらいに思ってもらえればと思います。これが正解だとは微塵も思っていないです。

テストをどう書く?

私が居た Ruby on Rails の現場は、テストに関しては RSpec, Factory Girl を利用しつつ、Model spec, Request spec, Feature spec をまんべんなく書くという感じでした。 Fixture はそれほど使わず、Controller spec もあまり使わないという感じです。

一方で、担当した C# のアプリケーションは 5 年以上前に片手間で書かれたようなもので、それにも関わらず重要なデータの削除を担当していたりして、、とよくある話ですよね。

にも関わらず、結構大規模な修正をしなければならなくなったので、「とりあえず既存機能のリグレッション」のテストを書かなければという気持ちになったのですが、 Rails の現場でやっていたようなテストを書ける環境がさくっとは整わなかったというのが発端です。

具体的には以下のようなものです。

  • テストのセッションごとに隔離された RDB の環境が無い!
  • テストデータを作るための Factory も Fixture も無い!
  • WebMock が無い!
  • DatabaseCleaner が無い!
  • RSpec のように階層のあるテストをどうやって書けばいいのか分からない。。

おそらく現場によってテストの書き方は様々で、特に C# は DI Container もよく使われているようなので Mock を多用する事が多いというのもあるかもしれません。 今回に関しては、古いアプリケーションということもあり、できるだけ End to End (コンソールアプリなので End to End という呼び方でいいのかは分かりませんが)でのテストを書きたいというのもあり、上記のようなテスト環境を揃えたかったというのがあります。

どのように書いていったか

以下ではとりあえず、何を使って対応したかぐらいを書いています。細かいことは別の記事にしていこうと思います。

  • テストのセッションごとに隔離された RDB の環境が無い!
    • Docker Compose を使って共通した CI 用の DB インスタンスを使わずに、テスト毎に RDB の環境を作る
    • これは C# 関係ないですね。
  • テストデータを作るための Factory も Fixture も無い!
    • EF Core を使って、テスト対象の RDB から Entity の class を自動生成
    • Bogus を使って Factory を定義
  • WebMock が無い!
  • DatabaseCleaner が無い!
  • RSpec のように階層のあるテストをどうやって書けばいいのか分からない。。

仕事復帰して半年が経った

プログラマー35歳、定年まではいかなかったが身体の一部を失うことになった - dunno logs

上記の記事を書いてから半年経ちました。2/1 から仕事復帰していたので、今日でちょうど半年です。

💪身体のこと

術後の経過

7 月の後半に、術後初めての検査を行い、切除部分の状態や、腫瘍の転移の有無、また、いくつか気をつけなければいけない数値があるので、そのチェックを行いました。

結果としては、今回は全く問題なく、まずは合併症もなく術後半年を終えられたことを喜んでいます。

一方で手術を担当してくれた医師からは「今回は問題なかったけど、最低 5 年は半年ごとの検査をお願いしますね」と念を押されました。少し気が緩みそうになっていましたが、改めてまだ自分にはリスクがあるということを再認識できました。

日々の体調

昨年から比べると体重が 5 kg 近く減っていて、それもあり体力の低下があり、かかりつけ医からも食事の指導を受けたりしています。

一方で、それ以外の部分は昨年の休職前よりも良くなっていて、過労、心労でいろいろ身体が駄目になっていたんだなと実感しました 😅

体重減を気にしたのか、父親からどこで見つけてきたのか中古のインドアバイクやらレッグスライダー(?)やらが自宅にデプロイされ、結構使っています 🚴夏場は外に出るのもしんどいし、室内用の器具はいいですね。

🖥仕事のこと

2/1 より 9:30-17:00 での時短勤務を開始しました。

仕事内容

古巣の部署に戻ったということもあり、昔なつかしのツールの修正をガリガリとしています。
自分が何年も前に作ったツールに対して、End to End のテストを準備したり、Docker でローカルの開発環境を用意したりと、昔の自分から成長を感じられる部分もあって面白いです。

自分の所属するチームは、社員向けの業務改善がメインで、チームの半数以上は Salesforce 環境での開発をしているのですが、自分はプロジェクトのタイミング的にそちらには入れず、既存の内部向けのツールの改修を行っている感じです。

その中でも Kintone や Zapier 、Zendesk、Workplace などの社内ツールとの連携もあり新鮮でした。
Zapier なんかは他社でもエンジニア以外が触ってると話題になってますが、サポート部門の人が、Zendesk から Zapier の Webhook を呼び出して、Workplace に投稿するとか普通に組んでてびっくりしたりします。そういう部分ではプログラマは要らなくなりそうですね 😳

勤務時間や締切とか

勤務時間は完全に時短の時間だけで過ごしたのは 2 月ぐらいで、それ以降は少しずつ 1 日に 15 分、30 分、45 分と勤務時間を様子見ながら増やしていきました。

今は、9:30-17:00 を基本にして、朝に 1 時間とか、朝夕で 30 分ずつとか時間をずらしながらだいたい他の社員の規定時間(7時間半) は勤務するようにしています。それ以上の残業は、夕食の調理時間に影響するのであまりしません🔪

締切に関しては、無理が無いように上司からコントロールされているというよりは、進捗の遅延に関して残業等を求められないという方が正確な状況です。なので逆に業務内容はこれまでと変わりません。
正直半年ぐらい離れていて、部署異動までしてしまったので、見積もりの精度が悪くなっていて、ずるずると延びてしまうプロジェクトがありました 😩以前なら求められるにせよ、求められないにせよ残業してたなぁと考えると、個人としての反省はしつつも無理なく仕事ができていると思います。

最近は週次の進捗確認時には、Pivotal Tracker の週の Activity を全部書きだして、細かく報告や振り返りをさせてもらうことで、見積もり精度の悪さを修正していっています。(たぶん上司はメンドイだろうと思いますが、、付き合ってくれています 🙏)

👨‍👩‍👧家庭のこと

引き続き料理担当

食事で一部気をつけなければいけないものがあるので、引き続き昼夜の食事担当をしています。

毎日継続していくと次第に週末の作り置き、朝少し作って昼休憩時に少し作って夜に仕上げるといった段取り力もあがり、自分でも目に見えて作れる量やスピードはあがったなぁと思います。(味は知らない)

買い物も、安く買える八百屋やローカルのスーパー、市場なんかを見るのが好きになりましたし、「これはここが安い」とかも頭に入ってくるようになりました。結局プログラマみたいな職種でも、なかなかその辺は IT 化したりせず、結局は記憶とかメモ。。

最近普通に料理は楽しくて、Netflix で料理系のオリジナル番組を見るのも好きになりました。
低温調理とか燻製とか、ちょっと凝ったものも面白いかもですが、こういう毎日家族に出す料理を作る技術というのも高めていくと面白いです。

娘の保育園と妻の仕事

4 月から娘が保育園にいくようになりました。自宅から徒歩圏内ということもあり、朝は一緒に送っていくようにしています。
僕が登園時に娘と離れるのが遅いためか、いつも僕が「じゃあねー」という言うタイミングに対して食い気味に先生から「パパいってらっしゃーい」と言われるのが辛い。そんなノロノロしてるつもりはないんだけど、確かに他のお母さん達は早い気がする。。
4 ,5 月は登園時に泣いていることも多かったけど、今はだいぶ慣れたのか保育所内でもナメた態度を取っているらしく、先が思いやられる😩

そして、妻はいったんフルタイムの育児からは離れ、今は自分で仕事を作ろうとしています。

後で書くように家計は結構厳しいので、どこかで手っ取り早くお金を稼いでもらうという選択肢もあったのですが、個人的にも妻には自分の楽しめることをして欲しいなと思っていたので応援したいです。
(とはいえ、家計厳しいので彼女の衣類とかは彼女の貯金から出してもらったりしていて申し訳ない)

💰家計のこと

正社員のグレードを下げて、時短にしたことで給与が半減近くになったわけですが、さらには標準報酬月額的なものの更新が行われるまでの間は、年金の支払いやらでさらに手取りが減るとなり、結構厳しい時期でした(というか今も)😭

単月赤字!

20 代で転職した時以来の単月赤字到来です😱
実際、完全に時短で働くと手取りは 10 万円代になるので、家族 3 人を養うには生活レベルをがんばって落とす必要がありました📉

休職でガリガリ貯金が削られていた後に、さらに単月赤字が待っていたので結構焦りました 😅

いろいろやめる

物欲もあまりなく、旅行も遠方の祖母を訪ねるか四国近辺に行くかぐらいで、贅沢はしてないよなぁとか思ってましたが、やはり知らないうちにお金は使っていたのです💸

コーヒーはインスタントに(これまでは町内で焙煎してる人から買っていた)、お酒は飲まないか飲んでもワンコインワインに(これまでは、結構遠慮なくビール買ってた)、これまで昼は外食がほとんどでしたが一切止めました。もちろん旅行は無し。

孫の顔を見せるというのもあり、実家に顔を出す頻度も増やし、週末は晩ごはんをいただいたりとお世話になるようにもなりました。さらに帰りにいろいろ持たせてくれたりして、マジありがたいです 😭

自炊自炊自炊!

料理担当継続中と書きましたが、とにかく少々疲れていても自炊率を高めるのが現状家計への影響大きいのでがんばっている状態。
外食だと、気をつけないといけない食材を気にするのも面倒だし、自炊のがいろいろ都合がいいというのもあります。

Netflix 最高

ほんと、お金が無いとこういう安い金額で無限にコンテンツを楽しめる系は助かりますね。
やっぱり、お金を使うとこに行くのをセーブしたり、外食を減らして自宅率が高まると娯楽に飢えてくるので、そういう時にすごく嬉しい。

一方で、娘が「動画見るーーー」と Netflix をせがむようになったのは問題です 😅

🎲転職のこと

とりあえず過度な残業せずに週 40 時間ぐらい働くのは普通にできるなというのが分かってきたので、単月赤字脱出のために転職も考えるようになりました。

現状と目指すところ

現職では正社員のグレードが 2 つあって、今は下の方のグレードに下げているのですが、上のグレードは見込み残業時間がとても多いので、結果としてそれが付かない下のグレードは給与がその分下がるという計算になっています。(少なくとも、実際グレードを下げた自分の給与がそうなっているのでそれに近いはず)
また、下のグレードは給与の昇給幅も小さく、このグレードを継続した上で自分の今後を考えるのは少し無理があるなという感じです。

もちろん上のグレードのエンジニアは緊急時の対応や変則的なリリース時間等もありますし、見込み残業時間が上乗せされることに異論はありませんが、今の私の状態的に、上のグレードに戻して、その見込残業時間を前提に働くという選択肢は取れません。
もちろん見込み残業は見込みであって、その分働かなければいけない訳ではないですが、場合によってはそれぐらい要求されるという事を考えれば、そこは「大丈夫です」と嘘を言うよりも、「自分にはそれはできない」と言った方が誠実だろうと思っています。

そもそも下のグレードは小さいお子さんがいる(主に)女性が時短で利用するケースが多いので、一時的なものとして設計されているような気がしなくもなく、現在の会社の体力を考えた時にカバーできる範囲でのグレード制なので仕方ないかなと思っています。

そうなると、週 40 時間ぐらいの勤務が基本で、単月赤字を脱出できるところというのが今自分が目指すべきところかなぁという感じです。そのままですね 😅

働きたい人と働きたい

1 月に書いたエントリでは、今のチームに移ったのは一緒に働きたい人がいるからと書きましたが、そういう意味では今はその人と働けて満足しています。久しぶりにプライベートでもオンラインで読書会やったりして楽しい。

なので、転職するにしても働きたい人がいるところがいいなというところで、僕が懐いていた元 CTO の会社の見学に行ったりしていました。

見学と言いつつ、実際はリファラル採用の流れで職務経歴書事前提出、いきなり人事と開発部長が前に並び、普通に緊張しました。。(紹介してくれた元 CTO も一緒に並んでくれて場を和ましてくれました 😊)

結果としては紹介してくれた人と一緒には働けないという事になり、であればということで立ち消えにしてもらいました。
そもそもそこはリモートワークを推しているような会社ではなく、実際リモートでの採用見込みは薄いかなぁと思っていたので、それが原因、または単に僕の能力不足で普通に不採用でやんわりお断りということだったのかもしれません 😅

久しぶりに転職活動っぽいことをして思ったのですが、最近は職務経歴書書くのもすっごく楽になっているということ。
今回は Dropbox paper で書いて、そのリンクと、一応 PDF を送ったのですが、それで普通に OK でした。加えて、転職ドラフトに登録すると、いろんな人の公開職務経歴書を見放題という素晴らしい機能があり、それを見て研究するのが地味に楽しかったです。

お世辞だったのかもしれませんが、面接で開発部長に「この職務経歴書すごい分かりやすい、これから職務経歴書はこの書き方してもらわない?」と人事の人に話してくれていたのが地味に嬉しかったです。

今後は

地元でいろいろ選択肢があればなぁと思うんですが、「東京の IT企業が〇〇県に進出!」とか新聞で見ても、結局は開発の採用は東京だけで地方はそれ以外だったりするのでなかなか難しいです。

少なくとも娘が小学校を卒業するまでは山に居たいので、地道にリモートで働けるところを探すかなぁというところですね。(とはいえ、貯金は減っていくのでそんなダラダラもしてられないですが 😅)

🌻生活のこと

畑を借りてる

5km ぐらい離れたところで知り合いが移住者向けに貸し農園をやるというので、最初の借り主になってみました。
家にも小さな畑はあるのですが、本やネットは見つつも、どうも我流でうまくいかない事も多いので、「年間通して教えながら」というのに惹かれたのも理由の一つ。

加えて、単月赤字なので、食べ物が手に入るならという現実的な理由も一つ 😅実際、にんじん、じゃがいもなんかは使いきれないぐらい収穫できているので結構助かっています 🎉

また、在宅で仕事をするようになったので、畑で一緒に借りている移住者の人たちと週末一緒に作業したりするのが、自分の数少ない社会活動になっていて、それもまたいいです。
半分仕事で半分遊び、みんな一生懸命やってるんだけど、まあまあゆるい。お昼の仕事もこうやって働ければいいなぁと思うような、そんな時間😊

娘、近所の人

在宅で働くようになっていいのは、近所の人と会う機会が増えること。

そこで見えてきたのは、聞いてはいたけど娘はほんとに近所の人に可愛がられてるんだなということ。よく声もかけてもらっているし、よく遊んでもらってる。
特に娘と同じぐらいの孫を持ってる人たちは、娘を見るのが嬉しいみたいで可愛がってもらっています。

ちょうど仕事終わりぐらいが、娘が保育所から帰ってくる時間なので、娘が「ただいまーーー!」と作業場のドアの前に立つのもとても心が和みます。

最後に

スムーズな復職に感謝

半年前は不安が多くありましたが、結果としてはスムーズに復帰していけた半年間でした。

転職について触れたりもしましたが、あくまで金銭的な理由で、今のチームには復帰後に多くのサポートをしてもらっており感謝しかありません。今後もしっかりと仕事で貢献していければと思っています。

お金は意外と大事だった

単月赤字になり、現状のグレードや昇給ペースでは脱出が容易ではないとわかった時は、結構精神的にも不安定になりました。

現在は、自炊や節約もそれなりに楽しんでやっていますし、妻や両親のサポートもあり「そんないきなり破滅したりしない」と落ち着いてきました。

個人的には「まあ給料は少なくてもなんとかなる」とか言ってた時期もありましたが、今となっては子供もいますし、実際お金が無くなるといろんなことができなくなってしんどいという事を実感し、「お金はそれなりにあった方がいい」と強く感じています。いや、当たり前なんですけど 😅

それでも余裕は大事

思い返してみると、昨年までは週末も難しい顔をして仕事絡みの事を考えたり、手を動かしてしまっていたこともありました。平日はなおさらです。
子育てには積極的にという反面、それでもこれまでの仕事や勉強のペースは落としたくないという気持ちの中で、ただ余裕をなくしてどちらもいまいちなクオリティになっていた気がします。

今は、以前のように業務で使いそうなことは素振りしておく的な事はできなくなってしまっていますが、一方で平日・週末ともに余裕を持って家族に接することができていて、「あー、良い週末だったな」と思えることが自分にも良い影響を与えている気がします。

僕はストレスを溜めやすい気がするので、その点でも平日業後や、週末に良い時間を過ごして、しっかり寝るというのは大事だなぁと思うのでした。

次回の検査まで

何もないことを祈りつつ、楽しく生きていこうと思います。

プログラマー35歳、定年まではいかなかったが身体の一部を失うことになった

どれだけ健康に気をつけろという周りのメッセージを受け取っていても、不幸なストーリーを見聞きしていても、「自分は大丈夫ではないか」と勘違いしてしまうことがあると思います。特にまだ頭も身体も元気な年齢ともなればなおさら。

僕自身、34 歳の健康診断の結果を見るまでは自分の身体に異常なんてあるとは思っていませんでした。 でも突然、本当に突然その時はやってきました。

「もしかすると腫瘍かもしれません。精密な検査を強く勧めます」

検査から現在まで

ある内蔵に腫瘍を抱えた

細かな事は書きませんが、35 歳の健康診断での最後の医師の診察時に、腹部エコーの内容を見ながらその女性医師は「昨年の診断では嚢胞と書かれているし、昨年から変化はほぼ無いようだけど、、、これはもしかしたら腫瘍ではないかしら」と話し始めました。細かな事は覚えていませんが、彼女は慎重に言葉を選びながら、「腫瘍といっても、良い悪いがあるしね」などとフォローを入れながら話してくれましたが、もちろんこちらは寝耳に水なので心中穏やかではありませんでした。

これは、後日最終的に外科を担当してくれた医師から言われたことですが、「これを健康診断で発見するのは私が診察医では難しかったかもしれません。今回こうやって早期にこの病気を発見できたのは検診を担当してくれた先生の熱意でしかないです。」との事で、実際 34 歳の頃と腹部エコーに映るものはほぼ変わらなかったのに、異なる診察をしてくれたその医師とのめぐり合わせが一つ幸運でした。

実際、大きな病院で検査を開始した時の消化器科の医師も、当初は「前年との変化も無いし、形状的には様子見でいいと思いますけど、検査してみましょうか」という感じで、最終的に半年以内には切除しないといけないとなる雰囲気ではありませんでした。

検査期間

検査が始まったと同時に自分の中でもどんどん不安が広がり、それまで「娘を抱っこしてるから身体が痛いだけだろう」程度に感じていた食中・食後の身体の痛み等がどんどん腫瘍のせいではないかと思うようになり、またその痛みを強く感じてしまうようになったため仕事も休ませてもらう事になりました。

特に医師からの指示があった訳でもないのに、検査期間の 3ヶ月近くも仕事を休ませてもらい会社には感謝しかありません。(もちろん、検査だけでは傷病手当は出ないのでその間の給与等は全く無かったわけですが、それでも辞めずに済ませてくれたのはありがたかったです。)

大病院だったためかは分かりませんが検査は、数種の画像系の検査、そして最終的には一週間程の検査入院をし、実際に腫瘍の一部を採取しての検査と進んでいきました。

初診から確定診断が出るまで約 2 ヶ月半。

実際にその腫瘍に関する病名とそれが悪性である事を伝える時の医師のあの緊張感の作り方はやり過ぎ感がある気もしましたが(もう、空気が重苦しすぎて言う前からよくないと分かるレベル。。)、丁寧に説明してくださいました。

そして、その日のうちに外科に回され、その日の夕方には入院日まで決まるという流れで進みました。

検査期間中には何度か上司やチームリーダーと話す機会も作ってもらい、仕事の話しはまったくなく、他愛ない雑談をする時間をもらえたのはありがたかったです。どうしても一人でこもりがちになってしまうので。

腫瘍切除のための臓器の部分切除

実際外科での入院で行うことは腫瘍のある臓器の部分切除でした。 他の病院で診察を受けなおしたり、他の方法を探るという方法も考えられるのかもしれません。 ただ、健康診断を担当してくれた医師から「この臓器の場合は検査結果がどうであれ腫瘍があるなら切除した方がよいという話しになると思うけど」と聞いていたので、実際に「切除する」と外科医から聞いた時には、わりとすんなり受け入れられました。

もちろんこれは私個人の置かれたケースでの話しであり、例えば私のように地方ではなく東京のような病院の選択肢が多数あるような土地であれば変わってきたかもしれません。

確定診断から入院日まで

入院一週間前は麻酔医との面談や、入院に関する説明で通院する必要があったものの、確定診断が出た日からは 3 週間程の時間がありました。

その間は、年に一度程しか会えない遠方の祖母に会いに行ったり、結婚式を担当してくれたコーディネーターさんに会ったりという旅行をしてみたり、お世話になった上司に会いに行ったりしました。

また、仲の良い同僚が自宅にご飯を食べに来てくれて、彼が腰を悪くして入院していた頃の話しを聞いたりしました。

それ以外は庭の手入れをしたり、家族の食事を作ったり、仕事に忙しかった時にはあまりできなかったことをゆっくりとやっていました。 また、しんどい時って自然が広がっているような場所でのんびりしたいと思ったりしますが、私の場合は通常がそれなので、その点はいつも気持ちよく過ごせました。

娘との時間もこれまでも作っていたつもりでしたが、どうしてもせかせかしたり仕事のプレッシャーがとれない気持ちの中でだったので、ゆったりとした気持ちで娘と接することができる時間を作れたのは良かったのかもしれません。

可能なら育児休暇も取ってみたいと思っていたので、全く違った形ではありますが、育児休暇っぽいことができたなと思います。

入院から退院

合併症を併発すれば 1 ヶ月ぐらいの入院もありうると聞いており、年越しも覚悟していたのですが、まだ若いというのもあったのか、ほぼ理想的な形で術後の経過は進み、入院計画より 1 日早く退院することになりました。

これはまた書くかもしれませんが、医療機関の忙しさを目の当たりにした入院生活でした。
手術を担当してくれた医師のチームの一人が術後の経過も診てくれていて、その医師は別の医師が休暇中ということもあったのかもしれませんが、普通に週7日毎日診察にいらしていて、「いったいいつ休むんだ。。」という感じだったり、初日に夜勤をしていた若い女性はその後一日置きに夜勤に現れ(それも多少イレギュラーだったそうですが)、「この人の生活リズムが心配だ。。」となったりと、入院してるのはこちらなのですが、何かそこにいるスタッフさんが心配になるケースがありました。

ただ、本当にみなさん元気でこちらも元気をもらいましたし、娘が御見舞にくれば次々に話しかけてくれたりととても雰囲気の良い入院病棟だったなと思います。

退院時に何か差し入れでもと思って「差し入れとか持ってきてもいいんですかね?」と聞いてはみましたが、丁寧にお断りされました。県立の病院だったというのもあると思いますが、様々な理由で病院関係者への差し入れは微妙な扱いなんだなと学びました。

退院後

私の実家が病院から近い場所にあったため、入院時から家族は実家でお世話になり、私が退院してからも一ヶ月程は家族で実家で寝泊まりしました。

実際、退院したといってもまだ痛み止めが無いと寝られなかったですし、体力も激しく低下していたので、本当に助かりました。

実家に居る間は、できるだけ動くために長時間散歩をしたり、入院中大変だった妻に自由時間を取ってもらうために娘と私の母と出かけたり、とにかく身体を動かすように心がけていたこともあり、自宅に帰る頃にはかなり回復していました。

自宅に戻ってからも仕事復帰までは 2 週間程あった(今もまだ復帰前ですが)ので、引き続き庭の整理等をやっていました。もちろん、今ブログを書いているように、少しずつパソコンの前で作業っぽいことをしたりと仕事復帰に向けてリハビリっぽいこともしていました。

今後の病気との付き合い方

切除したからといって安心はできず、今後は再発や遠隔転移といった可能性と付き合っていく必要があります。摘出した腫瘍の病理検査の結果としてはその可能性は低いだろうとのことでしたが、ゼロでない以上は今後も年に数回の検査をしていくことになります。

仕事復帰に向けて

どうして病気になったのか

もしも検査の結果「悪くなる可能性はあるが経過観察で 」というものであれば、これまで通りの部門、仕事内容で多少セーブしながらでも再開しようと思っていました。

ただ、結果としては入院して切除となったわけです。

今回私がなった病気は遺伝である可能性は低く、簡単に言えばこれといった原因は分かりません(多くの生活習慣病みたいなものはそうだと思いますが)。若干珍しい病気であったことも不安を掻き立てるのかもしれません。
医師の言葉を借りれば「いつからかは分かりませんし、長いか短いかも分かりませんが、年月をかけて育ててしまったものです」。

エコーにたまたま映る程に育ったのが 2 年前だとしていったいいつからそこに居たのか、仕事を始めてからだろうか、東京に転職してからだろうか、現職に転職してきつい時期が続いた時だろうか、山に移住してからだろうか、それは分かりません。

お酒も日常的にはあまり飲みませんし、タバコも吸いません、定常的に運動することはありませんが、肥満というよりは痩せすぎです。好き嫌いもなく、間食もあまりしない(振り返ってみると、たまにしていましたね。。)。割りといい感じに生活できていると思っていたこともありましたが、そこに悪い部分があったのかもしれません。

もしかするとストレスを溜めやすいのかもしれません、比較ができないので主観でしかないですが、うちに溜め込みやすいし、山に来てからは飲み会もほぼなくなったので、そういう発散の場がなくなってしまったのかもしれません。

考えればいろんな事があります。

ただ、東京に転職して小さな 2 次請け、3 次請けみたいな会社で働いていたのも、「小さな会社でやりたい」と現職がまだ 20 人程度だった時に転職し必死に働いたのも、東京の通勤を逃れるために山に移住したのも、全て自分の選択です(最後は妻も入っていますが)。
もちろん残業きついとか人間関係辛いとかの環境や外的要因もたくさんありますが、決めたのは自分である以上は、こうなったことは自分の責任と受け入れています。

では今後どうするか。

自分の大事にするものを選ぼう

(病後すぐということもあるので、転職までは選択肢には入れられませんでした、その前提で。)

昔社内のコーチと話していた時のメモを読み返していたり、久しぶりに前職からの仲の良い同僚と話したりしていて、自分が働く上で今大事にしたいのは「一緒に働く人」だなと強く思いました。

僕自身はどちらかといえば内向的だし、人当たりは弱いです。何かを主張するのはあまり得意ではないですが、納得できない意見に従順になれるほどでもない。めんどくさい人です。よくそんな人間がリモートワーカーとしてやってこれたなというのもありますが、そこには特にこちらを気遣ってくれる仲間の存在もありつつ、多数の工夫と、そしてストレスを抱えつつというのがありました。

もちろん、これまで所属していた部署のチームは好きですが、人数が増えてきたり人の入れ替わりもある中で少しずつ自分のキャパシティを超えていく感覚がありました。自分がそこで成果を出すのに、いろいろと無理をしないといけなくなっている感覚です。

また、体力も落ちていますし、病後の不安というのもあり休職する以前の半年前のようなペースで仕事をする事は避けたい思いがありました。そこで、今回は以下の選択をしました。

  1. 正社員の中でもグレードを下げる
  2. 時短で働く
  3. 小さなチームで、良いペースで、働きたい人と働く

1, 2 について

現在所属している会社は対外的にそれを出しているかは分かりませんが、正社員には2つのグレードがあります。

給与の面では見込み残業代が入るか入らないかが大きな違いであり、業務の面では時間をきちんと限定できるような働き方ができるようにするというものです。

あくまで私の見解ですが、簡単な例をあげれば「保育園に毎日迎えがあるので、不定期に残業が発生するような仕事はできない」という場合に、上司の義務として、その社員に対しての仕事の振り方をきちんと調整するというものですね。

もちろん、それ自体は給与にも響いていきますので、単純に上位のグレードの正社員とくらべてみなし残業代分が無いだけという訳ではありません。

サイボウズの選択型人事制度の比べれば少ない選択肢ですが、「フルコミット前提のベンチャー企業!」としてだけでなく、多様な背景の人材も働けるようにという配慮で生まれた制度であり、今回の私にはピッタリでした。

今回はさらに 1 時間の時短勤務も選択させてもらいました。上位グレードにある「みなし残業」というのが結構でかいので、給与面では休み前から比べると半減とはいかないものの、かなりの減少幅で家計に対していえばかなりのダメージではありました。

もうすでに退職されているようですが、以下のブログでも時短にした際のみなし残業が吹っ飛ぶダメージは身にしみて分かりました。。妻、すまん。

blog.inouetakuya.info

ただ、上述の通り、私の場合は仕事の幅自体を一時的に制限したいという目的もあるため時間を縮める以上にだせる成果は下がるはずなので致し方ないとは思っています。

ただ、、、ちょっと調べると来年の新卒の初任給より少なくなるんだよな、、、、

3 について

社内には大きく 3 つの開発部門がありますが、今回はその中でも一番古く、一番大きな部門に異動することにしました(実は出戻りなのですが)。

大きな部門でかつ、一番お金を稼いでいる部門ということもあり、全体的に安定感があり、先日上司と面談した際に「部としての課題はあるか?」との問いに「今は大きなのはないかな」と回答が返ってくる程度には成熟していきている場所です。つまり、それ程ビジネスサイドからのきつい要求も無いですし、スケジュールに対してもリソースをうまく回せる部門ということです。(まあ、上司は「それでも人は足りないよw」とは言っていましたが)

休む前に所属していた部門は、社内ベンチャー的な雰囲気がある部門で、とても面白いしメンバーも好きなのですが、そこでもう一度働いた時にまた身体を壊さないかという怖さがありましたし、自分自身が「以前はこれぐらいできていたのに」と簡単に比較できてしまうことがストレスにならないかと。

その部門の中で、顧客との契約周りなど、営業・CS等との橋渡しをする社内開発的なチームがあり、そこがまだ正社員は2人だけというチームなので、そこで働くことにしました。

また、そのチームは現職で最初に私を受け入れてくれた先輩がリーダーをやっていて、もう一人は私の前職からの友人という構成であり、彼らと仕事を開始する上で何ら難しい事はないなという安心感があります。

加えて、前職からの友人は私がエンジニアとして最も一緒にやっていて心地よい人なのでそれも大きな理由です。(ここ数年は一緒に仕事をしている訳ではないので、友人として信頼しているという点が大きいのかもしれません)

家庭での役割の変化

休職する前の私は「妻の家事・育児の負担をできるだけ減らさなければならない」というイクメンというものをある意味脅迫観念にのように捉えて生活していたのかもしれません。

家事は分担していましたが、一日中娘といると妻が滅入るだろうと思い昼食はできるだけ家族で取るようにし(職場と家はそんなに離れていない)、家に帰れば夕食をかきこみ娘と風呂に入り、そのまま寝かしつけ自分も程なく寝る。朝 4〜5 時に起きて、勉強したり仕事をするか、庭の手入れをしたり雑用をしたり。(こう文字にすると大してやってないようにも見える。。)

ただ、どうしても休日を勉強時間等に使えなくなるので平日睡眠時間を削ってそこに当てるしかないというのが続き、ずっと身体の怠さが取れないという感じだったように思えます。

まあ、子を持つ親はみんな疲れが取れない生活をしていそうに思うので仕方ないのかもしれませんが。

保育園に入れることにした

妻の希望としては 3 歳になるまでは一緒に過ごしたいということでしたが、2 歳半になるこの 4 月で保育園に入れることにしました。

元々、「妻に少しでも一人の時間を持って欲しい」と思って、夕食後の娘との時間は私で対応するようにしていましたが、現状私の体力も落ちており、仕事にも復帰する上でもう私の努力では妻に一人の時間を作るのは不可能と判断しました。妻としては「一人の時間を作ってもらったのはありがたかったけど、それが無くなって困ることはないよ」との事でしたが、妻としても 2 歳を超えてどんどんパワーが増していく娘を何も無い山で一人で相手するのはそろそろ限界かなというのも実感としてあり、いいタイミングだろうということで入れることにしました。

後、現実的にもう私一人の収入ではギリギリで、妻の実家に娘を見せにいくための旅費等も簡単には出せなくなったので働いてもらうしかないという理由もあります。

平日の中の育児のタスクからは手を引く

手術後はもちろん体力も落ちていて傷も傷むからというのもありますが、風呂・寝かしつけも含めて妻が全てやってくれるようになりました。

もちろん、家にいる間は一緒に遊びますし、おむつ替えや着替え等はやりますが、1日の中の大きなタスクからは手を引かせてもらいました。

代わりに食事を引き受ける

これは休職時にやることがなかったから食事作りをやっていたのですが、育児のタスクをやらなくなった分、食事(+ 洗濯)を引き受けることにしました。

食事に関しては、私が術後に食事に多少の制限を加える必要が出たため、そこに対して知識を日々入れている私が作った方が効率がいいし、妻が作った場合にいちいち何を使っているか確認するのは、する方もされる方も気分がいいものではないので分担としてはこれがベストだなと。

時短で 17 時には仕事を切り上げるので、仕事をスパッと切り上げる理由として「ご飯を作らなくてはいけない」というのは一つ良いスイッチになるなというのもあります。

復帰後の不安

めちゃめちゃあります。

時短の時間すら働ける体力が持つのか。異動するとまたメインのプログラミング言語が代わるがついていけるか。スパッと仕事を切り上げて食事を作れるか。「勉強しなくては」というプレッシャーの中でまた生活リズムを崩さないか。仕事をやりすぎてしまわないか。切りがない。。

ただ、上司からは「こちらとしても仕事を無理していないか確認する義務があるのでなんでも相談して欲しいし、日報とかも回して欲しい」と言ってもらえたり、復帰後にスムーズに仕事を進めていけるようにと、長めの本社出張も許可してもらい、復帰後のプランもなんとなく描けるようにしてくれました。

加えて、病後の人間を受け入れるという多少厄介な事案ですが、きちんと復帰後の業務での期待を言ってくれたのも「無理な異動願いだったかな」という不安を消してくれました。

最後に

残りの人生があることを前提にしてはいけない

medium.com

上記の記事は検査が始まって少し経ってから見つけた記事でした。

同じ 35 歳、ただ彼の場合は私よりもっと重い状態。子供の 5 歳の誕生日を見れないだろうという辛い告白。彼のブログはまだ続いていますが、私はこの記事より先は読めていません。いずれ読むことがあるかもしれませんが、今はまだ読む気にはなれません。それはたぶん、まだ自分にもそうなる可能性がゼロではないという気持ちがあるからだと思います。
ただ、top highlight にもなっている以下は心に刻まなければいけないと思います。ここから受け取るメッセージは人によって様々だと思います。

Stop just assuming you have a full lifetime to do whatever it is you dream of doing.

娘に生かされたのかもしれない

(もちろんオカルトの話ですよ)

娘が生まれたのが 2015 年後半、最初に腹部エコーに影が映ったのは 2016 年、そして 2017 年に切除となった訳ですが、今こうしてみると娘が生まれた事がきっかけとして悪いものが明るみにでてきたように感じられてなりません。

もし娘が生まれていなければ、なんて話は馬鹿馬鹿しいですが、今こうして運良く生きていられるのは娘のおかげなのかもしれません。(もちろん産んでくれた妻のおかげでもありますね。)

妻に

自分では平静であろうとしても、やはりピリピリした雰囲気を出してしまっていたり、不安な事をつい口走ってしまうことがあり、心労をかけたなと思います。 実際、私は自分の身体の事で苛立ったり、口調が強くなってしまうことがあり妻はそれに怯えていた部分もあったようです。
もちろん入院時を中心に娘を一人見ていたのも大変だったはず。

妻は悪性腫瘍の告知の際も、入院時も平静を装って見守っていてくれました。退院後、仕事の事、家庭での自分の役割の事を話した際にも受け入れてくれました。

自分のような人間に、自分がこうなってしまった前も後も支え、共に歩いてくれる事を表明してくれた妻には感謝しかありません。ありがとう。

今は少しだけ以前の二人に戻ってきているように感じます。

生きているって素晴らしい

ですね。

室内とは室外であり、室外とは山である

四国徳島と聞いて、関東の人は「暖かそう」という印象を持つ人がちらほらいます。ただ、そんなことは全くなく、海に近い徳島市ともなれば風も強く、冬には雪が降ることだってあります。

ましてや私が住むのは標高 200-250 程度とはいっても間違いなく山です。そして、「古民家」という家は「(現代的に)改築済」という前提がなければ冬は外よりも寒い空間になります。

夏はいい

おそらく30, 40, 50 年前の人は、夏の暑さを凌ぐために家を設計したのだと思います。

軒が長く、日光が室内に届きにくいようにし、とにかく風通しを良くするために部屋、壁、窓がレイアウトされています。実際、夏はほぼ冷房がいらない年もある程で、「避暑ができる」というのもまんざら嘘ではありません。(現実、暑い年は暑いのでそうもいかないこともありますが)

ただし、増築や改築がちょいちょい行われている家は、風通しが犠牲になったりしている例があり、まさにそれが自宅だったりします。。加えて、夏は湿気がすごいので、妻はいくら冷房がいらなくても夏の山はあまり歓迎していません。

冬は・・・

古い家であればある程、窓が薄いです。そして壁も薄いです。そして、薄いだけならまだしも隙間風がはいります。

隙間風の原因をがんばって潰したとしても、薄い窓と長い軒のコラボレーションで、まったく陽の光が入らず日中も室内の気温は上がらず、かつ暖房で温めた室温は窓からすっと消えていきます。(もちろん夜は長めのカーテンをしています)

北海道の人が東京に来ると、東京は寒いと思ってしまうのは東京の家が北海道の家のような寒さに厳重な対策がなされた家ではないことだと聞きますが、山の古い家はそれ以上に冬をなめきった仕様になっており、田舎暮らしを夢見てきた女性の心を毎年折りにくる程度にはきついです。。(実話、妻の事ではありません。)

当然ながら、最低でも石油ストーブ・ファンヒーター、できるなら薪ストーブが良いという感じで、電気ストーブやエアコンで戦う事はできません。

よって・・・

暖房器具を全ての部屋に配置することはできず、せいぜいリビングと寝室程度になるので、他のあらゆる部屋はほぼ外と変わらない気温になります。というか外です。

そして、外というのは、山なんですよね、ここ。

ではどうなるか・・・

4年住んで、すっかり私達夫婦のファッションも様変わりしました。

今や室内でもモンベルの登山用のダウンを着て、中には極暖ヒートテック、もうすぐ超極暖ヒートテック、そしてかじかむ手には指が出る手袋を装着し、足はヒートテックソックスに足首まで入るスリッパ。ここまでやれば、暖房を一日中つけっぱなしにしなくても、多少生活できるようになります。(もちろん、朝や食事時には暖房点けますけど。。)

あ、もちろん家の中でもマフラーの装着は必須、邪魔にならないようにネックウォーマーがオススメ。後、最近見た足湯たんぽがマジで欲しい。

ここのような田舎で生活したいという人に伝えたいこと

もしあなたが筋肉隆々であったり、寒さに非常に強い人ならどの家を借りても買っても大丈夫です。

もしあなたがそこで新築の家を建てたり、家をモダンにリフォームするつもりであれば全く問題ありません。今の技術で夏にも冬にも快適な家を作って快適に過ごしてください。

もしあなたが、最低限の改築やほぼ改築無しで古民家に住もうと思っているなら、、、、「どうしてもそこに住みたい」や「そこで起業する」とか言う意思が無いならやめておきましょう。

なぜか

冬の寒さについてはお伝えした通りですが、まず古い家はエネルギーの効率が非常に悪いケースがあります。うちはまさにそうなのですが、設備等が古かったりするため電気代がめちゃかかります。夏冬であれば余裕で月の電気代が 2 万円近くいくこともあります。当然灯油だって安くありません。あなたが新築する程の経済的余裕がないなら、一日中暖房を付ける余裕も無いと想像できます。そうなると、どうしてもそれ以外の方法で寒さを凌ぐ方法を考えなければいけなくなります。それは、都会では考えなくて良かったことで、結構なストレスになります。(もちろん出費も)

で、自分はどうしたいか

正直まだあんまり考えられていない。。新築はこのご時世でやるべきじゃないだろうし(これだけ全国的に空き家があるのに新築するのは意味が分からない)、今の家は賃貸だから改築は考えられない。一方で、今住んでる町は、借りたい人がたくさんいるけど空き家を提供する人が少なくて問題になってるぐらいなので、改築するための家を探すのも苦労しそう。

いろいろ考えると、この町に住み続けるべきなのかとか考え出すけど、他の面で考えると出る理由より残る理由の方が多い。(子育てとか、ようやくご近所とも仲良くなれてきたとか、実家も近いとか)

つまり、、、、単なる心情の吐露的なエントリです。ホント、快適な時期はめちゃめちゃ快適で気持ちいいんですけどね、、、それと長い冬場とのギャップがまたキツイ。冬は沖縄にでも行こうかな。。

子供のような中年と好きさ加減

自分には恩師と呼べる人が二人居て、一人は二社目で入っていた某プロジェクトの親請け(全体で言うと二次請けで自分たちは三次とかだったのかな。。)のトップの人でそのプロジェクトの実質のマネージャーでもあった人。プログラマとしての腕ももちろんだけど、管理者としても雑用を排除し、いつも「何か困ってることは無い?」と優しく声をかけてくれて「マネージャーってこういう人の事を言うのか」と感動した。(最近は連絡があるとだいたい仕事の勧誘のお話なので疎遠になってしまっていますが。。)

二人目は現職の元 CTO だった人。諸事情で現職には CTO 職が無くなってしまい、CTO という役職の人が居たこと自体社員の8 割ぐらいの人は知らない。元はインフラ周りをやっていて、転職先でついに社長になってしまい、V 字回復をさせた後に心臓を悪くしてその後にうちに来たという凄い人だった。
当時でも 45 は超えていたけど、誰よりも技術のトレンドに敏感で、社内の開発カルチャーを本当に変えようとしてくれた人。ただ、また心臓を悪くしてしまい4年前に去ってしまった。

最近、ひさしぶりに元 CTO とお会いすることができた。彼は今は大阪を本社とする CRM 等を提供している会社で働いているらしく、旅行の途中でランチをした。

病気を経てもなお

彼は、私と一緒に働いている時の終盤は、ニトログリセリンを持ち歩かなくてはいけない程で、正直なところ退職後も長期静養をされるのかと思いきや、半年経たずに転職の報がありたまに連絡をすると、たいてい出張をしているような感じで正直無理をされていないか心配もしていた。

実際今でも残業時間に関する警告を労務部からくらってしまう程度にはバリバリやっているらしく、初めて会った時のような元気な感じで安心した。(いや、ホントはもっとアクセル緩めて欲しい。。)

病気とどう付き合うのか

これには様々意見があると思うが、彼は「最終的に自分の身体は自分で理解するしかない」という判断の元、薬の量等も自分で変えてみながら結果どんどん減らしていったらしい。今はほぼ飲んでいないとか。

体調に関しては、単純に加齢の影響もあるので昔のようにはいかないが、それでも特別勤務時間を減らしたりもなく、変わらず仕事をしているらしい。

病後の弱気

正直に言えば、会う前は、私は彼から「病気があったから、仕事は〜のようにセーブしたり、無理をしないようにしているよ」とそういう話をしてもらうことを期待していた気がする。ただ、上記のように実際は全く異なっていた。それこそ彼は、一度本当に死の淵に立った人にも関わらず。

ただ、彼からは「病気の後には弱気がくる」という話をしてもらった。

特に彼の場合は、低迷しかけていた会社の社長職という火中の栗を拾うことになり、その中での心身の無理がたたって心臓を悪くしたと考えて当然な気がする。実際、自分たちがかかるような病院は、発生した病変という事象には対処してくれるが、その根本原因に関してはそれ程教えてはくれない。先天でも無ければ生活習慣や自律神経のような言葉で説明されてしまう。だからこそ、きっとその病気が治ったとしても、元の生活に戻ることで再発が怖くなる。

実際彼もそうだったらしい。ただ、そこで彼が考えたのは「好きさ加減」だったらしい。

そして、きっといろんな事象があったんだろうけど、彼はその中でも「やはり技術(彼の場合は IT)が好きだな」となり、また同じ業界に復帰することを選んだようだ。

好きさ加減(の自分の解釈)

スティーブ・ジョブズが本当に毎朝鏡の前で「今日死ぬとしたら〜」の下りをやっていたのかは知らないし、死ぬ事を考えた時に自分が日々行っていることを振り返るのは大事な事なのかもしれない。でも、たいていそこまでは考えることは無い人がほとんどだと思う。(もちろんもしかすると大半の人は日々死を意識して生きているのかもしれない)

ただ、自分が携わっている事、日常の事、やろうとしている事が、「どれぐらい好きなのか(またはそうでないのか)」は考える事はできるのではないだろうか。

本当にこのプロダクトを作りたいか?このチームで働きたいか?この会社で働きたいか?この町に住みたいか? もちろん、だいたいのことは白黒では表すのは難しいと思う、だから「加減」。

その加減をどう表現するのかは個々人によるだろうし簡単ではないかもだけど、それを考えて自分の日常をどう軌道修正するかを考える事が必要なんじゃないだろうかと思う。

それは義務や何かの圧力でやっていないか?

自分は借りた家の庭の手入れをある種の義務感でやっているが、それは本当に必要なのかと思うことがある。庭師を雇うお金が無いのなら簡単だ、家を変えればいいだけ。例えばそういうこと。(実際最近は楽しんでやれているので、これはもう少し考える必要はある)

例えば OSS に貢献するためにプライベートの多くの時間を使うのはどうだろう? これは多くの人は楽しんでやっているからいいと思うが、一方で仕事で使う以上は貢献しなければという義務感や、転職にはそういう活動が必要という圧力も多少ある可能性がある。
ただ、苦に感じるなら、それはきっとそれ程好きではないのだろうと思う。自分は単純にできていない。

また、よくある「プライベートで勉強する」事に関しても同じかもしれない。それが好きで楽しんでやれる人が一番強いのは事実である一方、それ程好きでは無い人がそれに直面した時、どこでバランスを取ればいいのだろうか。少なくとも自分は、Ruby も Go も PythonJava もと学ぶ時間よりも今は小さな子供と一緒にいたり DIY に時間を取りたいと思ってしまう。ただ、一方で勉強しないとエンジニアとして死んでしまうという圧力も自分で勝手に感じてしまう。

仕事はその最たるものだと思う一方で、それも人によるのかもしれない。

人生という単位で考える必要は無い(場合もある)

人によっては、人生という単位でどんなことをいくつ為すかを考えるかもしれない。もちろん、そういう使命感にも似た事を考えられるような人が大きな事を為すのかもしれない。

でも、そこまで重く考える必要は無いとは思う。日々を好きな割合が多いことで過ごしていくこと(それが単なる怠惰になることが良いとは思わないが)の積み重ねが良い結果を生むこともあると思うし、そういう人が集まった補完的なチームが形成されれば、うまくいったりするんじゃないかと思う。(全く想像はできないけど)

好きなことを得意とし突き抜ける必要は無い(場合もある)

「好きさ加減」という軸で考えることは、日々仕事をしていると「そんな事より、プロダクトに適したものを、転職に有利なものを」と考えてしまうが、実際この業界だけ見ても、好きなことをやって、それが得意分野となり、突き抜けていく人は多くいると思う。

でも、実際それも総数から見れば稀有な例だろうなと思う。
人気の記事を書き、本を書き、カンファレンスで登壇しと、良いエンジニア人生を歩むためのゴールデンロードはそこにあるという感じもしなくも無いし、きっとそういう人達が業界を盛り上げていく中心になるのだと思う。

でも、それこそいろんな事情で全力に振り切れない人にも選べる道はないだろうかと思う。(楽な道という意味ではなく)

子供のような中年

最近、とある先生にストレスの溜まり方がヤバい、と指摘された事があり、会う人にストレス解消の方法を聞いているのだが、彼にも同じ質問をしてみた。

すると彼は、カバンの中から月刊I/Oを取り出し、「いやー最近はね、電子工作にはまっててね」といい出した。正直なところ、身体を動かすような趣味とか、映画とかそういうのを想像していたのに、まさかの電子工作で笑うしかなかった。しかも Twitter や LINE で bot を作りまくったり、各ベンダーの AI フレームワークを試したりと、どこのコンピュータ好きの中学生かと。彼は東京勤務だったため千葉に自宅があるのだが、出向で本社に来ているため今は単身赴任状態らしく、休日はほぼ家で PC の前にいるらしい、そして驚くべきことに、私服はほとんど自宅に置いてきて外にでる服はスーツしかないとか。。

なんか、「50歳ってこんなだっけ?」と呆れてしまうような、でも、思い返してみれば彼が自社にいた頃も、彼は朝早くから出社して自席で発売したばかりの技術書を読んでいて、当時売り出し中だった Windows8 のアプリで遊びたいともちかけるとすぐ乗ってくれて、同僚が作った Kinect のアプリで全社向けのプレゼンをやってくれる遊びココロ満点の人だった。

そして、全く変わっていないんだなと分かって、すごく嬉しくなった。

彼は「プロトタイプのアプリは作るけど、もうプロダクションのコードは書けない」と謙遜していたけど、管理職の上の方にいるにも関わらずプロトタイプ作ってくる辺りで、もう尊敬しかなかった。

好きなことで遊ぶ(遊べる)

好きなことが得意になって、それで何か価値を生み出せる人は素晴らしい。(OSS なんかそうだろう)

でも、好きなことで遊べる人も素敵だと思う。(それが誰の目にも止まらず、単に自分の中に閉じたものだとしても。)

自分は今何をしたら遊んでると言えるだろう。子供とは、、まだ面倒を見てる範囲かもしれない、でも一緒にレゴを作っているときは遊んでる、子供より熱中してる。庭は、、少し遊びが出てきた気がする。プログラミングは、、、、、いつから仕事の道具としてだけの存在になったんだろう。

ストレス解消と考えた時、「何か娯楽あるかなぁ、ゲーム?アニメ?」と考えていたし、それらはもちろん好きで最近全然やっていなかったんだけど、それとは別に何か好きなことをやってストレス解消ができればいいなと思う。

最後に

彼と話した事を頭の中で咀嚼する中で、書いていく方がいろいろ考えられるので書いてみた。

いつか、自分が何を変えたかを書くこともあるかもしれない。

今年もレモンが取れた

f:id:dany1468:20171113153021j:plainf:id:dany1468:20171112143439j:plain

今年はすももがまあまあ実がついていたし、梅の実もまあまあついてたいたが、レモンは例年以上に実がついた。

数年前にイチジクの木が実を大量につけて、その翌年に枯れてしまって以来、実を大量につけるのにはびくびくしてしまうのだけど、たくさん実ができるのは嬉しい。

夏に作った梅シロップがお湯で割ると、ホットレモン的な飲み物になって重宝しているので、レモンシロップを作ればまさにホットレモンになるのではと期待もしている。

今年は庭の剪定を結構やっているけど、重さで木が下がっているものが出てきたりで、次は樹形を整えるような事もやらないといけないのかなと頭を悩ませている。。このレモンも横にある木が大きくなりすぎて半分影になってしまっているせいか、どんどん横にせりだしてきていて、そのせいか枝が下に垂れ気味。いろいろ悩ましい。

tokushima.rb 32 に参加して、CodeBuild 触ってみた

tokushimarb.connpass.com

娘っ子が金曜の夜に発熱し、土曜は夫婦揃ってグロッキー & 予定取り潰しだったのだけど、日曜には娘も元気になり、勉強会開場の近くでやっている「徳島マルシェ」にも行きたいねとなったので、一家で下山し少しマルシェでお昼を一緒に食べ、午後から 3 時間だけ勉強会の方に参加させてもらった。(その間娘と妻は実家に遊びに行かせてもらっていた。実家ありがたや。)

なんというかこの時期は山に住んでると花粉で生活に変調をきたす、、下山すると明らかにそれが和らぐので花粉飛散量が全然違うんだなと体感できる。。後少しの辛抱だ、、、でもこの時期は北海道か沖縄行きたい。。

そういえば、先月はプログラミング教室に参加していて、先々月はなんか用事でいけてなかったので、今年初参加なのであった。(というか年末も出張でいけてなかったから、結構久しぶり。。)

AWS CodeBuild 入門

今回はもくもく会だったので、さて何をやろうかぁとなったところで、ココ一ヶ月ぐらいインフラの人に「暇ができたらやります><」と恒例のなかなかできない事案になっていた CodeBuild を触ってみることにした。ちょうど Tokyo region に来たということもあり良いタイミング。

とりあえず成果

ちょろちょろ調べていたことを思い出しつつ、AWS Management Console をぽちぽちやったり、サンプル用の Rails app を作ったりで、なんとなく動くぐらいでタイムアップ。

でも、とりあえず以下のような感じで動作するところまではいけた。

  • MySQL を使ったテストを実行できる
  • poltergeist/capybara を使った feature spec が実行できる

まあ、日常的に業務で使う構成である。プラスで Redis とかもやりたかったがまあここまで。

内容

github.com

上記は基本的にただの Rails アプリなので、今回の本題である CodeBuild 用の設定ファイルだけ抜粋。

version: 0.1

environment_variables:
  plaintext:
    PHANTOM_JS: phantomjs-1.9.8-linux-x86_64
    DB_ROOT_PASSWORD: password
    DB_HOST: localhost
    DB_USER: mysql
    DB_PASSWORD: password
phases:
  install:
    commands:
      - wget https://bitbucket.org/ariya/phantomjs/downloads/$PHANTOM_JS.tar.bz2
      - tar xvjf $PHANTOM_JS.tar.bz2
      - mv $PHANTOM_JS /usr/local/share
      - ln -sf /usr/local/share/$PHANTOM_JS/bin/phantomjs /usr/local/bin
      - echo `phantomjs --version`
      - echo "mysql-server mysql-server/root_password password ${DB_ROOT_PASSWORD}" |debconf-set-selections
      - echo "mysql-server mysql-server/root_password_again password ${DB_ROOT_PASSWORD}" |debconf-set-selections
      - apt-get update -y
      - apt-get install -y nodejs
      - apt-get install -y mysql-server-5.6
      - service mysql start
      - mysql -p${DB_ROOT_PASSWORD} -e "create database project;"
      - mysql -p${DB_ROOT_PASSWORD} -e "GRANT ALL ON *.* TO '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';"
  pre_build:
    commands:
      - echo "Starting prebuild"
      - bundle install --path vendor/bundler
      - echo "Finish bundle install"
      - RAILS_ENV=test bin/rails db:create db:migrate
      - echo "Finish db:migrate"
  build:
    commands:
      - echo "Starting build"
      - bin/rspec ./spec | tee output.log
artifacts:
  files:
    - output.log

基本的な部分と MySQL の部分はクラスメソッドさんのブログでほぼ完了。

Docker イメージとか使わずに、CodeBuild の Ubuntu のランタイム Ruby (2.3 系) を選択して使いました。bundler とかから全部入れないといけないかなぁと思ったけど、そんなことはなく、普通に bundle install は実行できた。

追加で行ったのは以下。

  • nodejs のインストール (therubyracer とか入れてないので実行環境として)
  • phantomjs (poltergeist の実行用)
    • 2 系じゃないのは、お恥ずかしながら某弊プロジェクトが未だに 1.9 系だから。。

artifacts に RSpec のログを置いているのは、CloudWatch のログがなんかどこで落ちてるのか微妙にわかりにくかったので入れました。

実際、チームで使ってる Jenkins と連携させるときに、結果参照するのにもまあ都合いいんじゃないかなと思ったりしてます。

一応 CloudWatch でどんな風に見えるか。これだとそんなですけど、たまに文字が辺に切れたりしてた。

f:id:dany1468:20170326225634p:plain

ここから進めたいこと

いろいろあるけど以下をやっていって実際のプロジェクトで使ってみることかなぁと。

  • 今回は buildspec.yml にパッケージのインストールから全部書いたが、最初から揃っている Docker イメージを用意しておいて、ビルド時間を短縮させたい
  • Pull Request Builder と組み合わせて、Pull Request 単位で CodeBuild のビルド開始をできるように
  • S3 オブジェクトのバージョン使って並列にビルドができる
    • 今だと build.zip という決め打ちのファイルに対してしかビルドが実行できないので、並列に Pull Request のビルドをさばきたいに対応できない。
    • S3 のバージョン情報をビルド実行時に指定できるのでそれでいけるらしい
  • その辺りを Jenkins Plugin でやってくれるようなので試したい
    • 実行結果とかをどうできるのかとかも調べていかないと

github.com

CircleCI とかでよくない?

そんな気もします。実際開発現場で使おうとなると、コストが安くなったところで今のエクスペリエンスより下がるときっと皆使ってくれない。。

現在は比較検討中ということでいろいろ触ってみてる感じ。

調査時に見たリンクなどなど

感想

「Serverless どうなの?」とか「 Android/iOS の CI どうしてるの?」という話しがアプリ開発もやっている参加者中心にされていて fmfm という感じでした。

アプリ開発の CI (特に iOS の方だけなのかもですが)は独特の難しさがあるんだなぁと思ったり、アプリ本業だとサーバー側をガリガリ開発ってのはそもそもやりたくない的な感じはやっぱあるんだなぁというのを思ったり。

自分はアプリ開発は全然やってきてないので、そういう全然知らない話しを聞いていると、やってみたいなぁと思うのでした。

今回は 3 時間とうい全体の半分ぐらいの時間だけの参加だったのですが、日常だと「娘っ子とご飯食べて、お風呂一緒に入って、妻がお風呂の間に洗濯物かたしたりしつつ、娘っ子と遊んで・・・」とやっていると、寝る前にちょっと時間を確保できるぐらいなので、3 時間がすごくまとまった時間に思えて良かった。

というか、仕事を毎日 8 時間ぐらいやってるんだから、きっと捻出できるはずなんだ。。なぜできないのかと振り返ってみたとき、チームのメンバー増加とコードレビュー時間の増加が比例してきている気がして、「どうしてこうなった!」感があるなと改めて感じたのでした。

あ、SideCI 様からステッカーいただきました!(先月協賛してくださっていたそうです 😇 )

仕事でもめっちゃ使ってます!

f:id:dany1468:20170326233044j:plain