カテゴリー
トピック 解説

【解説】VisiWork / Task Builderとスケジューリング・オートメーション

この記事を読むのに必要な時間は約 13 分です。

大規模なスケジュール管理の課題

タスク・プロジェクト管理ではタスクの数が増えてくるにつれてスケジュールの効率的なメンテナンスが課題となります。

スケジュール作成時の課題

タスクを初期登録する段階では、大量のタスク(チケット)をREDMINEに投入する必要があります。その場合は、CSVファイルからの一括登録機能がREDMINEにあるので、それを使用することができます。しかしながら、それを使用する機会は、あるタスクについて一度きりしかありません。

どういうことかというと、あるタスクAについて一括登録機能を使った後で、その同じCSVファイルからタスクAの情報を更新しようとしても、もはや一括登録機能を使用することはできず、更新画面からマニュアルで操作する必要があるということです。

画面上で一括更新ができる機能はありますが、一括登録の作業からの連続性はなくなり、一括登録時に使用したCSVファイルは役に立ちません。

一括登録作業を行うときは、まだそのタスクに関する情報を十分理解していない場合が多く、登録後にガントチャートなどを見て初めて投入したデータの不備や問題に気づくことが多いものです。そのため、一括登録がスピーディーに終わったとしても、その後の、修正作業の繰り返しに多くの時間を取られることが少なくありません。これが、スケジュール作成時の課題です。

スケジュール更新時の課題

無事にスケジュールが作成できたとしても、そのスケジュールの見直しが必要になることがあります。

タスク・プロジェクト管理において、スケジュールに見直しがかかることが珍しくはなく、むしろ日常茶飯事であると言えます。そのために、ガントチャート上でスケジュールを簡単に修正できる便利な機能があります。(有償プラグインのLychee Redmineは、ガントチャートの機能がよくできていて人気があります)

スケジュールの見直し箇所が少ない場合、ガントチャート上でスケジュール修正をできることは確かに便利なのですが、数多くの修正が連鎖的に必要になる場合などは、ガントチャート上での修正もそれなりに手間のかかることがあります。

スケジュールの修正は、ガントチャート上でできることばかりではありません。例えば、プロジェクト全体に係るような修正、例えば、重要な部品の名称が変更になる場合などは、相当数のタスク名(題名)に対して修正が必要となる場合があります。そのような場合は、チケットを横断してタスク名に対する部分的な置換処理ができると便利なのですが、REDMINEにその機能はありません。

このように、タスクに対して連鎖的な更新が必要となる場合や、プロジェクト全体に影響する変更があった場合に操作が煩雑になることが、スケジュール更新時の問題です。この問題のために、プロジェクトにとって重要なスケジュール情報のアップデートが遅れたり、さらにそれが原因となってスケジュール情報が形骸化することはより深刻な問題であり、そこへの対処が課題であると言えます。

VisiWork / Task Builder

以上述べた課題に対処するために、VisiWorkサービスでは、VisiWork / Task Builder(ビジワーク/タスクビルダー)(以下では、Task Builderと略します)を開発しました。

Task Builderは、REDMINEで管理するスケジュール・メンテナンスの効率化や自動化を可能にします。REDMINEはWEBを経由して操作されるシステムです。WEBシステムの操作の効率化については、RPA(ロボット・プロセス・オートメーション)がよく知られていますが、Task BuilderはRPAより効率的で精度が高く、安定的な自動操作を可能にします。

RPAは、対象となるシステムの業務に関する知識なしに、プログラムされた操作を繰り返します。それに対して、Task Builderは、スケジュール・メンテナンスに特化しているため、スケジュール情報を構成するタスクとその前後関係についての情報モデル(ネットワーク・スケジュール情報)が組み込まれています。

(図:タスク情報とその前後関係についての情報)

Task Builderはデスクトップで稼働するMSエクセルのマクロブックとして実装されていて、このエクセルブックは、内部でREDMINE APIを呼び出すことでREDMINEと連携するため、デスクトップ上のツールでありながら、オンプレミス配備された、あるいはクラウドサービスとしてのREDMINE、どちらについても使用可能です。

(図:Task Builderの基本操作画面)

Task Builderブックには、以下の13のシートが含まれています。

 シート名説明(シート名日本語)
1mainメインシート(操作画面)
2issueチケット
3issue_relationチケット関連
4relation_type関連タイプ(説明)
5projectプロジェクト
6trackerトラッカー
7statusステイタス
8project_membershipプロジェクトメンバーとロール
9custom_fieldカスタムフィールド
10issue_categoryチケットカテゴリー
11issue_priorityチケット優先度
12versionバージョン
13queryクエリー

これらのうち、TaskBuilderとして基本的な役割を果たすのは、チケットシートとチケット関連シートです。

(図:コマンドカラムを持つチケットシート)
(図:コマンドカラムを持つチケット関連シート)

