それがいいことの序章です

楽しいことならいっぱい夢見ることならめいっぱい

セルフワーキングアグリーメントを育てたい

こちらのPodcastを聴いたことがきっかけで、セルフワーキングアグリーメントについて考えてみた。 ワーキングアグリーメントの話以外にも、非常におもしろい話なのでぜひ聴いてみて欲しい。
anchor.fm

ワーキングアグリーメントについての説明には割愛するが、セルフワーキングアグリーメントはざっくりと「仕事をする上で自分が意識したいこと、大事にしたいこと」のようなニュアンスとして自分は捉えている。
意味合いの正確さはさておき、「仕事をする上で自分が意識したいこと、大事にしたいこと」を整理して言語化しておくことは自分にあっていそう。意識しようとしても忘れてしまっていたり、忙しさやその時の感情によっておろそかにしてしまうことがある。

頭にシュッと浮かんだ段階で走り書きしてみたものだとこんな感じになった。

  • たのしく開発をしよう
    • 原点を忘れない。モノづくりは楽しい。
  • 笑顔でいよう
    • 笑顔はいいことの序章です。
  • 素直でいよう
    • 自分自身に正直であろう。
  • 常にあいての新しい側面を見つけよう
    • 決めつけると新しい側面を見せてもらえない
    • 自分の停滞も始まる
  • ルーズボールは全力で拾いに行こう
    • 人生にアウトオブバウンズはないよ
  • だれに、なにを、どのように、を意識する
    • コミュニケーションも、設計も、なんでも
  • 分からないこと、知らないことは、積極的に聞こう
    • お互いの成長機会につながる
  • 適度な自信と充分な謙虚さを持とう
    • どちらも大事
  • 期待値のすり合わせをしよう
    • もやもや・不満はここが原因のことが多い
  • 良いループが回ることを意識しよう
    • やっておわりではない、フィードバックを得よう
  • 健康第一
    • 無理しない
  • 最後は人柄
    • なにはともあれ自分の思う良い人たれ

言葉として整ってなかったり粒度がバラバラだったりとまだまだ稚拙だけど、シュッと浮かんだものはそれなりに自分の中で意識していることでもあると思うので大事にしたいと思ったし、育てていきたいなと思う。いつか振り返られるように、種の状態として残しておこうついでにブログにしてみた。

最後に、元ネタがあるものを簡単にいくつか紹介したい。

笑顔でいよう

僕はMr.Childrenが大好き。これはPADDLEという曲の歌詞が好きでいつも意識している。 ちなみにブログのタイトルもこの歌詞から取っていたりする。いい曲。

常にあいての新しい側面を見つけよう

これは僕のバイブル的な小説、金城一紀さん作品の『映画篇』という小説から参考にしている。 この小説の中のセリフで、以下のようなものがある。

「まぁ、人であれ映画であれなんであれ、知った気になって接した瞬間に相手は新しい顔を見せてくれなくなるし、君の停滞も始まるもんだよ。(中略)」

出典: 金城一紀『映画篇』

これがめちゃくちゃ好きで、人生レベルで意識していることでもあるが、仕事であれ組織であれ技術であれ大事だなと思っている。

ルーズボールは全力で拾いに行こう

これは完全に部活でバスケをやっていた影響である。ルーズボールを拾わないとそれはそれは怒られるのである。
仕事では、誰がボールを持っているかわからない状態のものが意外と結構あったりする。仕事もバスケも、自分ができないことをできるメンバーがたくさんいる。積極的に拾ってシュートを打つもよし、パスをするもよし、試合を前にどんどん進めていくスタンスを常に持っていたいと思う。

最後は人柄

これはなにかのブログで見たワードなんだけど、今となっては見つけられなくなってしまった… 1回この言葉を見つけてから、すごく自分の中に残っていて、今では座右の銘を書くとき言うときはこれを言うようになっている。捉え方によってはあまり良くない印象を与えるかもしれないけど、自分の中ではかなりしっくり来ている。ここももっと言語化をしていきたい。

おわりに

みんなも大なり小なりセルフワーキングアグリーメントにあたる意識している、あるいは意識したいことがあるかもしれない。 ぜひとも聞かせて欲しいし、良いものは積極的に取り入れたい✌🏻

ポジティブでありたい話

とくにこれといったきっかけはないけど、過去に妻と話したPodcastを聞き直してみた。

podcasts.google.com

ストレングスファインダーの1位が「ポジティブ」だった僕が、ポジティブについてあーだこーだ話しているんだけど、自分で話しているので当然といえば当然だが、めちゃめちゃ頷きながら聞いた。

ここで話している「仕事でもスポーツでも、楽しんでいるほうが実力が出る」という持論(自分に当てはまるだけで万人がそうとは思っていない)は、いろんなタイミングで話すことがあって、それだけ自分の中では、無意識に様々なことを楽しむ方向に倒しているんだなと改めて感じる。これは自覚していることでもあるので、意識的にやっていることでもあって、大抵のSNSのプロフィールには「楽しく開発しています」なんて書いていたりする。

