Write Code Every Dayを実践してみてわかったこと

Webエンジニアの方なら一度くらいは聞いた(やったことがあるとはいわない)はあると思うWrite Code Every Dayを実践してみた。

ぼくが知る限りにおいてもっとも古い提唱者↓

John Resig - Write Code Every Day

実は過去にも挑戦したことがあるのだがそのときは確か1週間ほどで挫折した覚えがある。

連日のように残業していて(これは単にぼくの手が遅かったことが原因)、 「日付変わる時間に帰ってきて毎日コード書くとかやれるか!!!」となってあえなく撃沈した。

あと日々の疲れを癒やすためにアニメやゲームを優先したというのもある、意思が弱いのだ。

ところが最近割りと頑張って続けられている。 そろそろ1ヶ月ほどなのだが割りと良いぞ!と感じるようになったので実践する前と実践した後でどう感じ方が変わったかを書いておこうと思う。

memo.yuuk.io

もともとのきっかけはそうだ Go、京都。で「最近毎日コードを書いてます」という発表を聞いたのがきっかけ。 ちょうどそのとき無職から現職に転職した直後だったことや自身の技術力の低さを嘆いていた時期だった。 あと放課後プロジェクトという自分が作りたいものを作る、というプロジェクトを土日に行うようにしていたのだがうまく回っていなかったというのもある。

id:y_uuki さんとはいくつかの点で異なることがあるが「毎日コードを書くためのリズムが出来る」「脳内メモリに乗っているので次に書くときに困らない」というのを日々実感している。

良い点:

  • 毎日仕事でないコードを書くのは楽しいので精神的清涼剤になってる
  • 業務のメインがPHPだが他の言語を触る機会が増えて楽しい
    • 仕事ではなかなか触ったことがない言語を使う機会が少なくなりがち
  • 日々の進歩を実感できる
    • 牛歩だとしてもやってる感がでると「今日ダルいけどこれだけ書いて寝るかー」って思うようになる
  • コンテキストスイッチのコストが減る
    • 一週間に1度だとどうしてもコンテキストが大きくなってしまい「やらないといけないけど面倒」という気持ちが大きくなる、良くない
  • 草が生えるのが楽しくなってくる
    • アチーブメント的な楽しさがある。
    • ただし毎日草を生やすことが目的でないので体調の悪いときなどは無理せず寝てる、でも人間1週間続ければやめるのがもったいなく感じるようになる
  • 出来るだけ残業しないようになった
    • 家に帰ってご飯食べて風呂入って副業ちょっとして〜となると時間がマッハでなくなる、アニメみてる暇もない。なので逆算してこれこれをやるには残業している時間はない!って強い気持ちを持つようになった。
    • 過去に寝なさすぎて身体を壊したので睡眠時間と起床時間は固定している
    • 独身なのでなにがなんでもこの時間に終わらせなて子供を迎えにいかねば!みたいな強制力がないと「残業すればいいか」と心の片隅で考えてしまって結果ダラダラと残業するようになっていたと実感した。
  • 土日に無理して「n時間頑張る!」みたいなのがなくなったので逆に映画みたり技術書読んだりする時間が出来た、心の余裕大事

悪い点:

  • 時間に追われている感がある
  • 草を生やせないときにちょっとモチベーションが下がる
    • 体調が悪いときは別。
  • 短い時間しか確保できないのでどうしてもまとまった時間が欲しくなる
  • アウトプットやインプットの量が減った…ように感じる。
    • 実際にはコミットログが示す通りアウトプットは増えているはずだがブログのエントリや参加した勉強会やセミナーの内容をメモ書きが溜まりがちになってそのままお蔵入りしている、もったいない。

まとめ:

毎日コードを書くというのは一見大変なように感じるが土日にまとめてやるほうが結果的にはコストがデカい。

毎日コツコツやるのが勉強の王道だというのは単に「そのほうが合理的」というだけの話し。 毎日やるほうが試験前にだけ勉強するよりもコスパがいい、その時間は15分でもいいし5分でもいい。 毎日やり続ければ習慣化されるので時間はどうとでもなる(ならないときもあるがそのときはそのとき考えればいい)

習慣化のすごさが実感できたが理解するのが遅きに失する感じがある。

