黒橡開発室

R:050 G:044 B:040

今年の目標

最終的には3つ目の健康であることにたどり着くことが目的です。
ここ1・2年で、仕事で上手くいかなかったときに真っ先に体調に悪影響が出るということがはっきりと分かったので、1つ目の目標に取り組むことで少しでも仕事で生じるストレスを解消していく必要があります。
2つ目の目標では、自助努力だけでどうにもならない局面がそう遠くない未来やってくることが予想される(すでに来てる)ので、
周囲の意識や仕組みを変えることだけに囚われず、いざとなれば自分の身を置く環境をいつでも変えられるような状態を用意できるように動きます。
3つ目は言わずもがなです。心身が元気じゃないと自分の納得のいく仕事にならない上、何よりプライベートに大きな影響が出るため極力避けたいところです。


1. 仕事を通して取り組むこと

書き出してみるとめっちゃありますね・・・でも全部大事。

  • チーム開発の概念を整備〜布教する
  • 仕様に関するドキュメントの作成・保守の方法を布教する
  • コーディング規約の策定・布教、PSRの理解を深める
  • 環境構築手順の整備
  • テストの手法を整理して布教する
  • デバッグ環境の整備〜布教
  • バージョン管理環境の整備〜布教
  • 自動デプロイ環境の整備〜布教
  • レビュー文化を根付かせる、レビュアーとしての経験を積む
  • チケット駆動開発を根付かせる
  • 基本設計〜詳細設計のスキルアップを意識する
  • TL経験を積む

現状、下3つを除いてどれも今の環境には存在しません。
かろうじてチケットでタスクを整理する取り組みは観測範囲で2案件あるようなので(うち1つは自分の担当案件)、まずは実現までのハードルが低そうなものから取り組んでいこうと思います。
また、去年自分が関わった新規案件ではいくつか局所的ながら実現できたものもありますが、まだまだ発展途上なのでより最適化していきたいです。
(Git導入・レビュー制度・仕様面や環境構築に関するドキュメント作成・チケット駆動開発・基本〜詳細設計・TL業など)

また、入社してから知ったのですがそもそも1案件を複数人で開発すること自体が少なく、レビュー文化やバージョン管理などはほとんど存在していないので、
制度として根付いてそれを回していけるようになるまでにどれだけの時間がかかるかは正直言って想像がつきません。

それでも取り組むべきと思うのは下記の問題に向き合い改善することで、自分も周囲も仕事のコストが大きく下げられると考えたからです。

  • ドキュメントを残す習慣がなく業務の属人化が進んでいる(実装して終わり・保守や引き継ぎの意識が薄い)
  • ドキュメントを残す習慣がなく前任者しか把握していないことを知るには前任者を捕まえて聞き出すしか方法がない(前任者自体いないケースも)
  • バージョン管理の概念がないため本番・テスト環境に大量のhogehoge_20210102_bakのようなファイルが存在する
  • バージョン管理の概念がないためソースコード編集履歴目的と思われるコメントアウトされたコードが大量に存在する(bakファイルの件と相まって影響範囲調査でgrepすると大量のゴミが混じってしまい調査工数がかさむ)
  • バージョン管理の概念がないためどの環境に誰がいつ何を入れたのかを把握する方法がない
  • バージョン管理・特に環境ごとにブランチを分けるという概念がないため、一つのプロジェクトリポジトリにテスト環境用のコードと本番環境用のコードが平然と混在している
  • 自動デプロイの概念がないため環境への反映漏れ・間違いが起きやすい
  • 自動デプロイの概念がないため障害が起きた時に即座に切り戻すのが難しい
  • 本番・テスト環境間の同期が取れておらず、検証環境に入れた変更が本番環境でも動作する保証がない(裏を取るための調査工数がかさむ)
  • 全社的なコーディング規約が存在しないのでコードの品質が実装者個々人の良心に依存しすぎる
  • レビューがないためコードの品質が実装者個々人のスキルに依存しすぎる
  • レビューがないため客観的なフィードバックを得る機会がなく学習・成長機会が乏しい
  • テスト=画面越しの結合テストのみ・全て手動なので時間がかかり過ぎる、ミスやケース漏れも起きやすい
  • テストの時間がかかり過ぎるので必要なテストケースを網羅し切れず障害につながりやすい
  • そもそもテスト設計が事前にされることがほぼなくケース漏れが頻発している
  • 自動テストの概念がないためデグレに気づかず本番環境に上げてしまいがち

