年が明けてから振り返るスタイル...(いいわけ)
さて2023年は目まぐるしく変わるAI界隈や結局戻るんか~いのOpenAI社のお家騒動、Microsoft+OpenAIの陰で後れを取ったかに見えたGoogleはGeminiを出してきたりとなんだかいろいろありましたね。年末年始は例年通り様々な方のふりかえりや新年の抱負、買ってよかったものシリーズなどを拝見していました。
今年も自分用に振り返ってみます。KPT法のKeep/Problemあたり、YWT法のYatta/Wakattaのあたり、Fun/Done/Learn法の各要素のあたりに一応なります。
まずはおしごと関連から。前の年はこんなことを書いていました。
おしごとでYattaこと・doneしたこと
関わったプロジェクト数は5つほどだったのであまり変わらなかったですね。
WebAPIがバックのWebコンテンツシステムを拡張していくおしごと
事業部で開発して出しているドキュメント管理のパッケージ製品にデータを登録してDBの代わりにデータソースとして扱い、WebAPI経由で通信して内容を表示するシステム。JavaScript+PHPによるWebアプリケーションでもあり、コンテンツがメインの社内Webサイトでもあるという両方の側面を持っています。通信部分の部品、Webアプリ部分は僕が前にPHPに入門したころに作った軽量級のWebフレームワークを使っています。
規模としては大きくないシステムですが全社ポータルサイトでも会社の歴史やらの紹介で時々取り上げられるので、周囲に聞くとコンテンツを見たことのある人も意外にいたりして良かったですね。
- クラウド移行の話が出てきたのは結局VMware Cloud on AWSになり、今までの環境がそのまま移行しただけなので何も違いなし、AWSに触る機会発生せず(笑)
- 新マシンのインフラ構築がけっこう手間取って開発に影響が出たり
- PHP7から8へのバージョンアップを実施。nullチェックが強化されたり良いことなんですがけっこうあちこちでエラー潰しが。特定操作をしないと発生しない処理で問題が隠れていたりしました
- 機能追加は時々発生するのでコードレベルで事前に精密に調査して見積して実施、品質を維持
- 継続的に読んでいる設計やアーキテクチャ、より良いコードの本も役立ちました
- 僕の直属のグループの案件ではないので今後離れることも意識して、昨年は開発メンバーのスキルアップ教育。開発のお題を出したりコードレビューしたり、お勧めの書籍を紹介したり。こちらは完了には程遠いのでまだまだ...
と、人への技術伝達という流れが入った1年でした。いったん作った機能が別機能に統合されることになったので2024年はこちらをシュッと片付けていく予定。
そして楽しみなトピックといえば、会社がお金を出して社内で試行が始まったGitHub Copilotを試行してみるイベントに、このプロジェクトで申し込みました。僕の事業部では参加したのは我々だけなので、社内でも社外でも何か情報シェアの機会があればと思っています。すでにリリースされて動いているプロダクトの機能拡張ではどれぐらい役に立つのか、半信半疑なところもありつつ楽しみです。
ザ・業務システムのPHP継続開発のおしごと
リリースしてグループ社内で本番稼働している、業務仕様がめちゃんこ複雑な業務システムのおしごと。サーバーサイドはPHP
、独自要件や背景があるのでフレームワークは上の案件と同じく僕作成のフレームワークで稼働中です。フロントは開発開始当時はそれほど膨らむ予定がなかったり事情があってJavaScript
+伝統のjQuery
で作り、今でもここを最初からReact
かVue.js
でやっていたらどうなるだろう……と思いつつも処理が複雑すぎて移行のコストも大きいし要求を満たしているのでそのまま、保守といいつつなんやかんやで機能拡張が続いて今に至っています。
- ついに仕様追加・変更が280回を超えた!
- クラウド環境への移行はサーバーがそのまま移動しただけで何も変化なし。
- 大イベントとしてはSQL Serverのアップグレードを実施。やり方がネット上の情報でも複数あって困った。時間短縮のため早朝から作業開始できたりするので、リモートワークは便利です。
- もうひとつ大イベントとしてPHP7→8へのバージョンアップを実施。最新の8.2系だと動かないけど8.0系だと大丈夫なライブラリがあったりして困ったり。やっぱり逐一動かしていくといろいろありました。どんなにコード品質に目を配っていても、ゆるいPHPだからこれまではなんとなく動いていた箇所というのはあるのだなあと思ったり。
- リリース回りはJenkinsで自動化してCI/CDは整備済み、ここは助かっています。ひとりDevOps、ひとりアジャイルを実行...
- 大きめの開発テーマは事前に精度を細かくして変更箇所を洗い出してリスク込みで見積もり、確実な実行を継続。一人だとコミュニケーションロスがないのでやりやすい。
- 継続して読んでいる本では、2023年ぶんでは『ちょうぜつソフトウェア設計入門――PHPで理解するオブジェクト指向の活用』や『読みやすいコードのガイドライン』『Good Code, Bad Code』あたりが非常に役立ちました。
- このプロジェクトも別部門の他の人に引き継いでいこうという流れになり、下期からアクション開始。受け入れて開発環境整備、Teams整備、僕がいなくても大丈夫なように割としっかりしたドキュメント作成、実作業を担当してもらうことに。小さな改修テーマならもう独力で大丈夫なぐらいまで来ました。
と、こちらも人への技術伝達が入った1年でした。ひとつ上のおしごとに比べるとこちらは引継ぎが順調に進みました。予定されていた大イベントのDBアップグレードとPHPバージョンアップは予定通り完遂できてよかった。
2024年は抜けても大丈夫か....でも大きい開発テーマもあるし少し関わった方がいいのかも...と様子見のところです。
エンタープライズな大規模プロジェクトのおしごと
一昨年からの続きでかけもちで合流して続いている社内のおしごと。かなり大きいシステムの作り直しの大規模プロジェクト、参加人数も多く体制図もでかく、事業部をまたいであちこち、パートナーさん企業も含めてあちこちから集まっています。オンラインの定例ミーティングもえらい人数です。
バックエンドは伝統のJavaでもいいからしっかり標準を定めて作ればよかったのにな...と自分の知見からは思う所、プロジェクト開始時のころにバズワードに飛びついてしまったのか、エンプラ界隈の大企業だとなぜか話題になるローコードの技術を使って作りこんでしまっています。将来には技術的負債にならないかと思う所ですが、一時的な手伝いで入っているスタンスなのでなので抜けた後は知りまへんというところ。
- 関連メンバーを率いて負荷テスト・性能テストのタスクに入る。久々にJMeterやSeleniumに触る。大プロジェクトなのでここでは調整役に徹する。
- ここでローコード技術が開発者から隠蔽しているところで動いている黒魔術部分があまりに大きくて愕然。内部でReactを動かしているのに長所をまったく活かしていなくて愕然。
- 様々な人の頑張りの甲斐あって無事にリリース完了。徐々にプロジェクトから離任していく人が出てきて人数が減っていく。
- その後は運用保守フェーズになって、リーダー補佐の立場でリリース後の細々したタスクをやったり
- 大きい改修テーマに関わることになって方式設計に参加したり資料を作ったり説明したり...
このおしごとも自分のやりたい方向性とマッチしているかというとまったくしていないのですが、こういう大プロジェクトに限って業績を高評価されたりするのだから皮肉なものです。所属部門と事業部の売り上げの数字には貢献するので割り切ってやっていました。
またリリース後はある程度余裕が出てきたのでよかったですね。並行した他のプロジェクトや自分の部門部署の活動、自分のスキルアップのための時間に充てながらやってきました。
LowCodeとかNoCodeとか、技術が分かってない人、コードに対して後ろ向きな人に受けそうなバズワードが大企業にいると注目されがちなのですが、実際には制限だらけでソフトウェアエンジニアリングの観点からは有用性に大きな疑問があります。主催している勉強会でも1回テーマで取り上げたり、もっと自分が本来の力を活かせる仕事がしたいことはことあるごとに会社にも訴えたりもしています。
実際、2023年は「生成AI」という超特大バズワードの話題に埋もれてローコードやノーコードの話はずいぶん聞かなくなりましたね。AWSが2020年にリリースしたノーコードサービスのAmazon Honeycodeも結局は大して利用されず、2024年春で完全サービス終了となったそうです。
変化には対応しつつ、かつバズワードには惑わされないようにしつつ、正しい理解とともに未来に追随していきたいものです。
データを管理していく基盤をつくっていくおしごと
掛け持ちでちょっとだけ参加して、オンプレで現在できている仕組みをクラウド上で実現するとどういう方式になるのかというのをAWSのアーキテクチャ図を描いて設計しました。これでやっとAWS実務経験ですよ...構成図書いただけだけど...(笑)
まあでもこのおしごとで実績をやった扱いになって、社内制度での人材認定資格みたいなやつをひとつ認定が通ったのでヨシとしましょう。
またこの時、別の後輩がAzure上で実現するとこうなるというアーキテクチャ図を描いてきて、へーAzureだとこうなるんだーと各キーワードを理解したい欲が出てきました。これも、のちのAzure入門のモチベーションに繋がりました。
React開発チャレンジをサポートするおしごと
近い位置にいる後輩がついにReactにチャレンジする! ということで有識者による助言をする立場でちょっと関わりました。
- ちょうど主催している勉強会でもフロントエンドの話をしたのでベストなタイミング
- プロジェクト開始時に採用すべき技術要素とか、お勧め本とかUdemy講座などの情報をシェア。関係者一同が同じUdemy講座でReact入門していて話が通じて笑う。
- この時はアプリケーション規模やメンバースキルを鑑みてまずは一番基本、DenoでなくてNode.js、今後は消えていく方向だそうですがcreate-react-appベースの基本構成、Udemy講座のサンプルアプリと同じ技術要素でやっていくことに。膨大な数のコンポーネントを作っていくわけでもないのでTypeScriptはまずは見送り、JavaScriptでふつうに書きました。
- これで結局うまくいったので、何事もまずは基本からというのも大事ですね。
- 開発中はTeamsでサポート。最初はかなりハマりまくっていましたが途中からはどんどん開発速度が上がり、予定通り物が完成! 理系出身でない、社会人になってから初めてIT技術を学んだメンバーだったのですが、それでもちゃんと最後まで完遂できてしゅごい...もうフロントエンドエンジニアじゃん...と、ちょっと感動しました。
新人教育のおしごと
オンラインでのシステム開発演習をやり抜いた2023年の新人諸氏が100人以上いますが秋から配属。うちの事業部に数人、そのうちの一人はまさにうちの部門の部署に配属、フォロー役にワイ氏が任命されてしまいました。
直接一緒にプロジェクトに入る機会がないのでそれ以外の面、手続きサポートや日報の文章の添削、勉強会の再開催でスキル伝達...と諸々をやってきました。
今はもう大学で機械学習をもりもりやってPythonが使える新人が入社してくる時代なんですね。特に技術志向のメンバーだったので僕がフォロー役にアサインされたのであろうというのもあるのですが、今後が楽しみなところです。
ふりかえり&Problem&Wakattaこと、FunやLearn
コードの改善やリファクタリングを続けました
単に動くプログラムが書ける人以上のソフトウェアアーキテクト的な視点から、今あるコードをより良くし新たな部分を加える作業は既存案件ではしっかりやれました。継続して吸収している様々な本から得た知見も役に立っています。
リモートワーク(テレワーク)に移行後4年目が終わりました
2020年4月の緊急事態宣言以降、弊社グループもリモートワークに移行して継続しています。プロジェクトの都合などで客先とか物理出社している人もいますが僕は物理出社は数か月に1回程度。ほぼフルリモートの勤務と生活に完全移行して落ち着いています。
2022年にもう個人机がなくなって全部フリーアドレスのオサレなフロアに生まれ変わりました。
昔は部署に新人が来ると偉い人の号令でみんな手を止めて席から立ちあがって、そこで新人軽く挨拶、みんな拍手~で君の席はそこだよ、周りの人によろしくお願いします! でみんな元の作業に戻る、みたいな光景がよくありましたが、今の時代はもう案内されても座る固定席がないわけですね。
事業部に新人が配属される日は僕と管理職メンバーは朝から物理出社、フロアで説明を受けたりしてる新人を待ち構えて確保、その日はとっておいた会議室に案内してしっかり作っておいた資料で説明、歓迎の意を表して諸々開始という段取りでやりました。
引き続き効率的な作業を心がけました
僕は残業しても給料が増えない、手当が一定の裁量労働制の人なので残業しても無駄になります。いつも定時+αの範囲内で効率的にやっていくようにしていますが、2023年も継続。毎月10H以内でした。定時後は子供の保育園のお迎え、小学校入学の後は学童のお迎えのタスクも完遂です。会社でも残業は基本月20H以内のお達しが出ています。
スマートワーク、ライフワークバランスのが重視、このへんは世の中全体が良い方向に向かってきて本当にありがたい。どんどん良くなっていってほしいものです。
ちなみにリモートワークになると逆に休暇を取らなくなる傾向はどこでもあるらしく。会社の事業部でも月いちぐらい休暇を取ってリフレッシュせよとお達しが出ているのですが、こちらはあまり実践できていないなあ。
AWSからシフトしてAzure認定3冠達成しました
実務ほぼ未経験からAWS認定8冠です!と自己紹介の機会にこの話をするとやっぱりインパクトがあって驚かれるのでセルフブランディング効果はあるのですが、結局業務で使えずモチベーションも下がりっぱなし...というところで、2023年は生成AIのビッグウェーブに乗ってAzure OpenAI Serviceがどどーんと出てきました。将来に備えるべくAzureに切り替えて入門を達成しました。
獲ったのは基礎のFundamentalsレベルなので学習すれば受かるのですが、Fundamentalsの資格3つをコンプしました。これで人生の中で獲った資格は期限切れなども含めれば31個、30の大台を超えました。
2024年はいよいよその上の中級、Associateレベルの資格もいくつかチャレンジしていきたいですね。
できなかったことシリーズ
- AWSは大して使わなかったけどAzureに入門したからヨシだし...
- Reactやフロントエンド技術は助言者の立場で携わったからヨシだし...
- PHP8へのバージョンアップは2プロジェクトで完了したからヨシだし...
- おっ、2022年分の振り返りで書いたできなかったことは何気に2023年分で解消していますね。
またまたぷち異動+勉強会を継続しました
2022年の振り返りでもぷち異動と書いていたのですが1年後に再びぷち異動。後輩な同僚が管理職に昇進したので新しいグループが新設されて僕がそこに、そして新人君が入ってメンバー3人の小さな新グループが始動しました。以前のグループとは毎朝のオンライン朝会を一緒にやっているので、事実上ほとんど同じグループみたいなもので賑やかになっただけという、これは2023年のよい変化でしたね。
そして僕が主催しているTeamsの勉強会コミュニティも継続。転職していった後輩の分が減ったけど新人氏がジョイン、そして飲み会でこの話を聞いたという若手がまた参加してくれて賑やかになりました。かなり資料を作りこんでいるので新テーマは頻繁にはいきませんが数回、そして新規メンバーに向けて再開催を継続実施しました。
オンラインで反応を伺うと、年長メンバーも含めていろんな年齢層が集まるとそれはそれで楽しいのですがおじさんズを前に若手はやっぱり遠慮しちゃう傾向があり、若手1~2人を相手に説明すると質問が頻繁に出てきて向こうもやりやすそうだったり、そういう傾向はあります。このへんある程度柔軟にやっていきたいですね。
へーしゃの人材評価制度は定期的に変わるのですが、これからはプロジェクトの直接的な売り上げだけでなくこういう勉強会のような活動も評価要素に入っていくそーです。となると僕にとってもプラスになってめでたいので、今後も続けていきたいですね。
オンラインのコミュニケーションを保ちました
すでに実務経験が十分あり人間環境も構築済み、子育てエンジニア世代としてはリモートワークはもう万々歳なのですが、新しいエライ人が社員と対話を重ねた結果、オンラインのコミュニケーションに課題感を持っている社員がけっこういるそうです。まあどこの会社さんでもそうではないでしょうか。
コミュニケーションを保つために自分がやっていることと言うと...
- 元からネット民かつインターネット老人会メンツなので、呼吸をするように軽い気持ちでイイネするムーブをTeamsでも続ける。
- Teamsの書き込みはフランクに。
- ポジティブな絵文字を多めにする。
- 業務開始を一報する決まりになっているチャネルがあるので、そこでもなんかネタを一言を書く。リアクションしてくれた人には必ずリアクションを返す。
- オンライン朝会はもう数年僕がファシリテーションをしているので、ここでも年長者が率先してあほな話をして笑いを取る。自分の分の今日のひとことをスキップしない。
- 今の参加メンバー数だと一人一人にリアクションしても時間内に間に合うので、各自のひとことに何か司会としてリアクションする。
- 部門での各自の生い立ちを発表するイベントが開催されてきたので、毎回Teamsに感想を投下する。
- オンラインイベントにも参加する。2023年は生成AIの活用アイデアを考えていくイベントが開催されたので、上位入賞でなくネタ部門を狙って渾身の画像生成AIネタを投下...!
- その後はもうひとつ、ChatGPTに仕様を示して書いてもらうコードを主要な言語で全部検証するという渾身のプログラミングネタも投下しました。
やったのは、画像生成AIでねこイラストを召喚するプロンプトをChatGPTに考えてもらおうというネタなのですが、最後はけもみみの女の子が召喚されてしまったというオチをつけています。このブログ記事のアイキャッチ画像がそれです。
せっかくなのでその時の生成物のベース絵はちちぷい&pixivにも記念に投稿しています。そして日曜の夜におまけのつもりでうpしたこういう絵に限って、ちちぷいさんでまたデイリーランキングに入るというね...!
#女の子 黒猫の一足早いクリスマス - iwasimanのイラスト - pixiv
変化の様子をWatchしました
ここ数年でへーしゃも大きく変革を続けてきました。以前はワードを聞かなかった「リファラル採用」もよく使われるようになって、採用に結びついたら声をかけた人にも利益が出るようになりました。身近なところにも、いま大学4年生の学生とコンタクトを取って採用に結びつける活動をしているメンバーもいます。
一方で人材流出は確実に起こっているし、身近でも後輩が一人転職していきました。上層部も問題視して社員のエンゲージメント向上には力を入れているだろうなあと思います。
最近のバージョンアップでReactベースで動いているらしいデスクトップ版Teamsは前より動きが速くなった気がしますが、オンラインのコミュニティの様子も分かりやすくなりました。クラウドとかアジャイルとかOSSとかエンジニアリングやAIのあたりに集まっている中には優秀そうな人はかなり多いですが、しかし会社全体で見るとまだまだ...でもあります。
1年前の振り返りにも書いていたので思い出したのですが、いつも年末を賑わすQiitaのアドベントカレンダー、Organizationで弊社も2023年もジョイン継続していました。相変わらず枠がまだまだ空いていて寂しい状態になっていますw
社外でも通用するレベルの人材を目指す!という僕が掲げている目標は社内でも公言しています。そのために普段から自助努力を重ねて社外とも接点を保ち、情報収集も行い、悪しき慣習には染まらないよう気をつけつつ自分の足で立ってここまで進んできました。
今は子育ての優先度が高いので今の立ち位置を保って大企業のメリットは活かすようにしていますが、さてはて今後の時代の変化に企業レベルでどうついていくのかな?というのは落ち着いてウォッチしたいところです。
まとめ:コロナ禍を乗り越えてフルリモート4年目の安定した1年
家族含め無事生存、特に僕自身も年末の最後の最後のインフルA型感染事件を除けばほとんど体調を崩すことなくやってきました。リモートワークに完全対応して4年目、特に2023年は仕事で負荷があまり高くなかったので余裕を活かせてよかったですね。
和製英語のシステムエンジニアでなく世に恥じないソフトウェアエンジニアとして、ソフトウェアアーキテクトとして、社外でも通用するレベルの人材になりたい/ありたい、まだまだ開発の一線に立ちたい、後進に技を伝えていきたい、今後は先端領域にも手を広げていきたい...という僕が自らに掲げている姿勢はほぼ変わりありません。クラウド領域はさして機会がなかったので2023年は若干引っ込めて、その分AI領域を出すことにしました。
ありたい姿・方向性からすると2023年は実案件でもマッチしたかというとしていないのですが、今後あるかもしれない機会に向けて着々と準備はできました。より面白そうな案件の機会に備えて既存案件の引継ぎはある程度進んだし、朝活もおおむね継続、Azure入門開始、主要な言語はだいたいもう押さえているので代わりにプロンプトエンジニアリングに入門、会社の勉強会も継続、他者に技を伝えるムーブ多めに活動できた2023年でした。
2024年も自分のアップデートを続けながらエンジニアとしてサバイブしていこうと思います。
皆様にも2024年が良い年でありますように……
つづくよ