少し違う角度で「楽しい」について考えていることを言語化すると、自分の中での「楽しい」は、「楽をする」や「好きなことだけをする」といったこととは少し違いそう。
自分の中の「楽しい」は、スラムダンクの湘北vs豊玉で、南が言う「勝ったほうが100倍楽しいもんな」に近いんだと思う。すべてが勝ち負けではなくって、何かを達成するために、成果が出るために、誰かを喜ばせるために、そういう類いのことのために、ときには大変なことをするというのもまた、良いものじゃあないかとボカァ思うわけである。

「ポジティブは意思」の話は、自分でしておきながら忘れていたが、やはり良い話だった。
ここで言う「ポジティブ」は「なにごとも前向きに考えよう」といったことではなく、悲観的に捉えなくても良いよねくらいのニュアンスなんだけど、うまく言語化ができていない。言語化したい〜。語弊が生まれそうではあるがやはり「楽観的」のほうに近いのかもしれない。

小さいところからで良い、意識して意思を持ちたいものである。
Podcast内でも自分で言っているが、意識的にポジティブであろうとするのは、案外きついものでもあったりする。それでも僕は、ポジティブな自分でありたいし、周りもポジティブになればなお良いと思う。正のループを回していこうな。
よく話に頷いたり、よく笑ったり、言葉に出して褒めたり、そんなんでよい。ポジティブは細部に宿る。(言いたいだけ)

流川の「今日もあれやりましょーよ、オレたちはってやつ」ってセリフを思い出す。ポジティブなチームは強い。

「ポジティブは意思」の話をしようと思ったキッカケの投稿はこちら。↓

youtrust.jp

 

 

いやはや、スラムダンクの映画が楽しみで仕方ない。

書くことに対するハードルを下げる話

スタイルは確立できてないけどラフに書く練習をする。スマホでポチポチ書いてるので今風(?)である。

15分以上時間をかけないぞ、と決めたのでトライアタックで挑む。

 

なんでブログを書くハードルが自分の中で高いんだろうと考えてみると、真っ先に「書くネタがないな…」という理由が浮かんでくる。たぶんこれは建前で、本音は「誰かが読みたいであろう内容をカッコつけて書けるほど煮詰まったネタがないな」なんだなと思う。恥ずかしながら…。

ここを取っ払うとガツンとハードルは下がりそう。

 

もともと書き物をすると、文字数が多くなりがちなタイプなので、書くことはどちらかと言えばと言わずに好きなタイプだと思う。ただ、インターネット上でのみ自分を知っている人からすると、書いた内容によって少なからず自分の人柄などを脳内で補完されると考えると、やはりカッコつけたくなるものである。

 

大義名分があれば意外とこういうのを乗り越えられるタイプだと自己分析しているので、自分ハックは可能そう。自分ハック大事だよね。

今日、たまたま仕事の実装で同僚に壁打ちを頼んで話してると、話しながら自分で自己解決する部分があり、話すのって大事だなと再認識するとともに、「思考するには脳みそは狭すぎるな?」という気持ちになった。そしてこの「思考するには脳みそは狭すぎる」という考え、めっちゃ自分ハックとしては刺さるのであった。

 

きっとここの感覚は人それぞれな気がするが、ブログを壁打ち相手のように使い、脳内の思考を整理するのをやるのは合ってそう。やっていくぞ!

カッコつけたくなる、というのだけは、頭をきっとよぎるけど、整理したいことはたくさんあるので気にせずにやっていきたい。もちろんあわよくば、なにかしらフィードバックが返ってくると最高そうだがそれは考えないようにする。

 

書いてから15分は過ぎててスタートからアレだがこういうのも気にしないのである。書いてるからエライのである。

 

最後に言語化したい脳内で溜まってる話を置いておき、次回以降に繋げる。

  • scrapboxが自分の脳内整理に合ってる話
  • 私の中の、やるべきこと、やりたいこと、できること、の捉え方
  • チームで価値を出すということの私の感じ方
  • モデリングとイラストが似てるって感じた話
  • なぜと課題とドキュメント
  • だれに、なにを、どのように、は使える
  • 雑談レベルで話す新卒に読んで欲しい3冊

 

実はお風呂で書いていて、のぼせてしまいそうなので、以上、はてなブログスマホアプリの書き心地が良くてビックリしている私からでした。

ツイートで振り返る2021年

まめに振り返りを記録するタイプではないのでツイートを見返しながらザーッと1年を振り返る。 もうちょっとまとめたのは気が向いたらきっとたぶん別途書くぞ📝

1月

解像度が低かったので達成度は謎である。反省。来年は解像度の高い目標をたてるぞ!

忘れてたし達成してない、これ本当にしたいのでメモ 📝

今年は1年を通してテストに入門した1年だった、年始からやっとるな?

夏に伏線を回収した 👍🏻

Hiltの記事書いた。Daggerと仲良くなった。

2月