エンジニアに限らず優秀な人たちはこの理論?法則?をきちんと理解していたのだろうなと思うとなかなか今まで無駄にしてきた時間が惜しまれる。

以前なにかで「頑張らない勉強会」というものをみたがWrite Code Every Dayも頑張らないことが継続する上で一番重要なことかもしれない。

余談だがぼくは草を生やすことができなかった翌日に普段の倍コードを書くようにしている。

これはぼくの中で「草は生えていないが実質草を生やしたのと同じ!」という気持ちを維持するためのもので継続的にコードを書くモチベーションを保つためにやっている。これがベストアンサーだと思っていないが割りと自分にはこれくらい緩いほうがあっているように感じているので今後も緩く継続していくつもりだ。

…最近、スキルアップという面で考えると副業が足かせになってきつつあり、今後どうするかを検討する時期に差し掛かっているのかもしれないと考えている。

iPad Pro 12.9インチのケースを買ったら思いの外、いいぞって話し。

iPad Proを持ち歩く際に裸だとさすがに嫌だなということでインナーケースを購入。

当初は↑のものを買ったのだが 前面にあるスリットからApple Pencilが落ちることがあったり、細かな部品(Apple Pencilのライトニングケーブル・アダプタ)とかを入れるのにちょっと不安だった。

仕方なく細かい部品などの落ちそうなものは別のジッパー付のいれものに入れていたのだがケースだけで完結してくれない点が少々不満だった。 あと夏に届いたこともあって手触りが暑苦しい、という不満もあった。

その後なにで見つけたのか忘れたが↑のケースを見つけ、同じメーカーであることから然程期待せずにAmazonのリンクを開いたところ「そうそうこれが欲しかったんだ!」みたいな気持ちになったのでそのままポチリとした。

前面の大きなポケットもそうだが、背面のポケットにもジッパーがあり、これで細かい部品を別々に管理する必要がなくなり、 このケースで必要なものが完結してくれて助かっている。

思ったよりも収納力が高く、そこそこ物が入るし、備え付けのポーチも一番最初に買った灰色のインナーケースについていたポーチと異なりジッパーなのでものが溢れる心配もなく容量も少しだけ大きく今のところ悪い点が見当たらないくらい満足している。

「納品」をなくせばうまくいくとリモートチームでうまくいく

結論:

紹介する両著は一応続きものではないが1セットとして考えたほうが良い。 まとめて購入、読了するのが一番よい読書体験を与えてくれるだろうと思う。

「納品」は仕事全般に関してのソニックガーデンの流儀について書かれている。 片や、「リモートチーム」はリモートワークについて書かれているかと思いきやリモートチームについて非常に詳細に書かれている。

両著ともに読んだ感想としては

「これはソニックガーデンに最適化されたメソッドであり、どこか一部だけを表面的に真似しても間違いなく失敗する」

ということだ。

特にこれが顕著に感じられたのは「リモートチーム」だった。

リモートチームでうまくいく

読了前の正直な気持ちとしては「リモートワークを行っていない会社でリモートワークを採用するにあたりなにかしらの参考になるものがないか?起業したときにリモートワークを採用したいと考えたときどのような準備が必要か?」を一部なりとも得られると考えていた。

結論からいうとリモートチームを読んでリモートワーク採用のより一層の厳しさを再確認することとなった。 その理由としてリモートワークには以下の3つの点が必要不可欠であり、これを(現在の会社、あるいは自分で起業したと仮定して)実現するのが相当にハードだと考えたからだ。

  1. チームメンバー全員がセルフマネジメントを習得している
  2. チームメンバー全員でコンテキストが共有できている
  3. チームメンバー全員が問題の本質を問うことを厭わない

何故この3つが必要不可欠だと考えたかは書籍に書かれているので敢えて書く必要がないため割愛する。

ただその上でやはり「語学留学をしながら、リモートワークがしたい!」という情熱に火が灯った。

まず1つにセルフマネジメントが自分が目指す理想のチーム像には不可欠であること、そしてセルフマネジメントはどこから急に降ってわいてくるものではなく創意工夫と努力によってのみ培われる類のスキルであること。

