🗂

ひとりぼっち開発のモチベーション管理

2024/10/21に公開

はじめに

私はスタートアップ企業のひとりエンジニアとして日々開発業務を行っています。
未経験で入社し丸三年が経過し、仕事ぶりが認められ(?)基本的に開発業務は一任されているため、他部署も含めた週に一度の定例会議で進捗を報告する以外、特に進捗管理や評価レビュー、フィードバックの類はされていません。

で、自由にやらしてもらってありがたいと思ってはいるのですが、ときに「私の仕事はちゃんと評価されているのだろうか」と頭によぎることがあるのです。
そこで、モチベーション向上や成果をアピールするネタ作りとして、自身の業務を振り返る習慣をつけようと始めたことを記します。

同じような環境や悩みを持っている方に少しでも参考になれば幸いです。

日々の振り返りはニコニコカレンダー

その日帰るときに(私はフル出社です)机上のカレンダーに今日の気分をメモするようにしてます。

実際の様子
とりあえず簡単だしはじめてみようとおもってやってみたのですが、今日一日やったことをなんとなく振り返るようになるのでとてもいいです。
https://atotok.com/articles/c75cfe
とりあえず続けてみて、顔がたまってくると自然とその時のことを思い出すようになるので、悲しい顔が続いてるときに「●●の機能実装してるとき大変だったけどよう頑張ったなあ自分」と自分で自分をいたわったりしています。

週ごとの振り返りはウィークリーマイルストーン

タスク管理はgithubのissueを使って管理しています。
https://docs.github.com/ja/issues/tracking-your-work-with-issues/about-issues
で、このissueはmilestoneなるものに紐づけることができるのです。
https://docs.github.com/ja/issues/using-labels-and-milestones-to-track-work/about-milestones
本来は先に期限を決めて、リポジトリ内の複数のissueをまとめて一つのタスクとして期限管理するためにあると思いますが、私は完了したタスクを自動的に紐づけて「今週はこれだけがんばったぞ」と振り返る用に使っています。

実際の様子

ぶっちゃけ普段あまりみることないのですが、モチベーションが下がってきたときや上司と面談があるときに振り返って「ぼくがんばったなあ…」と思っています。

issueの紐づけやマイルストーンの作成をいちいち手作業でやるのはめんどくさいので、github actionsで自動化しています。

実際に使用しているワークフローファイル
.github/workflows/create-weekly-milestone.yml
# 毎週月曜日にマイルストーンを作成する
# ex.)
# title: "weekly:01/01-01/07"
# due_on: 2022-01-07T00:00:00Z
# description: 01/01~01/07のマイルストーン
name: Create Weekly Milestone
on:
  schedule:
    - cron: '0 0 * * Mon'

jobs:
  create-weekly-milestone:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/github-script@v7
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}
          script: |
            const date = new Date(Date.now() + ((new Date().getTimezoneOffset() + (9 * 60)) * 60 * 1000));
            const startDate = (date.getMonth() + 1) + "/" + date.getDate()
            date.setDate(date.getDate() + 7)
            const due_on = date.toISOString()
            const endDate = (date.getMonth() + 1) + "/" + date.getDate()
            github.rest.issues.createMilestone({
              owner: context.repo.owner,
              repo: context.repo.repo,
              title: "weekly:" + startDate + "-" + endDate,
              due_on: due_on,
              description: startDate + "~" + endDate + "のマイルストーン"
            })
.github/workflows/add-to-weekly-milestone.yml
# pull request が open したら、紐づくissueを週次マイルストーンに追加する
name: Add to Weekly Milestone
on:
  pull_request:
    types: [opened]

jobs:
  add-to-weekly-milestone:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/github-script@v7
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}
          script: |
            const milestones = await github.rest.issues.listMilestones({
              owner: context.repo.owner,
              repo: context.repo.repo,
              sort: "due_on",
              direction: "desc",
              state: "open"
            })
            const milestone = milestones.data.find(({ title }) => title.match(/^weekly:/)) || null
            if (!milestone) {
              console.log("マイルストーンが取得できませんでした")
              return
            }
            console.log("マイルストーン: " + milestone.title)
            const issueNumber = context.payload.pull_request.head.ref.split("#")[1]
            console.log("issue番号: " + issueNumber)
            const result = await github.rest.issues.update({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: issueNumber,
              milestone: milestone.number,
            })

タスク管理はチケット+カンバン

先述のとおり日々のタスク管理はgithub issueを活用しています。
で、今回のリリースはここからここまでにしよう、と決めた時はgithubのProjectsを使用しています。
https://docs.github.com/ja/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects

githubが用意しているTeam planningというテンプレートをそのまま使用しているのですが、完了済みタスクが表示されるところがとてもいいです。

実際の様子

よくあるToDo管理って完了したら消えちゃうので、自分がこれだけやったとか実感がするタイミングがないのですが、カンバン方式は日々積みあがっていくのでなんだかいい気分になります。

おわりに

ひとりぼっちでも楽しくお仕事するために試行錯誤しています。みなさんのtipsも教えてほしいです

Discussion