これが仕事というやつかという感じのものが今年から降ってくるようになった
— ᴀʟᴏʜᴀ (@matakucom) January 6, 2020
今年は本当に長かった。
技術の専門職ラインでのシニアエンジニアに昇格してから初の期になるかと思えば、技術面に加えて 1on1 や評価のようなチームマネジメントを担うモバイルアプリチームのエンジニアリングリードとしての期を過ごした。シニアに昇格したらなりますし、しなかったらなりませんと実は言ってた。
とはいえ、なろうがならまいが今年やることは明確で、それらはこんなもの。
- モバイルアプリ (Android/iOS) を通じた課題解決及び価値提供
- モバイルアプリの課題解決のための Web API の設計や実装
- モバイルアプリを通じて価値提供しようとしている人たちの課題解決
- Android アプリがより高速に価値提供するための開発基盤づくり
- アーキテクチャや設計、CI/CD、ドキュメント整備 など
Android アプリ周りでやったことは、社のテックブログや medium での記事でまとめて放出した。加えて、お迎えしたものたち。
1on1
1on1 は結構序盤に悩んだところで、忍耐力が試される場だなという感想。
「ヤフーの1on1」を読んだり、今まで受けた感覚を総動員してみた結果、どう振る舞うかと主体を自分においていた意識を、相手のための場なんだと認識することによって、すとんとはまり 2020 年を迎えた。基本的に聞き手になって気付きを得るように掘り下げていくというのを頑張ってたけど、フィードバックもするようにした。塩梅はまだ分からない。
評価プロセスに仕組みとして組み込まれているのもあって、結構そこに沿って会社というスコープでかっちりやりすぎたかなという反省がある。まあ別に義務としてやってるわけではないんだけど、リモートワークになったので気軽に同期的に話しづらくなったこともあり、ちょい肩の力が入っていた。もう少しイメージとしてはそこと切り離した場にしたい。
ヤフーの1on1 読んだらさんまさんを見る目が変わった
— ᴀʟᴏʜᴀ (@matakucom) January 25, 2020
評価
別に僕一人ですべてやるものではないしサポートもあるんだけど、胃は痛い。
社では評価基準として何を指すのか明記されているので、入力として評価資料突っ込んだら結果を出力してくれるなにかができるんじゃないか、というのをずっと考えていた。1 年やってみて、書かれていることの正当性の判断や、実績を 100 % 伝えてもらうための促し、という領域において評価者は力を発揮せんといかんのだなと理解するに至った。
コミュニケーションの円滑化
Web アプリケーションの開発運用チーム、職種では販促/開発ディレクターやデザイナー、CSチームにおける、主にモバイルアプリ周りのやり取りにおいて、適切な誘導、称賛、業務の効率化というのを見える範囲で動いてた。全体に対して自分から取りに行ってたら延々とできるし、これだけやるのは自分自身の本質的な仕事ではないので、守備範囲を決めて通知ベースで動くのが良い。
元々やってたといえばそうだけど、そんなに意識的にはやってなかった。
採用活動
採用チームの方々にいつもお世話になっている。今年一番お世話になったチームかもしれない。選考に加え、募集要項の見直しやスカウト活動というように幅を広げていった。
エンジニアリングとマネジメントの領域を区別して考えていたけど、採用活動にあたってこちらからアプローチするにあたって情報量を多くするためにアウトプットしていかないとな、という意識を持つように、エンジニアリングとマネジメントは相互作用するなというイメージを持つきっかけになった。ただ今年に関してはまあまあという感じだったので、来年はもうちょっと出していきたい。
モバイルアプリエンジニアが価値提供するにあたっての壁の除去
スコープを iOS アプリまで広げてあれこれやっていた。技術的な面でいうと、Web API はある程度責任を持つようにしており、iOS アプリに関してはシニアエンジニアが担ってるので特に何もしてない。厳密にはシニアエンジニアのみでなくチームとして取り組んでいるものもあるのでなおさら。
マネジメントラインとしての振る舞いはどうだったかというと、まだこの分野においては客観視できる材料が揃ってないのと、評価結果もそういえば来年なのでなんとも言えん。なんとも言えんと思っているからこそ、こうやって言語化することで整理し、今後客観視できるようにしておく。
2021 年の仕事
役割は変わらない。モバイルアプリに関わるチームの価値提供を加速させることで事業成長へ貢献する。そのための技術的な課題発見をし解決する。
気付けばずっとモバイルアプリのプラットフォームチームとして掲げてきた、高速な価値提供のための開発基盤及びそれを継続的に改善していく組織が出来てきた。ということで、一歩引いた視野で高速な価値提供ができる仕組みづくりへ踏み出さないといけない。
価値提供における不確実性を軽減する動きを考えながら走っていくことになるのだろうけど、見積もりやふりかえりといった不確実性へのアプローチは組織によるサポートもあり、仮説を立ててデータを見ながら検証していくプロセスにおける不確実性を減らしていこうかな。
とはいえ、2019 年を思えばまさかエンジニアリングマネジメントへ踏み出すとはという肌感なので、環境で変わることもあるなあと実感する。どんな形であろうと技術で課題を解決していくというのを中心に添えられれば良いし、組織におけるマネジメントに全振りする気はない。分からないことだらけ。
ConstraintLayout 1.1.0 で constraintCircle という制約が追加されていました。これはある起点に対して円形に制約を付与できるものなので, 円形のレイアウトが ConstraintLayout 1 枚で実現できるようになります。
上で言う中心の View にある周りの要素たちは, 以下を指定することでレイアウトが決まります。
- layout_constraintCircle で基準としたい View を指定
- layout_constraintAngle で配置したい角度を指定
- layout_constraintCircleRadius で基準の View から取る距離を指定
タップしたら円形の子メニューが出るようなレイアウトは View の onClickListener と View の VISIBLE を操作することで, これ 1 枚で書くことができますね。
今回は画面の中心に置いた View を基準にしてレイアウトを組んでみました。簡単に書くと以下のようなコードです。