ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

プロジェクト管理で助けられている2つのツールと1つの想い

この記事はユニファ開発者ブログ Advent Calendar 2021 の 21日目の記事となります。

adventar.org

こんにちは、プロダクトマネジメント部の太田です。
私が現在のサービスに関わるようになって半年ぐらいでしょうか。 あっという間に時が過ぎ去ってしまう為、自身の振り返りも含めて、現在プロジェクト管理で役立っている2つのツールのご紹介と、プロジェクトを推進するチカラとなっている想いについてご紹介したいと思います。

まずは、プロジェクト管理・推進する単位を「毎日」と「週イチ」の時間軸で切って、それぞれで活用しているツール群の説明を進めていきますね。

1.「毎日」の場で役立っているツール:超絶基本「Jiraボード」様。

私が担当しているサービスは、新規開発の進行と共に、運用案件も同じエンジニアメンバーで遂行しています。

運用タスクは、毎日のように依頼が来て積み上がるなか、平行して新規開発タスクも同時に進めないといけない為、情報集約や取得に関しては気を配ります。
安易に運用と新規案件など複数ボードを作ってしまうと情報取得する為のコストがかかりすぎてしまうのを避ける為、とにかくここに来れば(ボードさえ見れば)「様々な側面での情報」に辿りつける。という場を作っています。

様々な側面の情報とは?

  1. 週次リリースするタスク
  2. 直近2スプリント分のタスク
  3. 運用タスク
  4. 新規開発タスク

上記のような観点で、情報整理をしています。

具体的なボードで見ていきましょう。(ぼかし多いな。一応ね)

f:id:unifa_tech:20211220144055p:plain

  1. 【週次リリースするチケット】毎週水曜日を定期リリースの日としている為、4週間分ほどの先が見通せるように、4つの週次チケット用のフィルターを常時。
  2. 【直近2スプリント分のチケット】1スプリント1週間で回しているので、直近2週間分の予定タスクを可視化。
  3. 【運用チケット】運用タスクを見失わない用に、直ぐ終わらせなくちゃあかんやつ用にフィルターで管理。
  4. 【新規開発チケット】そして最後に新規案件用のフィルター。案件は3~4個常に動いているので、毎にEpic設定しているのでその情報でフィルタリングしています。

毎日の朝会は、下記のような流れで進行しています。

  • 各人より。昨日やったこと今日の予定。合わせて相談したい事の頭出し。
  • 運用タスクとして新規に依頼されているチケットの確認
  • 今週リリースするチケットの確認
  • その他、あの炎上スレッドは今どうなったんだ?確認など。

毎朝たった30分の朝会ですが、

  • 新鮮な情報をギュッとまとめて扱える。
  • 拾えてないチケットあっても誰かが気付ける。
  • 各メンバーの多忙具合で、作業の割り振りをメンバー同士でフォローし合える。

私的にはめちゃくちゃ大切な時間です。 心の拠り所となっています。

2.週イチの場で役立っているツール
Googleスプレットシートのアドオン「Jira Cloud for Sheets」

毎日の朝会とは別に、週一回スプリントレビュー&プランニングの場でのお役立ちツール&意識している事をご紹介します。

毎週実施するスプリントレビュー&プランニングの1時間も、朝会と共にとても貴重な時間です。

実績集計や進捗把握の為だけに時間を掛けるのではなく、次の1週間になにをすべきかだったり、迷っている事を解決して次アクションへ進める為の時間にしたいので、実績や進捗把握の為の情報取得は、いかにコストをかけずに行えるか。を意識しています。

実績把握と視認性は「秒で」を意識する。

上段の1章でお話にあげた通り、我々が扱わないといけないチケットは多岐に渡る為、各エンジニアが担当しているチケットのステータス情報を手作業で取得していくと、スプリントレビューがある日は実績集計作業だけて何時間もかかるような事になりかねません。

そんな時は、Googleスプレットシートのアドオン「Jira Cloud for Sheets」がおススメです。 アドオンDLや初期設定は、@ymzk-jpさんの記事が分かりやすかったので参照してみて下さい! qiita.com

上記のアドオンを使えば、毎週のレビュー&プランニングのMTGの前に、実績把握をする為に自分がする作業は、何百枚とあるチケットを対象としてもポチっとボタンを更新するだけ!

実績集計は、秒で完結します。

秒で集計した情報を、複数走っている案件をまとめて網羅性をもって確認しやすくする為に、以下の環境整備をしていきましょう。ここからはスプレットシートで新規シートを作成した後の作業です。
上記の「Jira Cloud for Sheets」でダウンロードしてきたチケット一覧のシートとは別に、新しいシートを作成して作業していきます。

