SlackのメッセージをNotoinに保存する自動化をZapierで組むことでフリープランのまま過去のメッセージ履歴を参照できるようにする

私は個人的なメモや考えたことを書いておく場所としてSlackを使っています。個人用途のため無料ワークスペースで使っているのですが、2022年9月からフリープランだと過去90日間のメッセージ履歴しか見れなくなる変更が行われました。

slack.com

過去に書き込んだ内容を参照したい時があるため、Slackに書き込んだ内容をNotionのDBに保存することで、Slackはフリープランのまま過去のメッセージが参照できる仕組みを作ることにしました。

Slackに書き込んだら自動でNotionのBDに保存したいので、Zapierを使って自動化のワークフローを組みました。

Zapierもお金をかけずにワークフローを組みたいと思ったので、2ステップのワークフローを組んで実現しました(3ステップ以上は有料プランになる)。

今回は、この自動化を実現したZapierのワークフローを紹介します。

事前準備(NotoinのDBを作成する)

Slackに書き込んだ内容を保存するNotoinのDBを作成します。

私は下の画像のように「内容」、「URL」、「書き込んだ時のタイムスタンプ」のカラムを持つBDを作って運用してます。

Zapierのワークフローの概要

ここからZapierのワークフローの説明をしてきます。まずはワークフロー全体はこんな感じです。

とてもシンプルなワークフローです。

Slackのパブリックチャンネルで新しい投稿がされたことをワークフローのトリガーにします。あとはSlackに投稿された内容などをNotionのDBに書き込みます。

それぞれのタスクについて説明していきます

1. Slackのパブリックチャンネルで新しい投稿がされたことをトリガーにする

このタスク(トリガー)の設定はとても簡単です!

Eventで「New Public Message Posted Anywhere」を選択し、あとはBotの投稿もトリガーにするかどうかを選択するだけです。

2. Slackに投稿された内容などをNotionのDBに書き込む

Eventで「Create Database Item」を選択し、Actionでは事前準備で作成したDBを選択し、それぞれのカラムに必要な情報を埋めていきます。

ワークフローの作成はこれで終わりです😊

ワークフローをONにしてSlackで適当に書き込みをすると、その内容がNotoinのDBにも書き込まれるはずです!

おわりに

なんとかお金をかけずにSlackの過去90日間以降のメッセージ履歴を参照する仕組みを作れました。ぜひ使ってみてください!

ちょっとした補足ですが、Zapierもワークフロー自体は無料プラン内に収まっていますが、Slackに書き込む回数が多すぎると無料プランで使えるタスク数を超えてしまう可能性があります。そうなるとNotoinへの書き込みを一部諦める or 有料プランにするしかないです。そこは多少注意が必要です。

10Xに入社して2年が経過しました & 第二子の育休に入ります

軽い近況報告です。

10Xに入社したのが2021年5月 GW空けで入社して2年が経過しました。直近1年くらいはEM(エンジニアリングマネージャー)として働いてました。

10x.co.jp

入社エントリーはこちら。

hack-it-iron.hatenablog.com

んで、2023年5月 GW空けから第二子の育児休暇に入ってます。育休期間は第一子の時と同じく半年くらい取る予定で、仕事復帰は2023年11月予定です。

10Xは福利厚生として出産・育児サポートが充実していて、出産サポート休暇はフル活用しました。産後のサポート金は出産後の一時的な世帯キャッシュフローとしてめっちゃありがたいやつです🙏🏻

10x.co.jp

現場からは以上です。

1on1におけるゆとりの設計と実践(エンジニアリングマネージャー 1年生の記録)

前提情報

  • 10Xというスタートアップで働くEngineering Manager(エンジニアリングマネージャー) です
  • 2022/04にEMになりました(それまでマネージャー経験はなし)
  • ソフトウェアエンジニア 4〜5名のマネージャーです
  • 1on1は週1 or 隔週 決まった曜日・時間帯に実施してます(実施頻度はメンバーにより異なる)

ゆとりを大事にしたい

その昔『ゆとりの法則』を読んだことでゆとりを持つ大事さを常に意識してきた。マネージャーになった時も「ゆとりを持ったマネジメントがしたい」と思った。

1on1におけるゆとりの設計

マネージャーになるとメンバーとの1on1は大事なイベントになる。1on1にゆとりを持たせるため、以下のような方針をメンバーに伝えた。

  • 1on1は基本30分で時間を取る
  • ただし 私(マネージャー)の予定は1on1後の30分は予定を空けておくように努力します
  • なぜなら 話が盛り上がったり、話したいことが話せないと困るので、私の予定上は最大30分は伸ばしてもいいよ!というスタンスのためです
  • 1on1の実施頻度、実施の曜日・時間帯は各メンバーの希望に合わせます

