【ビジネス書感化シリーズ】PDCA

最近、仕事をがむしゃらにやるのを少し止めて、先人たちの知恵を借りることにした。
理由は色々あるけど、一番大きいのは「今いる会社でしか使えない働き方をしている」と強く自覚したからである。
大学時代から「意識高い系かよwww」と揶揄していた事柄を学ぶのは若干の抵抗があったが、いざやってみると意外と面白かったりする。
しかし、いざやってみると(自分にとっては)机上の空論だったり、無意味な教えもあった。取捨選択はどんな取り組みでも必要である。

自分用メモとして、以下の内容でまとめてみる。
・実際に役に立ったフレームワークだけ取り上げる。
・具体的な自分のやり方を記載する。

ちなみに自分の現在の業務内容、プロフィールは以下の通りである。

・自社開発製品の製品サポート
・マネージャー
・30代前半

多分三日坊主になるシリーズ、やってみる。


【フレームワーク名】PDCA
【対象】全業務
【効果】業務の改善。業務の洗い出し。

【概要】
業務を以下のフェーズに分類して改善を続けていくというもの。

Plan(計画立案)
Do(計画実行)
Check(実績確認)
Action(計画改善)

これを1サイクルとし、次サイクルではActionで出た改善策を盛り込んだ上でPlanを行う。
繰り返し実施することで、業務が改善していく。
サイクルを繰り返すので「PDCAを回す」なんてよく表現される。

【実際に取り入れて感じた課題と解決方法】
「PDCAを回せ」とは簡単に言うが、実際やってみるとうまく行かなかったり、ほぼ無意味(改善しない)な場合が多い。
考えた結果、次の原因、施策に行き当たった。

・そもそも何を改善すれば良いのか分からない。(何をCheckすれば良いのか分からない)
PDCAの期間を明確に決める。また、その期間は短く取る。(長くても1Q)
・そもそもPlanが作れない。
Goal(目標)を設定する。そこから、ロジックツリー的に考えればPlanが立案できる。(G-PDCAなんて呼ばれていたりもする。)

後は「堅苦しく考えず、とりあえず形だけやってみる」ことも大事だと感じた。しっかりしたアクションを出そうと悩んでPDCAやらなくなるぐらいなら、適当なActionを出したほうがまだマシである。

【現在の具体的な取り組み方】
現状は個人用業務改善策兼タスク管理として使っている。

・ExcelでG-PDCAブックを作成する。
・期間は1週間
・Goalは特に何かない限り「今Quarterの目標達成」とする。(現在の会社では人事評価が1Q毎にあり、そこで次Qの目標が設定される)

  1. 週の始まりにPlanを作成する。
  2. 日々の業務終わりにPlanの横に実際に行ったDoを記載する。
    その際、総括として「OK」「微妙」「NG」でざっくり評価している。(Checkでやっても良いかもしれない。)
  3. 週の終わりにPlanとDoを比較し、何が出来ていなかったか、そしてその理由は何かをCheckする。
  4. Checkの内容から、それを解決する方法をActionとして記載する。

【サンプル】
PCCABook

【今後やろうと思っていること】
やってみれば小学生でも出来る単純なことだが、仕事をただ適当にやってきた自分はここからスタートする。
今後の発展としては以下を考えている。

・個人用でしばらく使った後、チームメンバー全員に運用してもらう。
・目標と項目がバラバラの表記になっているので、関連付けをより強調したい。
ただし、関連付けられないものも現実的にはあるので、チームで運用する前にそこは決めておきたい。
・Excelではなくてシステム化したい。

【現状わかっている課題】
また、これ1つで万能なフレームワークでは全く無いので注意が必要である。
特に注意しないとと感じた具体的な点には以下が挙げられる。

・Planが現実的に(工数的に)達成可能なものか。
→別途工数表を用意し、それと照らし合わせることが必要。
まだ試行錯誤中だが、PDCAブックはあくまで業務改善の為のフレームワークであり、
タスクについては工数管理表をベースとし、PDCAはあくまで補助的なものだと考えている。

中小企業で「後は任せた」でしか働いたことがないから、他社がどういう仕事の進め方しているか全く分からん。
大企業の人々にとっては、10年以上前に過ぎた道を今更歩んでいるのだろう。きっと。

Windowsのサインイン(RDP)が異常に遅い場合の対処方法