開発に関わるものだけに絞り込んでも今の環境はこれだけの問題を抱えているんだなという認識を持っているのですが、
最も問題なのはこれだけのことが起きていても誰も行動を起こして改善する気がないという事実です。
誰もこれ以上タスクを抱える余裕がないことや、開発環境やコードの品質の向上を実現しても会社にそれを正当に評価する仕組みが存在しないことも要因の一つかなと想像しています。
そりゃご褒美がなかったら誰もやる気出さない。
ただ、様子を見るに「どうにかならないかなー」「もうちょっとうまくできたら良いんだけどなあ」という意識は全くないわけではないみたいなので学習コストがかかり過ぎず・かつ直接的に今持っている困りごとを解決できそうなところから攻めていって、小さな実績を積み重ねつつ信用を得られるよう立ち回っていきたいと思います。
会社自体の体制の話になってくると自分一人で出来ることはたかが知れているので、自分がどこまでやるか・目標を何とするかは明確に決めておいた方が良いように思いました。
その辺は書くと長くなりそうなのでいずれ別記事にしようと思います。


2. いつでも転職できる準備
  • スキルの棚卸し
  • 転職の目的を明文化できるように考えを整理
  • 武器の選定して磨く
  • 資格勉強して体系的な知識の習得
  • ポートフォリオサイト作成
  • カジュアル面談を受けてみる

あえて見出しの中に「転職」という文言を入れましたが、先に結論から言うと今は転職するタイミングではないと思っています。
今の環境で頑張れるうちは今できることを一つ一つやり続けていけばいずれ良きタイミングが来ます。
次のキャリアを目指すとしてもまだまだ自分は未熟です。スキルも経験も圧倒的に足りていない。

一方で、前述の通り今の環境には何もかもが不足しているのでそれらに起因する精神的な負荷は大きいです。
いつ身体が限界を迎えてもいいように・いざというとき適切に休職->退職->転職のコンボを決められるように準備しておくことは精神衛生的にも非常に効果的です。

スキルの棚卸し
今までのエンジニア業で何をやって来たのか、何が出来るのかを人に見せられる状態にしておきます。幸い前回の転職で作った職務経歴書があるのでそれに肉付け・ブラッシュアップしていけばさほど時間をかけずに用意することができそうです。こういうのは定期的にアップデートするのが大事。

転職の目的を明文化できるように考えを整理
履歴書や面接で言うところの「志望の動機は?」の答えに相当するものの準備です。
なぜ自分は転職をしようと思っているのか、自分が転職して新しい職場に期待することは何か?
日々考えを巡らせてはいるもののパッと今すぐ他人に齟齬なく説明できるかと言われると難しいです。

武器の選定して磨く
一つ目のスキル棚卸しともリンクしますが、自分を売り出すための武器を用意する必要があります。
これまでにやって来たことはより一層精度を上げていきます。自分であればPHPJavascript、設計やテストの技法についてでしょうか。
高い需要が見込めるものについては積極的に新規学習を進めます。AWSやTypescript・Python、クリーンアーキテクチャテスト駆動開発など。
学習が進んだらある程度まとまった成果のアウトプットをいくつかweb上に公開していきます。
一つ一つ大層なものは目指さない様に、回数と頻度をキープすることが大事(去年はたいしてキープできなかった)

資格勉強して体系的な知識の習得
初学者の頃、基本を叩き込む目的でJava silverを取得して実感したのですが、体系的な知識を身につけるのに資格勉強はかなり効果がありました。
しばらく資格取得からは離れて実戦で勉強することがメインになっていましたが、今取り組むとしたらこの辺でしょうか。
aws.amazon.com
www.pythonic-exam.com


ポートフォリオサイト作成
学習履歴のアウトプットの数が揃ったらそれを取りまとめて公開可能なポートフォリオを用意します。
サイト自体はシンプルな静的ページでいいと思います(ただしホスティングの仕組みや何を使っている・なぜそれを使っているかはきれいに説明できるようにする)
デザインはうまく作り込めたら良いんでしょうが自分はデザインについては素人なので・・
でも見る人の印象に大きく関わる要素なので機能美的観点ではこだわれると良いかもしれません。UI/UXは頑張る。
また、次回の転職活動ではポートフォリオを応募条件としている会社に積極的に応募出来るといいなと思います。

カジュアル面談を受けてみる
自分の市場価値をもっと客観的視点から測る癖はつけたほうが良いなと常々思っていたのですが、今の環境に身を置くことでよりそれが顕著に感じられる様になっています(理由については別記事で)


3. 健康について

記事が長くなって来たのでここでは簡潔にまとめます。

  • 日常で感じるストレスの原因を分析する〜文章に残す
  • 睡眠の質を向上・維持する
  • 休職の準備
  • 医者に頼ることも考える

メンタルのバランスをうまく取りながら仕事もプライベートもやっていくというのは一人の力だけでは非常に難しいことなのかもしれません。
適切に他者にアラートを出してヘルプを要請できる立ち回りを意識してやってみます(苦手)


あとがき

ぐだぐだといろんなことを書き散らしましたが、今年も自分の行動指針は変わりません。

今年もどうぞよろしくお願いいたします。