まず、利用する情報は、

  • EpicLinkのキー番号
  • Jiraのワークフローで利用しているステータス情報

の2つのみです。

この2つの情報をスプレットシートに記載して、情報を取得する枠組みを整えます。 f:id:unifa_tech:20211220155841p:plain

次の工程として、この2つの文字列を元に
「Jira Cloud for Sheets」でダウンロードしてきたチケット一覧シートから情報を引っ張ってきます。 f:id:unifa_tech:20211220155134p:plain

  • SUMIFS関数で、EpicNameが同じ名前のチケットのStory Pointsを合算
  • SUMIFS関数で、B列EpicNameが同じ名前かつ1行目D-1(I-1,J-1…)のステータスと文字列が同じチケット数をカウント
  • SPARKLINE関数で、エピック毎に進捗率を可視化(charttypeは"bar"を利用)

ダウンロードした各チケットから、SUMIFS関数を利用して情報を引っ張ってきているだけです。 難しいことは全然しておりませぬ。これで完成です。
※上記の各数字はダミーです。

案件単位での「着地ヨミ」はバーンダウンチャートを利用していますが、今現在、どのぐらいのチケットが完了していて、レビュー中や作業中のチケットはどのぐらいなんだっけ?など、情報を構造化する際にはとても便利です。
JiraのEpicを複数ならべてもよいのですが、同じ1画面に、他の様々な文字情報も入ってきてしまうので、進捗確認もこれを見る人が「秒で視認」出来るように、アウトプットも意識して成形しています。

3.プロジェクト推進を後押ししてくれる「想い」について

私が今担当しているサービスのPdMとして参画させて頂いてから半年あまりですが、
現在のプロジェクトメンバーが素晴らしく感謝の一言につきます。

ありきたりすぎて、もっとかっこいい言葉はないかと考えましたが、皆が能動的に考えてくれるし、他のメンバーが困っていたら助け合う雰囲気がとてもあって、周りの皆さんには感謝しまくりの私なのですが、「感謝が多発する=みんなの為に頑張ろう」と思う感情が自然と沸いてくる状況なので、これこそが、プロジェクトを推進する原動力になってくれていると思っています。

感謝を連発する人って何かアレじゃない?と普段は斜めに見る私ですが、毎日関わっている身近な人達が「自らキャッチしてくれて動いてくれて涙モノ」だったり「鋭いツッコミ入れてくれてめっちゃ助かった!」だったり「訳わからん私に懇切丁寧に教えてくれて有難うゴザイマス」だったり、このような環境だとみんなの為に自分も頑張らなくては!と自らはっぱをかけられるし、絶対やりぬくぞ!と強いキモチが沸いてくるので、その結果、プロジェクトの推進力を高めたり自走の維持が可能になってくるのかと思います。

ここまで読んで頂いた奇遇なあなたへ。大切な時間を有難うございます。

上記で紹介したような最高のメンバーがUnifaでは待っています。そんなメンバーと一緒に、未来に向けたモノ作りを一緒に推進しませんか?
ちょっとでも気になった方は、門を叩いてみてください!

ユニファでは新たな仲間を積極採用中です。

詳細についてはこちらからご確認ください。

unifa-e.com

swiftUIのCanvasを使ってみる

この記事は、ユニファ Advent Calendar 2021の20日目の記事です。 adventar.org

こんにちは。プロダクトエンジニアリング部の伊東です。主にサーバーサイドはRails、フロントエンドはVueを書いています。

今回の記事では、ios15から使えるようになったSwiftUIの新しいViewであるCanvasを扱ってみます。 ios13から使えていたGeometryReaderと比較してその使用感を書いていきます。

f:id:unifa_tech:20211214121004p:plain

続きを読む

【URL管理】超リモート時代のタスク管理術

こんにちは、プロダクトマネージャーの田嶋です。
この記事は、ユニファ Advent Calendar 2021の 18日目の記事です。

ーーーー
青年ははたと気付いた。“依頼ごとの8割は、Slackからやってくる” と。

「PdMはプロダクトのあるべき姿を描いて成功へ導くんだ!」
そんな表向きのイメージとは裏腹に、細々とした足元の調整業務は、実際どの職種よりも多いかもしれない。1つの機能仕様を決めるにあたり、営業・オペレーション・エンジニア・デザイナ・QAと、各所への報連相を必要とするためだ。

そんな多量の各種調整をこなすにあたり、これまであらゆるタスク管理方法を試してきた。その中でも、ここ半年くらい運用する方法が、かなりしっくり来ているのでご紹介しようと思う。

