はじめに
皆さんこんにちは、マネーフォワード ERP開発本部 ガーディアングループ クラウド経費チームのてっしーこと@tositeです。
私はFukuoka TechTalk(以下、TechTalk)という社内コミュニティの運営にも携わっています。
今日は福岡開発拠点で定期的に開催している社内向けテックイベント「Fukuoka TechTalk+(以下、TechTalk+)」の様子をお伝えします!
※ TechTalk+は前述したTechTalkの拡張回的な位置づけとなるイベントです。詳細は後述します。
TechTalkとは?
TechTalkとは、2019年から福岡開発拠点で開催している社内向けの技術イベントです。 元々TechTalkは日々の業務やプライベートで学んだ技術ネタを整理して、アウトプットする機会を増やすために始まりました。
おおむね月1回程度の頻度で開催されており、毎月様々なロールのエンジニアが業務や業務外で得た知見を共有しています。 登壇経験が多いエンジニアは言わずもがな、登壇したことがないエンジニアや登壇に不安を抱えるエンジニアのフォローアップやサポートなども行っており、TechTalkを一つのステップにして社外のイベントでも登壇してもらえれば、という思いがあります。
技術イベントとは言っても「ゆるいLT会」というのをモットーにしており、どんな小さなことでも登壇できるような雰囲気を大切にしています。 過去にTechTalkについて記載したブログもありますので、ご興味ある方はご覧いただければと思います。
+(プラス)ってなに?
今回はTechTalk+(プラス)ということで、去る2024年9月5日にTechTalkの拡張回を開催しました。
なぜプラスなのか?それには大きく2つの理由があります。
一つ目に「TechTalk運営として新しい形のイベントを試してみたい」という思いがあり、今回は「TechTalk+」という形で開催することにしました。 具体的には、イベント+懇親会という二部構成にすることで、普段は所属が違う参加者同士の交流を深める機会にすることが目的でした。 よくあるカンファレンスなどのあの雰囲気を社内イベントでも再現したかった、そういう運営の思いが込められています。
二つ目に、「Money Forward Tech Day 2024」(以下、Tech Day)のリジェクトカンファレンス(リジェコン)のようなものをやりたい、という思いがあったからです。
福岡開発拠点はアウトプットが盛んなメンバーが多く、ご多分に漏れずTech Dayへのプロポーザルも多数寄せられました。 しかしTech Dayは一日開催ということもあり、残念ながら全てのプロポーザルは採用されませんでした。 とは言えせっかくたくさんの珠玉のネタがあるのに世に出さないのはもったいない!ということで、通常の登壇枠に加え、リジェクトされたプロポーザルの内容も受け付けることにしました。 熱量の高い内容が多いことから、今回は5分枠〜20分枠と幅を広げ、通常は1時間のところを2時間に拡張して開催しました。
当日のタイムテーブル
募集をした結果、なんと8件もの応募があり、最終的に以下のようなタイムテーブルとなりました。
タイムライン | 時間 | タイトル | 登壇者 |
---|---|---|---|
16:00 - 16:05 | 5分 | 開始挨拶 | TechTalk+運営 |
16:10 - 16:30 | 20分 | E2Eテストから見る、クラウド経費・債務支払、そしてガーディアンの未来 | @tosite |
16:35 - 16:50 | 15分 | Binary to Reality: A Journey into Database Construction and Data Retrieval | 大坪 |
16:52 - 17:02 | 10分 | Gave Around 14 Presentations in a Year ~ Gains and Losses ~ | @bun913 |
17:02 - 17:10 | 8分 | 休憩 | - |
17:10 - 17:20 | 10分 | 開発プロジェクトにおける選択と集中の功罪 | @M-Yamashita |
17:22 - 17:32 | 10分 | 機械翻訳ツールとの向き合い方 〜日本語から英語への翻訳〜 | @sekky |
17:34 - 17:39 | 5分 | Rustでオリジナルnpmパッケージを作ってみよう / Let's create an original npm package with Rust | 樫福 |
17:41 - 17:46 | 5分 | Have A Dog in CircleCI | @BigBackBoom |
17:48 - 17:53 | 5分 | Tidy Up MySql Lock Conflict Resolution | @k0i |
17:53 - 18:00 | 7分 | 閉会挨拶 | TechTalk+運営 |
18:00 - 21:00 | 180分 | 懇親会 | - |
登壇者から一言
登壇者の皆さんから一言をいただきましたので、ご紹介します! なお社内向けの発表についてはそのすべてをお伝えすることが難しいものもありますので、主に概略と感想に絞ってご紹介します。
E2Eテストから見る、クラウド経費・債務支払、そしてガーディアンの未来 / @tosite
改めてガーディアングループ クラウド経費チーム リーダーの@tositeです。
私はTech Dayのプロポーザルに思いの丈を書いて提出していたのですが、惜しくも採択とはならず、今回TechTalk+にて登壇させていただきました。
今回のテーマは「E2Eテストから見る、クラウド経費・債務支払、そしてガーディアンの未来」ということで、E2Eテストツールを使った自動テストとガーディアングループとの関わり方について話しました。
ガーディアングループは、主にCRE(Customer Reliability Engineering)という役割から保守・運用を担当しておりますが、今やその枠を越え、DevOpsを体現するチームとして活動しています。
特に2024年下期からは運用を「攻めの運用」と「守りの運用」に分類することで、DevOpsの取り組みを「前に」進めています。
(このあたりの取り組みについてはMoney Forward Tech Event vol.2 開催レポート#Guardianとして生まれ変わった俺は攻めと守りの運用で無双する 〜守りの天才が考える、攻めの運用術〜 - 手島尚人 / 関琢己で紹介しておりますので、興味ある方はぜひご覧ください)
「攻めの運用」の一環として、ガーディアングループはE2Eツールの運用改善に取り組んでいます。
ガーディアングループという立ち位置からE2Eテストを見た場合、「リリース前に不具合を検知して事前に対応できる」というのは、問い合わせの種を潰すという点からも非常に有益なものです。
そして問い合わせが減少するということは、本来問い合わせ対応に使うはずだった時間をプロダクト改善のための開発に充てることができるということを意味し、これはまさにDevOpsの推進が加速するということにつながります。
私は上記の課題と向き合ううち、QA分野でよく聞く「シフトレフト」と呼ばれる品質保証活動を前倒しするという概念と、開発・運用が相互に連携してシステム開発を行う「DevOps」という手法に親和性があることに気づきました。
シフトレフトのアプローチを取り入れることで、DevOpsのプロセスの信頼性を高め、より効率的な開発が可能になるのではないかと考えています。
加えて早い段階で品質保証活動を実施することで、CI/CDの信頼性がさらに高まり、より早く、より高品質なプロダクトを届けることができるかもしれません。
シフトレフトはもはやQAグループだけの責任ではなく、プロダクトに携わる開発者全員が意識を向けるべきものに変化しているように思います。
そしてそのための「小さな一歩」は、何も難しいものではなく、例えばドキュメントの整備やユニットテストの拡充など、身近なところに存在しています。
(余談ですがデータベースドキュメントを整備する話は以下で紹介していますので、興味ある方はご覧ください)
- Money Forward Tech LT大会 vol.1 - 2024年4月23日
- 7th長崎QDGでデータベースのドキュメント化についてLTしてきました - 2023年9月15日
まだまだ改善するべき点はたくさんありますが、今後もガーディアングループはDevOps・シフトレフトの推進を進めていきますので、今後の活躍にご期待ください!
Binary to Reality: A Journey into Database Construction and Data Retrieval / 大坪
初めまして!2024年5月に入社した大坪と申します。 現在はYataiチームに所属し、Ruby on Railsで構築されたレガシーシステムをKotlinにリプレイスする作業を進めています。
今回の登壇のタイトルは「Binary to Reality: A Journey into Database Construction and Data Retrieval」和訳すると「バイナリから現実へ:データベース構築とデータ取得への旅」となり、自作DBの経験をもとに、データベースの構築とデータ取得の仕組みについてお話ししました。
登壇資料はこちらです。Preziを使ってアニメーションに力を入れながら作成したので、ぜひご覧いただければと思います。
発表内容
- 自作DBを作ろうと思ったきっかけ
- データベースの仕組みを深く理解したかった
- 転職の合間に時間があったため、自己学習の一環として取り組んだ
- 実際に利用した書籍
- Database Design and Implementation Second Edition
- この本の中でJavaで書かれたサンプルコードをKotlinに移植しながら、データベースの基本的な設計から実装まで学ぶことができた
- Database Design and Implementation Second Edition
- 自作DBの基本的な内部構造
- リレーショナルデータベースでのデータ(レコード)の保存方法
- データベース上ではページという単位でデータが管理される
- ページの構造やその役割、管理方法について説明
- ページへのデータ挿入の仕組み
- リレーショナルデータベースでのデータ(レコード)の取得方法
- ページからデータを取得する仕組み
- フルテーブルスキャンとインデックススキャン
- B+木の構造と役割
- セカンダリインデックスとプライマリインデックスの関係
- セカンダリインデックスの追加がインサート処理に与える影響(オーバーヘッド)
- リレーショナルデータベースでのデータ(レコード)の保存方法
- データベース技術者への感謝
登壇を通じて得られたもの
自作DBを作成する中で、部分的に写経で済ませてしまった部分もありましたが、そのような理解が不足している点についても、資料を作る過程で再調査や確認を行い、知識を整理できました。また、英語での発表はかなり大きな挑戦ではありましたが、自分のプレゼンテーションスキルの向上にもつながったように思います。
登壇後、社内の方から「DBって自作できるんだ」といったフィードバックをいただいたり、普段あまり話す機会のない方にもお声がけいただいたりと、コミュニケーションが増えたことがとても嬉しかったです。
初めての登壇で、さらに英語での発表ということで当日は非常に緊張しましたが、運営の皆さんや聴講者の方々の温かいサポートのおかげで、無事に発表を終えることができました。本当にありがとうございました!
Gave Around 14 Presentations in a Year ~ Gains and Losses ~ / @bun913
初めまして、@bun913です。
私は2024年7月からマネーフォワードにSDET( Sowtware Development Engineer in Test )という聞きなれないポジションで入社しています。
私は元々開発寄りのエンジニアだったのですが、「もっとテストのことを開発段階で考えたいな」という思いがあり、テストに関する学習を始めていました。
以前より登壇は嫌いではなかったのですが、「せっかくインプットするならアウトプットをしないともったいないよね」という思いから、2023年の10月ごろより14回の登壇を行っています。
参考: Speaker Deck
主催者に「技術的な話じゃないけど登壇していい?」と聞いたところ、「もちろん!」という返事をいただき、以下のような内容を発表しました。
- 登壇を続けて良かったこと
- 本来なじみがないソフトウェアテスト界隈の人と交流でき、少しだけ認知が広まりました
- (最重要)学習効率が上がりました
- 例えば書籍を読む際にも「ここ発表に使えるな」「発表するならどういえばいいかな」「他の書籍の記述と照らし合わせてみよう」という視点で読むようになりました
- 登壇を続けて、ちょっと厳しかったこと
- 疲れますね。慣れてきたのですが、それでも疲れます。
- 毎月同じイベントに登壇するため、妻から「またこの時期か?」という視線を感じることがあります(気のせいかもしれないです。怖くて聞いてないので)
- アウトプットのちょっとしたコツ
いくつかメッセージがありますが、大事なことは「自分のペースで好きな時に発表すればいいと思う」だと思います。
私は登壇にメリットを感じていますが、自分の心身に負担をかけることは本末転倒なので、皆さんは「数回やってみて楽しそうだったらやってみようかな」という気軽なスタンスで取り組むと良いと思います。
私自身「書籍にしたら3ページくらいの内容でも、誰かに刺さるなら発表してみようかな」というスタンスで取り組んでいます。
ぜひ皆さんも、自分のペースで楽しんで発表してみてください!
P.S. いつも登壇させてくれる場所を用意してくださっている運営の皆さんには感謝しかありません。ありがとうございます!
開発プロジェクトにおける選択と集中の功罪 / @M-Yamashita
こんにちは。マネーフォワード福岡開発拠点でSREとして働いているM-Yamashita です。
私もTech Dayにプロポーザルを出したものの、選考対象から漏れてしまいました。このプロポーザルのネタをどこかで話したいなと思っていた矢先に今回のTechTalk+の開催があることを知り、手を挙げました。
このイベントでは10分枠に応募したので、プロポーザルに出したで話す予定だった項目の1つをピックアップし、その項目を深掘りする形式で話を進めました。
発表内容は以下の通りです。
- 新機能開発時にスクラムを採用
- アジャイルな見積りと計画づくり 価値あるソフトウェアを育てる概念と技法を参考に、開発タスクを優先度づけて対応
- 開発中に挙がってきた改善要望の対応を優先度で取捨選択、一部のタスクをバックログに残し機能リリース
- 優先度が口癖になる危機感のブログの紹介
- 高い実力を持ち高品質の機能を提供できるエンジニアになろう
実力こそすべてというわけではありませんが、高い実力があれば取捨選択のうちの「捨」の割合が減り、多くの価値をユーザーに提供できるという話をしました。 "昨日の自分と比べて今日の自分は成長しているか?"という問いかけを常に持ちながら、今後の業務に取り組んでいきます。
機械翻訳ツールとの向き合い方 〜日本語から英語への翻訳〜 / @sekky
こんにちは、@sekkyです。 2024年4月入社で、これまでチームメンバーの巻き込みと二人登壇によって、登壇の心理的ハードルが下がった話の記事を書いたり、Money Forward Tech Event vol.2のイベントでの登壇を行ったりしてきました。 現在はガーディアングループでCREとしての業務に携わりながら、チームの英語化推進も行っております。
今回のイベントでは、機械翻訳との向き合い方について発表しました。チームの英語化を推進する中で、機械翻訳の結果がどうしても誤翻訳になりがちなことに課題を感じていました。 よく考えると、機械翻訳の使い方について深く考えたことがありませんでした。 これを理解しチームに共有することはチームの英語化の推進につながるのでは、と仮説を立てて調査し発表に臨みました。
発表内容は以下になります。
- 自動翻訳ツールを使う前にプリエディットとポストエディットを行いましょう
- プリエディット: 機械翻訳が翻訳をしやすいように事前に編集すること
- 省略箇所(主語や目的語、所有者など)を明確にしましょう
- 一文を短くしましょう
- 曖昧な表現を避けましょう
- ポストエディット: 翻訳結果を確認し、修正すること
- ライトポストエディット(英文が意図した通りの文になっているか確認する作業)を行いましょう
- フルポストエディット(表現の見直しを行い流暢な文章の作成を試す)は必要に応じて行いましょう
- プリエディット: 機械翻訳が翻訳をしやすいように事前に編集すること
もしこの発表が、機械翻訳を業務で頻繁に使う方や自分と同じような課題感を感じていた方にとっての助けになれば幸いです! また、登壇のきっかけを用意してくれている運営の皆様に感謝しております。ありがとうございました!
Rustでオリジナルnpmパッケージを作ってみよう / Let's create an original npm package with Rust / 樫福
クラウド経費のフロントエンドエンジニアをしている樫福です。
私はTech DayにLT枠で参加するので、発表の練習も込みでイベントに参加しました。このイベントはTech Dayのリジェクトコンだったのですが、当日参加の僕も 大ブーイング 温かい拍手で迎えてくれて楽しく発表できました。
Tech Dayの発表がまだなのでここでは詳細に触れませんが、興味のある方はぜひTech Dayにお越しください!
最後に、激寒の会場で震えてると直前の発表者のsekkyがジャケットを貸してくれました。ありがとう🥰
Have A Dog in CircleCI / @BigBackBoom
こんにちは。Pay事業本部でAndroidエンジニアをしているBigBackBoomです。また、チームの英語化推進も行っています。
今回は5分間のショートLTということで、AndroidのCIをBitriseとGitHub ActionsからCircleCIに移行した際に遭遇した、reviewdogでのPull Requestへのコメント書き込みがうまくいかなかった事象を発表させていただきました(参考)。弊社の環境に限定された話なので、参考になる部分は少ないと思いますが、Androidエンジニアはこんなこともやっているのだな、と参考程度に見ていただければと思います。
内容自体は発表時間が短かったため、事象と結論のみの内容となっていますが、久方ぶりにプレゼンを英語で実施したので非常に緊張しました。 今後も機会があれば、登壇したい気持ちです!
Tidy Up MySql Lock Conflict Resolution / @k0i
Pay事業部のk0iです。 MySQLのロック競合が起こった時に、どのテーブルを見れば良いのか、という内容で登壇しました。 ロック情報に関するテーブルは多々あり、MySQL5.xと8系では細かな違いがあったりして、個人的にエラー調査の際にいつも調べ直していたので、今回の登壇を通じて自分の中で整理できてよかったです。
登壇は自分の成長にも繋がるので、今後も続けていきたいです。
懇親会について
TechTalk+の後は懇親会を開催しました!
以下の懇親会の写真から雰囲気を感じ取っていただければと思いますが、各自ドリンクを片手に交流している姿や、普段は交流のないメンバー同士でゲームしている姿がありました。
同じ福岡開発拠点に属してはいても部署やグループが違うとなかなか交流がないメンバーもいるので、今回の懇親会を通して交流を深めることができたのではないかと思います。
全体を通してとても有意義なイベントとなったので、今後も定期的に開催していこうと思いました!
終わりに
マネーフォワードはきたる2024年9月20日に、自社テックカンファレンスをやります! 開催地は東京とちょっと遠いですが、 面白そうなセッションだらけなのでぜひチェックしてみてください!
マネーフォワード福岡開発拠点では、エンジニアを募集しています!
このブログを読んで一緒に面白い社内イベントを運営したいと思ったそこのあなた!
ぜひ一度求人情報をご覧ください!
福岡開発拠点のサイトはこちらです!