DroidKaigiでも同じようなこと言ったし、思想としてずっと変わってないな。

オインクが好きですぐバッカーになったやつ。どれもよかた!

3月

グループ会社の人も巻き込んでMDG勉強会を始めだしたのがこのころ。たくさん話聞けて言い出しっぺの自分が1番楽しんだ気がする 😂

2月3月あたりはiPadでイラスト(写真のトレースメイン)にハマってて楽しかったのでまた再開したい!

4月

ストレングスファインダーやったのはなんかよかった!

チェアリングに入門した、このビールうまかった 🍺

今年の年末層大掃除でだいぶこのモジュール構成に近づいてきた。

5月

🎉

個人アプリのアプデ、ここで止まっているので来年は手を加えたい気持ちがある。

わたしです!たのしそう。

6月

定期的に自分で見返してるのでお気に入り。Compose時代には必要ないんだけれどもw

この本よかったけど振り返り何も書いてないな〜もったいない!

すぐバッカーになったやつパート2。最近発売されましたね!最高です!!

Composeの雰囲気をつかめたやつ。やっぱり手を動かすのが好きみたい。

ComposeのCanvasも楽しかった!

7月

いい記事そう、また見返そう 📝

まさか翌日に出したCfSが通るとはこのときの私は知らなかったのであった 👏🏻

今でも様々なところで大事だなと感じるので良い話!

8月

何回かとったけど更新が止まっちゃったけど楽しかったのでふとしたときにまた話すのも良さそうだな〜

初採択!泣いた(泣いてない) 👏🏻めちゃ嬉しかった!

わかる。(自分で書いているのでそれはそう)

9月

永遠に考えているが難しいけど楽しい部分でもある。

キャンプデビューした!!!!来年はたくさんいきたい!!!

10月

クライアント(iOS/Android)リードのポジションになったのでiOSをキャッチアップし始めたころ。この本とても良かった。

グループ会社で表彰してもらった 🏆

最高の体験でした!DroidKaigiありがとう!!

11月

えらい 👏🏻

AndroidiOSは山が近いと感じている。

12月

積極的に自分を褒め始めた 👏🏻

優勝しがち。

来年も安泰です!

まとめ

Twitter検索でfrom:_rmakiyama until:2021-4-1みたいにしてザッと振り返ってみた。
良いなと思ったものは積極的にツイートしたりしているので、それを改めて思い出せたのも良かった 👍🏻

いろんな変化もありながら相変わらず楽しくやっていけていて、今年もハッピーでした!来年はもっと楽しくなるよねハム太郎!!!

MockKを使ってて便利だった関数たち

MockKにお世話になっていて、便利だった関数をいくつかご紹介します。

confirmVerified

verifyですべての呼び出しが検証されたかをチェックすることができます。

たとえば「ボタンがクリックされたときにアナリティクスイベントを記録する」という挙動をテストしたいというケースで、このようにテストを書いたとします。(ViewModelでクリックイベントをハンドリングしたとする)

val analytics: AnalyticsManager = mockk(relaxed = true)
// テスト対象を生成
val viewModel: HogeViewModel = createViewModel(analytics = analytics)
viewModel.onClickButton()

verify(exactly = 1) {
    analytics.logCustomEvent(Event.TapButton)
}
// analyticsの呼び出しすべてを検証したかをチェック
confirmVerified(analytics)

このとき、HogeViewModel#onClickButtonを呼び出した際にanalyticsに対してverifyで検証したもの以外の呼び出しがあったときに、confirmVerifiedは例外をスローしてくれます。

予期せぬ呼び出しがないかや、検証の漏れがないかという場合に便利です。

ofType

マッチャーのひとつで、値の型をチェックすることができます。

通常の検証ではeq(value)が使われますが、ものによってはequalsの比較の検証が難しい場合もあります。

val analytics: AnalyticsManager = mockk(relaxed = true)
// テスト対象を生成
val viewModel: HogeViewModel = createViewModel(analytics = analytics)
viewModel.onClickSave()

verify(exactly = 1) {
    // Event.Saveという型のイベントが記録されたことを検証
    analytics.logCustomEvent(ofType(Event.Save::class))
}

このように書くと、AnalyticsManager#logCustomEventに渡したパラメータがEvent.Saveであることを検証できます。

withArg

こちらもマッチャーの一つで、検証するパラメータについてコードの実行が可能なため、ofTypeより’柔軟に検証することができます。
こちらはMockKVerificationScope内でのみ使うことができます。

val analytics: AnalyticsManager = mockk(relaxed = true)
// テスト対象を生成
val viewModel: HogeViewModel = createViewModel(analytics = analytics)
viewModel.onClickSave()

verify(exactly = 1) {
    // 引数についてAssertで詳細に検証
    analytics.logCustomEvent(withArg { event: Event ->
        Assert.assertEquals(1234, event.params["user_id"])
        Assert.assertEquals("hoge", event.params["type"])
    })
}

メソッド呼び出しの引数についてテストしたい場合に便利です。