これに加えて私が1on1に遅れないために1on1開始前に予定を入れない努力もしました(1on1開始 10分前にブロック予定を入れ別の予定が入らないようにするのがおすすめ)。

ゆとりの効果

時間的ゆとりを持った1on1にすることで、以下のようなメリットがありました。

  • 焦らず話せる(焦って結論を出さなくて済む)
  • メンバーが話したいことを最優先にはしつつ、マネージャーから伝えたいことを話す時間も確保でき、伝えるべきことの先送りを防げる(時間なくなったからまた次の1on1にしよう…が減る)
  • 話す中で新たな話題を見つけたり思い出したりした場合でもその場の1on1で話せる(「まだ時間あるから私としては全然大丈夫だよ!」と言ってあげられる)

メンバーから見ても時間を気にして話される体験は気持ちよくないと思うので、焦らず話せるのが一番良い効果です。

実際どうだったか

メンバーによって差はありましたが、予定通り30分で終わるのと、時間オーバーして話すのが半々という感じでした。時間オーバーする場合は追加で15分(計 45分)話すことが多かったですが、時間オーバーの幅もメンバーの状況次第で変化するため、1時間とか2時間話すこともありました。

これにより話すべき時に話したいことを話し尽くすことがそれなりにできていたと思ってます。

ただ気をつけるべき点もあります。長時間にわたって話すことで互いに疲れてしまい、その後の仕事に身が入らないとか、結論が出ないままグダグダ話してしまったりとか。そのため時間内で話すべきことを話しきる努力は必要です。どうしても収まらない場合に「私はこの後も時間空いてるから大丈夫だけど、XXさんは大丈夫?」と言えるゆとりの準備が大事です。

おわりに

どういうマネジメントがしたいか?を考え「ゆとりを持ったマネジメントがしたい」と決心したことで、無理のないゆとりを持ったマネジメントが今のところできている気がします。

まだマネージャー1年生なので全てがうまくできてるわけじゃないですが、この時のゆとりを忘れずにこれからもやっていけるようにこの記事を残します。

Androidアプリ開発を学び直してる話

前提情報

  • 2012年から9年ほどAndroidアプリの開発をしていた
  • 2021年4月までJava&Kotlinを使ったAndroidアプリ開発をしていた
  • ここ最近はFlutterでアプリの開発をしている
  • つまり2年間ほどKotlinを使ったAndroidアプリ開発をしていない

2年間でAndroidアプリ開発は何が変わったか

  • Jetpack Composeが本格的に使われるようになった
  • Jetpack Navigationやmulti-moduleの採用事例が増えた

変化を追う上でDroidKaigiアプリはとても参考になる。

github.com

github.com

なぜ学び直すのか

Flutterでアプリ作れるスキルがあるなら、アプリ次第ではFlutterで作った方がiOSAndroid両方で動くものが作れるので便利です。仕事でアプリを作る場合はFlutterが第一候補です。

ではなぜKotlinを使ったAndroidアプリ開発を学び直すのか?って話ですが、多くの企業ではFlutter登場前からアプリを作って運用してきた資産が山程あります。それらをメンテナンスし続ける需要はあります。例えば副業をやりたいなーって思った時もFlutterよりKotlinを使ったアプリ開発の方がまだ多いと思います。

市場としてまだ需要がある技術なら、学び直す価値は全然あるなーと思ったわけです。転職サイトで来るオファーでも「Androidアプリ開発お願いしたいぞ!」ってやつは多く来ます。

どう学び直してるか

仕事では全くやる機会がないため、個人でAndroidアプリ作成しながら学び直してる。とにかく早くアプリを作りたいという意味ではFlutterの方が断然楽なのだが、学び直し=学習が目的なのでKotlinを使ったAndroidアプリ開発にしている。

とはいえ作りたいものがない状態では学習も進まないので、Rebuildに特化したPodcastアプリを作ることにした。

rebuild.fm

最近のデファクトスタンダードなものを使って開発している。Jetpack ComposeもMaterial 3を使って実装している。

Jetpack ComposeやNavigation 何もわからん状態からのスタートなので、Composeを使ったテンプレートプロジェクトから始めた。そこから作りたいUIを実現するために必要なものをとにかくググりながら実装するみたいな感じ。ググるとMaterial 2の情報多く、Material 3とインタフェースが違い部分が多くてコピペしてもエラー出るしわからん!!ってことが頻発して厳しかった...(今もまだある)