昔から運用しているHyper-Vで仮想化されたWindows Server 2019環境で、突然RDPが出来なくなる事象が発生した。
正確には、ID/PASSの入力は通り、画面は開くのだが、ずっとWindowsのサインイン時の背景画面のまま何も動かず、数分するとそのままRDPのウィンドウが閉じてしまう。
Hyper-V Managerからなら接続できるが、それでも数十分は上記の背景画面のまま待たないといけない状態である。

ログにも何も出ておらず、Microsoft社に問い合わせても原因不明だったので、しばらく運用回避していたが、先日ようやく対処方法が分かったので、備忘としてここに記載する。

【対処法】
1. Hyper-V Manager等で何とかサーバーに入る。
2. ローカルグループポリシーを開く。(スタートメニューを開き「gpedit.msc」と入力してEnter)
3. [コンピューターの構成]-[Windowsの設定]-[セキュリティの設定]-[ローカルポリシー]-[セキュリティオプション]を開く。
4. [対話型ログオン:最後にサインインしたユーザーを表示しない]を有効にする。

どうもユーザー数が多い環境で生じやすい傾向にあるようだ。
推測だが、ユーザーの検索か何かで時間が掛かってしまっていると思われる。

試用版Windowsを自動延長しながら使う

仕事柄、動作確認用に試用版Windowsを使うことが多い。
試用版はその利用期間が制限されているが、下記のように「slmgr -rearm」コマンドを実行すれば期間の延長が可能である。
(勿論、その延長にも上限回数がある。)
https://www.atmarkit.co.jp/ait/articles/1005/28/news108.html

長期間使う場合は延長が必要になるが、ついついうっかり忘れてしまうことがある。
期限が切れて一定時間経つとシャットダウンされてしまうので、お叱りを受けながら起動、延長、再起動の操作をする羽目になる。
そこで、自動で延長を行うScriptを作成した。

ちょっと強引だが、有効期限状態を取得し、期限切れを検知したら延長と再起動を行う。
期限が切れていなければ何もしない。

これをタスクスケジューラで5分毎ぐらいで実行させれば良い。
ただし、日本語版でしか動作しないのでご注意を。

別に認められた延長期間内で使うことを便利にするだけのScriptなので問題は無い・・・筈・・・

Google Chromeで他アプリケーションを開くときにポップアップを表示しないようにする

Google Chromeから.xlsxファイルなどを開く際、デスクトップ版Excelで開こうとすると以下のようなポップアップが出る。

業務上頻繁にこれを使う必要があるので表示しないようにしてほしいという問い合わせがあった。
調べてみたところ、以下の手順で対応が出来た。

  1. Chromeを閉じる。
  2. 下記のコマンドを管理者として実行する。
  3. Chromeを起動し、ファイルを開く。
  4. ポップアップに「このタイプのリンクは~」というチェックボックスが表示されるので、これにチェックを入れて開く。
  5. 以後、ポップアップが表示されなくなる。

参考:http://windowsbulletin.com/ja/fixing-always-open-links-of-this-type-in-the-associated-app-missing-in-chrome/

なお、ポップアップを再度表示させたい場合はレジストリを戻すのに加えて手順が必要になる。具体的には以下の通り。

  1. Chromeを閉じる。
  2. エクスプローラで[%HOMEPATH%\AppData\Local\Google\Chrome\User Data\Default]を開く。
  3. [Preferences]をテキストエディタで開く。
  4. 以下のような記述部分があるので、この[false]を[true]に変更し、上書き保存する。(ここでは許可したアプリケーションをExcelとする。)
    修正前:”protocol_handler”:{“excluded_schemes”:{“ms-excel”:false}}
    修正後:”protocol_handler”:{“excluded_schemes”:{“ms-excel”:true}}
  5. レジストリを戻す。
  6. 元に戻っているか確認する。

プロジェクトマネージャーって仕事の難しさと面白さが漸く分かってきた気がする。
そして、そもそもプロジェクト自体を定義できていないことに気付いた。
自分には足りないものだらけだ。30歳にして本格的に勉強しないと行けないと気付いた。
この一ヶ月で結果を出そう。そうしよう。

タスクスケジューラを日本時間午前9:00に設定してはいけない

サーバーのディスク使用量などの情報を月次でメール配信するタスクを設定しているのだが、去年後半辺りから挙動がおかしくなってきた。
月末に起動するように設定しているのに、何故か月末の一日前にも起動してしまう・・・

結論から言うと、これはWindowsのバグである。
以下、引用だが、以下の条件が揃っている場合、起動すべき日の前日にもタスクが起動してしまう。
(起動すべき日にも起動する。つまり、二回起動する。)