続きを読む

AWS Toolkit for VS Code が ECS Exec をサポートしたので試してみる

この記事は、ユニファ Advent Calendar 2021の17日目の記事です。

adventar.org

こんにちは、プロダクトエンジニアリング部の杉本です。

タイトルの通りですが、AWS Toolkit for VS Code(以下、AWS Toolkit)がECS Execをサポートしたのでさっそく試してみました。 aws.amazon.com

ECS Execを利用する方法や運用については、下記の記事もぜひご覧ください。

Amazon ECS Execを使ってrails consoleを動かしてみる - ユニファ開発者ブログ

AWS ECSのserviceにアクセスする方法 - ユニファ開発者ブログ

Setup

ECS関連機能は執筆時点最新の v1.34.0 で追加されています。*1

f:id:unifa_tech:20211210121628p:plain

AWS Toolkitはすでにあるcredentialsを読み込んでくれるので、profileを選択するだけでAWSリソースを参照することができます。 profileは新しく作成することも可能です。*2

f:id:unifa_tech:20211210121725p:plain

f:id:unifa_tech:20211210123156p:plain

ECS Execを有効にするには、cliで enableExecuteCommand: true に定義を更新する必要がありました。

aws ecs update-service \
  --cluster $cluster \
  --service $service \
  --enable-execute-command

が、それも今回追加された機能でサービスを選択して Enable Command Execution することができます。素晴らしいですね。

f:id:unifa_tech:20211210123557p:plain

ECS Exec

それでは実際にコマンドを実行してみましょう。

コンテナを選択して Run command in container を選択。

f:id:unifa_tech:20211210123914p:plain

コマンドパレットに実行するコマンドを入力。

f:id:unifa_tech:20211210124306p:plain

VSCodeのOUTPUTで、実行ログが得られました 🎉

f:id:unifa_tech:20211210124248p:plain

例なので適当に hostname にしていますが、実際には

  • ECS Scheduled Tasksで定期実行しているコマンドをテストするために即時実行する。
  • あれ、この環境変数通ってるかしら?の確認。

など、所々で「地味に便利」を味わうことができています。

所感

ローカルから実行できるという点ではcliの方がもちろん便利ですが、AWS Toolkitの場合はすでにロード済みのリソースから選択するのでTaskID等を調べる手間を省くことができます。 さくっと使えるので、デバッグ利用が前提のECS Execには非常にうれしい機能追加だと思いました。

AWS Toolkitはcliほどになる必要はないですが、Lambda実行や今回のECS Execのように開発効率を上げるような機能があり、大変ありがたいです。 「こんな機能もほしいんだよな〜」という方は、ぜひFeedbackやPRを送ってみましょう。

https://github.com/aws/aws-toolkit-vscode#feedback

引き続き、アップデートに注目していきたいですね!

unifa-e.com


デザイナー的に面白く読めた絵画の本

こんにちは。ユニファでデザイナーをしている中村です。

大変個人的な意見となり恐縮ですが、2歳児というのはとてもかわいいです。

まわりから得る言葉をいろいろ咀嚼して言語が大発達する頃合いだと思うのですが、弊2歳女性に関しても同様で、食事の後にいつも「ダイコン!パーイ!!」と叫びます。意味は「ダイコン」が、彼女にとっての「フルーツ」で、「パーイ」は「食べたい」という意味ですので、つまるところ「フルーツを食べたい!」という要望になるのですが、アウトプットとしては「ダイコン!パーイ!!」なので初見では理解できません。かわいい。

ちなみにですが、みかんを前にしても「ダイコン!!」と言いますし、りんごを前にしても「ダイコン!!!」と叫びます。

さて、この記事は、ユニファAdvent Calendar 2021の16日目の記事になります。今回は、今年読んだ本で面白かったものを紹介いたします。

adventar.org

続きを読む

bundlerは依存関係のあるライブラリをどうやってダウンロードするか?

この記事は、ユニファ Advent Calendar 2021の15日目の記事です。 adventar.org

こんにちは。プロダクトエンジニアリング部のちょうです。

今回は、皆さんがRubyで開発するときよく使うbundlerについてすこし中身を深堀りして説明したいと思います。bundlerはGemfileに基づいてライブラリつまりgemをダウンロードしてくれますが、その中身はどうな仕組みで依存関係のあるライブラリをダウンロードするのかに興味ありませんか。何も設定せずbundle installを実行したら、順番的にダウンロードしますが、jobsオプションを1以上の数字に設定することで並列でダウンロードしてくれます。

続きを読む