そして、何よりも「自分の中でやってみたい人生の目標」の1つである海外で働き、生活するという目的を叶えるための手段として非常に有効的であることの証明に本著が多大な貢献をしたこと。

この2つの理由、より正確にいうならば後者の理由がぼくの中で燻っていたなにかに火をつけたように思う。 リモートワークをリモートワークの文化がないところで途中から採用するのはかなりハードルが高いと思う。 実際、現職でぼくがリモートワークをしたいと考えても、恐らくその実現は厳しいものとなるだろうと予測する。

それはリモートワークが採用されない、ではなく採用されたあとにリモートワーカーとオフィスに出て仕事をする人との間に溝が出来てしまうことに起因する。 最終的にチームメンバー間に高確率で不和を起こすことになり、結果「やっぱりリモートワークはやめよう」となる未来がありありと想像できるからだ。

そういう意味でいうとこれはリモートワークを採用したい人が読む本、ではなくリモートワークを採用出来る権限のあるマネージャー層が読むべきといえるかもしれない。

「納品」をなくせばうまくいく

Web系企業でどうしても受託開発というものは魅力に乏しい。 自社サービスのように自分たちが主役、改善も問題提起も全て自分たちのもの!という楽しさが受託開発では薄い。 クライアントから「全くエンドユーザのことを考えていない」機能の実装を頼まれる、しかもなるはやで…つらい。みたいなイメージとかビジネス形態としてはあまりポジティブな印象を受けることがないと思う。 安定してお金を稼げるから経営層としてはネガティブばかりではないと思うが、実際に手を動かすエンジニアやデザイナーには多少なりとも不満を抱くケースが多いように思う。

この本の中で非常に面白い、感銘を受けた一文がある。 それはこのソニックガーデンのパートナー企業の1つである会社のかたの発言で

「なぜ、システムだけは素人が考えたもので、一回のチャンスで完成させなければならないのか」

というものだ。

世の中には腐るほど沢山の職種があるが、どの職種も失敗が許されている。 ところがシステム開発だけはそうではない、最初から完璧な要件定義を素人に求め、海の物とも山の物ともつかない人間に信頼を担保に全額負担し、しかもそれでいてそのシステムが自分たちの望んだものかどうかは動かしてみないとわからない。 なのにその動かしたときに意図と異なる動きをしていたので修正を依頼すると更なる金額が要求されてしまう。

というような話しのニュアンスのあとでの1文である。

開発会社は「納品をすること」がゴール、依頼者であるクライアントは納品され、実際にリリースされてからがスタート…というこの認識のズレがあると本著では書かれている。 「ソフトウェアの完成」を目指すのではなく「ビジネスの成長」を継続的に求めよと様々な形で本著では主張されている。

そのための月額定額制での受託開発だと。

ただ「リモートチーム」と同じく非常に大きな問題を抱えており、表層だけをなぞるとこちらも大やけどをすることになるのは必定!と考えている。

「なんのために?」という問題の本質、イシューをソニックガーデンは見つけているのだ。 そのイシューの成否はわからないがそれを軸にして全てが成り立っていくわけなので例え他の会社が外っ面だけ真似したとしても真逆の結果が出ても驚きに値しない。

そしてソニックガーデンでの「集中と選択」の経緯やモチベーションについて事細かに書かれているのが非常に良い。 Amazonのレビューでこれを「やっていることやその意味はわかるし応援するが自社で導入するのは難しい」といったニュアンスのレビューがついており、 それこそがこの本を端的に表したコメントだと読了したあとだからこそより一層感じる。

この納品をなくすという考えもあるのだ!、そしてそのターゲット層はこのような人たちだ!という非常にクライアントも選ぶし、自分たちが採用する技術だって選ぶ。 とにかく「本当にやらなければならないこと」を実現するためにありとあらゆるものを削ぎ落としているのが読んでいく内にわかってくる。 非常に刺激を受けるとともにこの本を手に取るひとにとって自社の改善に繋げにくいというデメリットもきちんと書かれているのが好感を持つ。

なによりそれを著者自身が自覚しているのがいい。

まとめ

「納品」も「リモートチーム」もソニックガーデンのメンバーたちだからこそ成功したのだ!という大きな事実がある。 それを踏まえたうえで「では自分たちに足りないのはなんであろうか?」と考えるのが本著を手に取る最大のメリットであるように思う。