以下の 4 つの条件がすべて該当する場合に本事象は発生いたします。
● Windows のバージョンが以下であること。
– Windows 8.1 / Windows Server 2012 R2
– Windows 10 Enterprise 2016 LTSB / Windows Server 2016
– Windows 10 Version 1903
● 2019 年 3 月 第 3 週以降の更新プログラムが適用されていること。
※ Windows 10 Version 1903 はリリース段階から該当します。
● 毎週や毎月の指定された曜日に実行するタスクであること。
● タスクの実行時間が日本時間 AM 9:00 (協定世界時 0:00) であること。

引用元: 曜日指定のタスクが前の曜日に実行されてしまう問題について


多分、世界標準時で0:00に実行することで前日と当日の区別がうまくできていないのだと思う。しらんけど。


マネージャーになって工数を意識するようになると、仕事って根性でやってはいけないんだなぁと今更思うようになった。
今までお世話になったマネージャーの方には頭が上がらない。

Windows Update KB4475591で凄く困った

タイトルは4年ぐらい前に書いた記事のオマージュだったりする。

2019/10頃から、Excelでネットワーク上の同じファイルに対し、複数回保存を行うと、
「別のユーザーがサーバー側のコピーを更新したため、今の状態では変更した内容をアップロードすることができません。」
というメッセージが表示される事象が頻発するようになった。

結論から言うと、これはKB4475591の影響である。
Microsoft社に問い合わせたところ、KB4484198をインストールすると解決する模様。
参考: https://support.microsoft.com/ja-jp/help/4484198/november-18-2019-update-for-office-2016-kb4484198

直ぐに適用が難しい場合、アップロードセンターの設定画面を開き、「ファイルを閉じたときに Officeドキュメントキャッシュから削除する」のオプションにチェックを入れると回避できるようになる。
エラーの原因は、クライアントのキャッシュとサーバー上のファイルとの不整合のようだ。
参考: https://social.msdn.microsoft.com/Forums/en-US/2bb8613d-5580-441c-9049-1a43825cedbf/upload-failed-your-file-was-not-uploaded-because-your-changes-can-not-be-merged-with-changes-made?forum=officegeneral

ちなみに、「クイック実行」でインストールしたOfficeではWindows UpdateによってOfficeに更新が入らないので、この問題は発生しない。
MSI形式でダウンロードしたOfficeにだけ発生する。
つまり、ボリュームライセンスを買っているような大企業とかでしか発生しない。イジメなのだろうか。


色々あって、仕事で昇格し、マネージャーという立場になった。
技術者では完全に無くなっているけど、一般人として、だれもがなんちゃって技術者になれるように整備するのが自分の役目だと考えるようにしている。

IISにおけるSSL証明書更新の半自動化

仕事で、Windows ServerのIIS(Internet Information Service)上で稼働しているWebサービスを運用している。
当然HTTPSの為、SSL証明書を定期的に更新しなければならない。
更新はIISマネージャ上で簡単に実行できるのだが、運用しているサーバーが多くなってくると、煩わしい上に作業ミスや漏れが発生しやすくなる。

そこで、証明書差し変えbatを作成した。
内容自体は簡単なのだけど、思った以上にネット上で情報が見つからなかったので、ここにメモする。

【前提】
・pfxファイルは既に持っており、batと同じディレクトリに格納されている。
・証明書ストアは[Webホスティング]にする。
・古い証明書がバインドされているサイトはすべて新しい証明書にバインドしなおす。

IISマネージャ上でできることは全てappcmdでも実行できると思っていたのだけど、どうもそうでもないらしい。


技術の勉強、全然していないなぁ。
30歳になり、脳が固まっているのを感じる。