これらは、それぞれ、前述のタスク情報とタスク前後関係情報が納められているシートです。そのほかにも、4から13は、REDMINEの重要な設定情報が収められるシートで、通常のREDMINEの画面操作では得られない各種の設定情報が含まれています。そのため、Task Builderは、いろいろと設定情報を活用した応用も考えられます。

チケットシートとチケット関連シートに書かれた情報はそのまま、REDMINEに登録することができます。登録だけではなく、参照や更新も可能です。ポイントは、これらのシートが単にチケット情報やチケット関連情報が列挙されたシートではなく、コマンドが追加されたコマンドシートになっていることです。

ですので、チケットを登録する際には、チケットシートにチケット情報を記載し、コマンドにC(Create)と記入すれば、チケット情報が登録され、シートには、REDMINEで生成されたチケットIDが返ってきます。その後、チケットの情報に変更があった場合は、その同じ行を修正して、コマンドをU(Update)にすれば、更新が行われます。

また、検索も可能で、ステイタスを指定するか、REDMINEのクエリーを指定すれば、該当するチケットが取得でき、それを更新したければ、Uコマンドを記入してから情報を修正すれば良いのです。

つまり、同じエクセルシートが、そのまま、登録に使用されたり、また検索結果の更新に使用できたりするのです。したがって、Task Builderは、REDMINEの情報について、エクセルとREDMINEの間でのROUND TRIP(ラウンドトリップ:往復旅行)が行えるツールであると言えます。

シンプルでパワフルなTask Builderスクリプティング

Task Builderは、単に、人による操作がパワーアップされ精度が向上するだけではありません。さらに、大きな効率化をもたらすことができます。その能力の一つがTask Builderスクリプティングです。以下では、Task Builderスクリプティングと、スケジューリング・オートメーションという概念について説明します。

タスク・プロジェクト管理のスケジュールは、必ず何らかの業務の結果として生まれてくるものです。例えば、製造業では営業活動の結果として生まれる受注情報にその源があるでしょう。その受注情報に対して、製造工程の都合や、部品の状況に応じてスケジュールが決まってきます。

受注情報が、例えば、Salesforceのような外部システムから得られるのであれば、その情報をもとに、REDMINE側のスケジュールを自動あるいは半自動的に生成する、あるいは更新することができます。このような、REDMINE側(より一般的に言えば、スケジュール管理システム側)でのスケジューリング作業のやり方を、VisiWorkでは、スケジューリング・オートメーションと呼んでいます。

このスケジューリング・オートメーションは2レベルで考えることができます。まずは、半自動的なやりかたです。下図では、Salesforceからの受注情報がアナログなレポートで得られて、担当者がそのレポートからREDMINEのスケジュールをTask Builderを使用して更新する様子を、レベル1として描いています。

さらに、受注情報がSalesforceからデジタル情報として得られるのであれば、さらに一歩自動化を進めて、レベル2として描かれている流れで、スケジューリング・オートメーションを行うことができます。

レベル2のような流れで、チケットシートやチケット関連シートを読み取る、あるいは、これらに書き込みを行うプログラムがTask Builderスクリプトです。

チケットシートや、チケット関連シートがエクセルに納められていますから、Task Builderスクリプトは、プログラミング言語のPythonなどを使用して、シンプルに効率的に開発することができます。シンプルではあるものの、業務の効率化に大きく貢献するパワフルなコードになることでしょう。

(図:Task Builderと2レベルのスケジューリング・オートメーション)

VisiWorkでは、このようなTask Builder 、Task Builderスクリプト、さらに外部システムと連携するための仕組みで構成される「Task Builderサーバー版」を開発中です。プラットフォームとして、Microsoft Power PlatformとGoogle Workspaceを予定しています。

VisiWork / Task Builderは、どんな状況で役立つか?

Task Builderや、Task Builderスクリプティング、スケジューリング・オートメーションが役に立つ状況をまとめると以下のようになります:

  • いったん登録されたスケジュールを効率的に更新する
  • 部門別に登録されたタスク(チケット)に対して、共通的な特徴を使って自動的に前後関係などの関連付けを行う
  • 外部システムとデータ連携するためのETL処理における、REDMINE側のエンドポイントとして利用する
  • 営業情報から自動・半自動的に生産スケジュールを作成する
  • REDMINE内に格納されたスケジュール情報を外部で一括処理する
  • REDMINE内に格納されたスケジュール情報から、データを抽出する
  • REDMINE内に格納されたスケジュール情報を外部で蓄積し、ビッグデータとして扱う
  • REDMINE内に格納されたスケジュール情報から、TableauやPower BI等のBI(ビジネス・インテリジェンス)ツールに連携する

どうすれば使えますか?

VisiWork Task Builderは、VisiWorkの各種支援サービスを活用中は、無償で提供いたします。各種支援サービス終了後は、有償にて提供いたします。

この記事に関する質問やご意見がありましたら、当サイトお問い合わせページまでお寄せください。

もっと詳しく知りたい…

お気軽にお問い合わせください

VisiWork、REDMINEの使い方、導入事例、あなたの疑問、質問にお答えいたします。無料個別相談会も開催しております。