もしこの本を読んで「明日からリモートワークやっていき!」とか「これからは納品やめるぞ!」とか言い出すやつがいたらそれはたぶんかなりの危険思考なのでさっさと正気に戻したほうがいい。 そんな本です、実にエモい内容の本なのだけどそれだけに留まらずきちんとその裏側の泥臭い面などが詳細に書かれていてよい。

ところでこんなエモい本を週末に読んで、月曜日会社に意気揚々と出社すると現実とのギャップに打ちのめされること必至なので、週末ではなく平日の夜や通勤時間中なんかにちまちまと読んでいくことをおすすめする。

斑目アフターと姉なるものを買った

Spotted Flower 1

Spotted Flower 1

斑目アフター(もしくは斑目IFルート)は以前から存在は知っていたのだけど何故か買っていなかった。 特に本屋で探したりもしていなかったのだがたまたま今日ふらっと入ったオタク向けの書店で目につくところにおいてあったので衝動買いした。

割りと中身は下ネタというか性にまつわる話しが多くてびっくりする(げんしけんのイメージがあったので)。

とはいえ木尾士目の4年生や5年生に比べれば随分読みやすい。 で性にまつわる話しが多いと書いたが何故かエロさを微塵も感じなくてウケる。

ところで主人公の斑目だけどげんしけん時よりもヘタレさがマシになってカッコよくなってて「斑目じゃない!」と思ってたけど要所要所でしっかり斑目していて良い。 あとたまに真面目になったときに限ってのオチがげんしけんっぽくてマーベラス良い。

げんしけん2代目には当初こういうのを期待していたんだけどそれはそれで駄目だったと思うのでまあいいか。

こちらは設定を除けば一見異形とのほのぼの生活ものかと思いきやエロエロで斑目アフターとついつい対比してしまった。 どう展開させていくのか楽しみな反面、地の文で不穏な空気を主人公が出しているあたりがちょいちょい気になる。 姉なるもの、最高なんですけども眼鏡かけてポニテにしてくれたらぼくはもう何もいうことはありません。

まとめ

たまたま手に取った漫画が意図したわけではなかったのだが対象的な漫画だったことにちょっとしたおかしさを感じた。 斑目アフターが夢落ちでないことを本気で心配しているのでこのまま並行時間軸の斑目に幸あれかしという気持ちになる。 姉なるものはなんていうか…エロくていいね!健全なエロスというか月刊モノで表現できるエロスだからこそ活きる感じがしていて良かった。

エンジニアに向いている人、向いていない人ってどこが分水嶺なんだろうね?

Webエンジニアの最低限必要なスキルってなんだろうか?とぼうっと考えてたらサッカーで例えれんじゃね! サーバサイドはパスやドリブルで、ディフェンスがインフラでGKがセキュリティー、戦略理解はDBやクラス設計力で最後にシュートがフロントエンドだ!

…とか思ってたんだけどめっちゃ伝わりにくい気がしたのでちょっとだけ書いてたけど破棄した。

それはさておき風呂に浸かりながら電子書籍をダラダラと読んでいた際にふと↑のようなことが頭をよぎって「技術力とはHDDやSSDのようなもの」かもしれないとか考えたら思いの外、的外れでもないのかな?と思ったので忘れないうちにせっかくだから残しておこうと思う。

詰まるところ、技術力というのは選択肢(蓄積できるデータ量*スループットの速度)だということだ。

それがより大容量でスループットが速いSSDなら当然お値段は高い、逆に容量が少なくてスループットが遅いHDDは当然安く、また信頼性も低くなるだろうと思う。

ぼく自身はスループットが速くもなければ大容量を誇っているわけでもない。 ただ容量に関しては人並み程度にはあるという認識なので、スループットを高速化していくのが今後の(というか今までも)課題であると認識している。

具体的にはアルゴリズムとか設計やデザインが苦手というかあまり芯を食っていない対応をしてしまいがちなので土台の技術力を補強しないと その上に構築していく技術が伸び悩んでくると最近感じている、というか前々から薄々感じているのでがんばっていき。