どんなpackageやファイル構成でどこにどれを書くのがベストプラクティスなのかもわからないので、そこは気にせずとにかく実装してまずは動くものを作ることに集中している。ある程度慣れてきたらOSSなども参考にしつつ適切にファイル分割したりしている。

いきなり難しいことをせず、ひどいコードでもいいから書きながら学ぶスタイルでやってます。

9年もAndroidアプリ開発やってきてひどいコードとかウソでしょ?と思う方向けに作っているものをパブリックに公開しました。設計や読みやすいコードを学習したいわけじゃないのでまあいいかなーって気持ちでやってます。

github.com

おわりに

学び直すって楽しいよね🌸

現場からは以上です。

とあるエンジニアリングマネージャーの一週間スケジュール

とあるEngineering Managerの一週間のスケジュールをただただ書き出してみたものです。

前提情報

  • 10XというスタートアップのEMです
  • 裁量労働で10時 - 17時半が基本的に働いてる時間です
  • チームではスクラムを1週間スプリントでやってます
  • 時々差し込みのミーティングはありますが、それは記載してません
  • Gatherはバーチャルオフィスのサービスです。私がEMとして担当するチームメンバーの多くはGatherにログインいているため、基本的に私もミーティング時間以外はログインして相談・雑談などしながら作業しています

www.gather.town

月曜日

時間 内容
10:00 仕事開始
10:00 - 10:15 一日の予定確認。今日やるタスク整理
10:15 - 10:30 チームの朝会
10:30 - 11:00 Gatherにログイン。作業
11:00 - 11:30 エンジニアリング本部定例
11:30 - 14:00 作業。どこかでこどもと散歩
14:00 - 14:30 チームメンバーとの1on1
14:30 - 15:00 作業
15:00 - 16:00 関わっている事業部の定例
16:00 - 16:30 開発チームでシステムメトリクスを見る会
16:30 - 17:30 作業
17:30 仕事終了

ミーティング時間 : 2時間45分

一言メモ : 作業時間が細切れなのでGatherでコミュニケーション取ってることが多い

火曜日

時間 内容
10:00 仕事開始
10:00 - 10:15 一日の予定確認。今日やるタスク整理
10:15 - 11:00 チームメンバーとの1on1
11:00 - 11:45 Sprint Review(スクラムイベント)
11:45 - 13:15 Gatherにログイン。作業
13:15 - 14:00 Sprint Retrospective(スクラムイベント)
14:00 - 15:30 Sprint Planning(スクラムイベント)
15:30 - 16:00 チームメンバーとの1on1
16:00 - 17:30 作業
17:30 仕事終了

ミーティング時間 : 4時間15分

一言メモ : スクラムイベント祭り😊

水曜日

時間 内容
10:00 仕事開始
10:00 - 10:15 一日の予定確認。今日やるタスク整理
10:15 - 10:30 チームの朝会
10:30 - 11:00 Gatherにログイン。作業
11:00 - 12:00 全社定例
12:00 - 17:00 作業(水曜午後は全社的にNo MTG Day)。どこかでこどもと散歩
17:30 仕事終了

ミーティング時間 : 1時間15分

一言メモ : 午後は集中して終わらせたいタスクをやる

木曜日

時間 内容
10:00 仕事開始
10:00 - 10:15 一日の予定確認。今日やるタスク整理
10:15 - 10:30 チームの朝会
10:30 - 11:30 Gatherにログイン。作業
11:30 - 12:00 チームのPdMとの1on1
12:00 - 13:30 作業。どこかでこどもと散歩
13:30 - 14:00 EMメンバーの定例
14:15 - 15:00 セキュア・バイ・デザインの輪読会
15:00 - 17:30 作業
17:30 仕事終了

ミーティング時間 : 2時間

一言メモ : EMメンバー同士の定例があるので、ここまでにEM同士で話すと良さそうなネタを集めることを意識してる

金曜日

時間 内容
10:00 仕事開始
10:00 - 10:15 一日の予定確認。今日やるタスク整理
10:15 - 11:00 Gatherにログイン。作業
11:00 - 11:15 チームの朝会
11:15 - 15:30 作業。どこかでこどもと散歩
15:30 - 16:00 チームメンバーとの1on1
16:00- 17:30 作業
17:30 仕事終了

ミーティング時間 : 45分

一言メモ : 作業時間多く取れるが、金曜なので雑談多めでコミュニケーション取ることを意識してる