こんにちは、ペイメントシステム課エンジニアの大倉です。
ここ最近(執筆時12月)はグンと寒くなってきており、新潟在住の私も毎年のことながら寒さが身にこたえます。
それはさておき、今回は先日開催されたペイメントシステム課内の「課題解決もくもく会」についてご紹介します。
「課題解決もくもく会」とは?
「課題解決もくもく会」とは・・?
<当日のアジェンダから抜粋>
現在課題と認識しておりツールを作成する事で解決するだろう問題に取り組む
・システム変更が入らないこと
・ツールではなくドキュメントで解決できるものがあるのであればドキュメントでも問題ないです。
つまり、システム開発や運用にあたって課題(問題)となっていること、または課題に思っていることに黙々と取り組んで解決しましょう!という会です。
課題には工数削減につながるもの、作業ミスを減らせるもの、ナレッジ共有等、様々ありますが、今回は参加者個人が取り組みたい課題を選定して解決に向かって取り組みます。
参加は強制ではなく任意です。
課題解決もくもく会の流れ
課題解決もくもく会の流れを簡単に記載します。
- 開会ミーティング:10分
- 会の趣旨や進め方、共有事項等のお話がありました。
- もくもく会:110分
- 個人で黙々と課題に取り組みます。
- 資料作成:30分
- 取り組んだ課題の成果物に関する資料を作成します。
- 成果発表会:30分
- 取り組んだ課題と、それに対する課題解決の成果物を個別に発表します。
- 他の参加者からフィードバックをいただきます。
個人作業に費やせる時間は約2時間で、その間に成果物を作成します。
取り組んだ課題
今回の参加者が取り組んだ課題を一部ご紹介します。
課題1
- 課題
- サーバーのデスクトップに不要なファイルが散乱しているので綺麗にしたい
- 課題の背景
- サーバーに不要なファイルを置かないのは常識ですが、デスクトップに一時ファイルを置いて作業を行い、そのまま削除されずに残ったものがチラホラと・・
- 後で見た人も「このファイルは削除していいんだっけ?」とそのまま放置されて残り続けている状態
- いっそのこと必要なファイル以外は有無を言わさず削除してしまおう!
- 成果物
- 必要なファイル以外をサーバーのデスクトップから強制的に削除するスクリプトを作成した
- サンプルスクリプト
- 必要なファイル以外をサーバーのデスクトップから強制的に削除するスクリプトを作成した
# スクリプトのディレクトリを取得
$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Path
# デスクトップパスを取得
$desktopPath = [System.IO.Path]::Combine($env:USERPROFILE, 'Desktop')
# 例外として削除しないファイル名やフォルダ名のリストをテキストファイルから読み込む
$exclusionFilePath = Join-Path $scriptDirectory "ExclusionList.txt"
if (Test-Path $exclusionFilePath) {
$excludedItems = Get-Content -Path $exclusionFilePath
# デスクトップ上のすべてのアイテムを取得
$desktopItems = Get-ChildItem -Path $desktopPath
# アイテムが存在するか確認してから削除
if ($desktopItems.Count -gt 0) {
foreach ($item in $desktopItems) {
$itemName = $item.Name
if ($item.PSIsContainer -and $excludedItems -notcontains $itemName) {
# フォルダの場合は再帰的に削除
Remove-Item -Path $item.FullName -Recurse -Force
Write-Host "フォルダ '$itemName' を削除しました。"
} elseif ($excludedItems -notcontains $itemName) {
# ファイルの場合は削除
Remove-Item -Path $item.FullName -Force
Write-Host "ファイル '$itemName' を削除しました。"
} else {
Write-Host "アイテム '$itemName' は例外として削除されませんでした。"
}
}
Write-Host "デスクトップ上のすべてのファイルとフォルダが削除されました。"
} else {
Write-Host "デスクトップ上にアイテムが見つかりませんでした。"
}
} else {
Write-Host "エラー: '$exclusionFilePath' ファイルが見つかりませんでした。"
}
ExclusionList.txt
hogehoge.txt
Wireshark.lnk
課題2
- 課題
- タスクスケジューラーの決済システム関連のタスクが実行中ではないことを確認したい
- 課題の背景
- 決済システムをリリースする際、全てのタスクが停止している(実行中ではない)ことを確認した上でリリース作業を行っている
- Windowsのタスクスケジューラーでタスクの状態確認を行っているが、状態が「実行中」のタスクを見落とすこともある
- 状態が「実行中」のタスクだけを一目で確認できたら確認漏れが防げるのでは?
- 成果物
- 決済システム関連のタスクのうち、状態が「実行中」のタスクのみをリスト表示するスクリプトを作成した
- サンプルスクリプト
- 決済システム関連のタスクのうち、状態が「実行中」のタスクのみをリスト表示するスクリプトを作成した
# タスクスケジューラー内のディレクトと、取得対象の状態を指定する
$TaskPath = "\Microsoft\"
$TargetState = "Running"
Write-Output "状態が「実行中」のタスクです↓↓↓"
get-scheduledtask -TaskPath $TaskPath | Where-Object {$_.State -eq $TargetState}
Write-Output "`r`n状態が「実行中」のタスクです↑↑↑`r`n"
課題3
- 課題
- 決済システムにタスクやサービスを追加する際に必要な作業が明確ではない
- 課題の背景
- 決済システムのタスクやサービスを追加/削除する際に必要な作業がドキュメント化されていない
- 不明点があれば有識者に確認して作業しているが、作業漏れがあった際には正常にリリースできない
- 必要な作業がドキュメント化されていれば漏れなく作業できる
- 成果物
- 決済システムのタスクやサービスを追加/削除する際の手順書を作成した
参加してみた感想
今回「課題もくもく会」に参加した個人的な感想です。
普段の作業とは異なる分野に取り組めて新鮮だった
普段の業務ではシステム改修が主で、何かツールを作る機会はあまりありませんでした。
ですのでシステム改修とは別の部分の作業に取り組めたことは新鮮でした。
自分で選定した課題に黙々と取り組む時間はとても集中できましたし、時間があっという間でした。
時間配分が難しかった
時間を忘れて作業に集中しすぎて、危うく資料作成に費やす時間がなくなるところでした。
次回参加する際は時間配分を意識して作業に取り組みたいですね。
取り組む課題の選定が難しい
今回は個人作業の時間が約2時間ということで、その時間で解決できる課題を選定するのが意外と難しかったです。
時間が長ければ良いという訳ではありませんが、普段から課題に思う意識付けと、それに対する解決案を自分の中で持っておくことがスムーズな課題解決につながるのかなと思いました。
次回開催があればまた参加したいです!
We are hiring!!
ROBOT PAYMENTでは一緒に働く仲間を募集しています!!!
speakerdeck.com
www.robotpayment.co.jp