ところで昨日まで弊社ではインターン生がいて課題制作を行っていた、無事全員作品を完成させてインターン期間を終了していた。 若く力強い新人が下から追い上げてくるのを見ると実に焦燥感と負けん気が自身の中に生まれて大変良い刺激をもらった、やっていき感ある。

そして件のインターン生とたまたま帰りに同じ電車になって「Webエンジニア(プログラマ)に向いてるかどうかってどこでわかるんですか?」というような質問を受けた。 そのときは「設計がうまいひと、問題の本質を捉えるのが上手なひと、プログラマの三大美徳を備えているひと」というような解答をしたのだけど 今にして思うとこれはちょっと違うように思えてきた。

じゃあ今ならなんと答えるのか?と言われるとまだふわっとしているのだけど「技術に真摯であること」かなと考えている。 その技術でなにを解決するのか、その技術は誰を幸せにするのか、その技術を学んでいく気持ちがあるかなどなど。

100人いたら100人答えが違うのかもしれないと思っているし半年後にもう一度考え直したらまた違った答えが出てきそうな気がする。

そしてインターン生の作品発表の場で質疑応答の時間に「ぼくたちに質問したいことはありますか?」という質問をしておけば良かった!!!とちょっと後悔している。

ネガティブなことを書くのはよくないねって話し。

以前 id:Soudai さんとはてなランチをさせてもらった際に言われたこと。 「ネガティブなことはネット上に書かないほうがいい」という主旨のことを言われた。

当時の自分としては「それはわかってるけどついつい書いてしまいがちなのだよな…」と思っていたのだけど 最近本当にこれはよくないぞ!!!って思ったのでTwitterやブログにネガティブなことを書くのをやめようと思う。

そもそも氷菓でも「ジョークは即興に限る。禍根を残せば嘘になる」って福部里志が言っているし。 ジョークではないが禍根を残すのは自分の精神安定的にもよくないなと最近富みに感じるのでやめようと決心した。

とはいえいきなり0になるとは思えないので徐々に減らしていき、最終的に0にしようと思っている。 ネガティブな発言をすることには何の意味も意義もないし、生産性にも寄与しないのでデメリットだらけだという 当たり前のことを当たり前に行うというだけの話しです。

終わり。 あ、でも多分ゲームのレビューとかで「クソゲーじゃんこれ!!!」とかいうのは無くならないと思います。

面白いと思っていってるんだろうけど全く面白くねえぞ!って話し

他人の振り見て我がふり直せってやつなんですが…

とある人と話していたときに「お前の地元xxxかよ!なんもねえじゃんwww」みたいなことを言っているひとがいました、世の中には履いて捨てるほど存在する「稀によくある」ってやつですね。

多分本人同士はそれなりに信頼感もあるし、それをいっても冗談で済ませられるんだろうなと思いつつも、 そういうことを大声で言っちゃうのってどうなのよ?とも思った次第です。

本人たちが気にしていないのに外野がヤンヤヤンヤと騒ぎ立てるのは野暮の極みってもんではありますが 周りで聞いててネガティブな感情を抱くこともあるよなと思ったのです。 少なくともぼくはこの時なんとなくネガティブな感情を覚えました。

別にぼくの地元がなにもないというのはその通りだし、田舎だと言われれば東京などの大都市に比べれば田舎だろうと思います。 よくインターネット上でネタにされる京都の北のほうに住んでいる方々からは「ああ、あそこって京都市内だったんですねー」とか言われても「うるせえ髪の毛むしんぞ!」くらいにしか感じません。

おそらく発言主は面白おかしく話してるんだろうと思います。 それ自体はわかるんですがどうにもその話しがくっっっっっっそつまんないんですよね。

面白いと思っていってるんでしょうけど実際には1mmも面白くないし面白いと思ってるの本人だけじゃねえの? むしろどこが笑いどころなの? 中学生くらいのときに自分が優位な立場にするために他人を腐したり、貶すやついたよね死ね!!!って気持ちになります。

発言主に恨み…というかネガティブな感情は持っているけどそれはさておきこの他人を貶したり腐したりして上位に自分を持っていくメソッドをいい歳した人間が未だにやっていることに対してむかっ腹というか馬鹿じゃねえの?という怒りが湧いてきたぞって話しです。

落ちません。 以上。