LINE Notifyでメッセージを送信する方法(C#)

LINEで特定のグループに通知を飛ばす、いわゆるbotのようなやつは、実は簡単に実装できる。

  1. まず、下記ページからLINEにログインする。
    https://notify-bot.line.me/ja/
  2. マイページに移動すると「トークンを発行する」というボタンがあるので、これをクリックする。
  3. 通知したいグループを選択し、トークンを発行する。
  4. トークンを用いて、HTTPリクエストを送る。詳細な仕様はAPIドキュメント参照。
    https://notify-bot.line.me/doc/ja/

例えば、C#では以下のようにしてメッセージ通知ができる。


結婚してから、お金の管理がクレジットカードだと若干面倒になってきた。
割と本気でLINE Payに移行しようか検討中。

デュエルリンクスデッキメモ

懲りずにまたデッキメモを貼る。
以前主力だったデーモンデッキは鳴りを潜め、環境デッキに魂を売っているが、それでも魔導、バンパイアだけは使わないのだ。コアキメイルは脳筋だから使ってよい。

コアキメイル

今月(2019/1)の デュエルキング達成デッキ。 ホントアホみたいに強い。あえて注意点をあげるのであれば、特別な事情がない限り「コアキメイルの金剛核」を使った後はすぐに除外をしてコアキメイルの自壊を防ぐのを怠らないこと。後回しにすると「死者への供物」や「狡猾な落とし穴」でコアキメイルを破壊され痛い目を見る。

カラクリ

デュエルキング達成後に構築したデッキなので真価は未知数だが、デッキが凄くよく回る。「死者への供物」とのシナジーが強い。ドローできないというデメリットが大きくて今まで評価していなかったのだけど、このデッキなら「カラクリ解体新書」でドローができるのであまりデメリットにならない。バック干渉が弱いかもだけど、ガン伏せには「幻層の守護者アルマデス」を使って対応していく。なお、カラクリの強制攻撃効果は結構忘れやすいので使い始めはプレミ多発していた。まぁ今もしてるけど。

TRAP-U.A

先月(2018/12)のデュエルキング達成デッキ。今まで「トリッキー」で手札から「‘U.A ペナルティ」を墓地に落として「U.A スタジアム」をサーチするという動きをしていたが、どう考えても「バージェストマ・マーレラ」でデッキから落とす方が確実だし、墓地からモンスターとして復活させることができるので非常に優秀だったのでトラップ軸に変更した。「波紋のバリア ウェーブフォース」以外は墓地から復活、そのまま除外が可能なので、トラップこんだけ入れていても「狡猾な落とし穴」が発動させやすいのも優秀なポイント。今月もしばらくこれで戦っていたが、コアキメイルには勝ち筋が薄く、乗り換えに至った。

レベルアップデーモン

「アドバンスドロー」型のデーモンデッキだが、スキルを「レベル上昇」にして、アドバンスドローを行いやすくした。それでもでデーモンパーツを集めるのに時間がかかるので、「クリボー」
「波紋のバリア ウェーブフォース」 を積んで耐えられるようにしている。ただ、やっぱり初動が遅いのは否めず、ランク戦ではあまり使えない。

サイバーダークエッジ

「局所的ハリケーン」を発動した後、「サーバーダークエッジ」に「比翼レンリン」を装備し、攻撃力を1500アップさせ、2回ダイレクトアタックするだけの簡単な作業。「暗黒界の取引」で「比翼レンリン」を少しでも墓地に送りやすいようにしている。


WordPressバージョンアップしたらエディタの仕様がめっちゃ変わっていて驚いた。前のほうが使いやすかった気がするけど、慣れれば都なのだろう。多分。


あ、TwitterやFacebookで報告したけど、婚約しました。感謝の気持ちを忘れず、これからもマイワイフに愛想つかされないようにしなくては。

タスクスケジューラの結果通知

Windows Serverで日時作業や定期的なメンテナンスを行う場合、タスクスケジューラで実行することが多い。
しかし、そのタスクが実は失敗していたが、それに気付かずずっと運用していた・・・というシナリオは思ったより多い(自分の周りでは)。
本来的にはそのタスクにエラー通知なりを入れておくのが筋なのだが、ロジックが込み入っていてすぐにはエラー通知が実装できない場合がある。

暫定処理だが、そんな場合はタスクの結果を定期的に確認するタスクを仕込むと楽である。
例えば、AM6時には完了しているはずのタスク「TaskName」であれば、以下のTaskCheck.ps1をAM6時に実行するように設定すればよい。
なお、このサーバーから利用できるSMTPサーバがあることを前提としている。

繰り返しだが、暫定対応策である。
本来は本ロジックにエラー通知を仕込むべきだと思う。
せめてタスク失敗時のイベントをトリガーにしてエラー通知をさせたいのだが、意外とその方法が見つからず原始的な方法にしている。
一応、想定した時間(例ではAM6時)に終わらなかった時のことを考えて、実行中の場合は別の通知を行うようにほのかな工夫はしている。

ただ、ごちゃごちゃして専門家でないと分からないルーチンより、このほうがなんちゃって管理者でも理解しやすく、意外と受け入れられやすかったりする・・・


Mac miniを買った。
ついでもトラックパットとキーボードも新調し、20万円なり。
節約しなきゃ・・・なのだが、どうも散財癖が身についている。
ちょっとしたことで東京へ往復12,000円弱かけて行っちゃうし。

だからって訳では全くないけど、いい加減結婚したい。