TOOL

タスク管理の手法

  • このエントリーをはてなブックマークに追加
  • LINEで送る

タスク管理の方法についてはいろんな方法・いろんなソフトが御座いますが、弊社ではgoogleスプレッドシートを使用しております。
スプレッドシートの良いところはやはりオンライン上で簡単に共有でき、同時編集できるところでしょうか。
※機能詰め込みすぎるとものすごく重くなるのが欠点ですが。。

またスクリプトエディタ機能を使うことによってチャットツール(弊社ではSlackを使用)に更新通知を送ることも可能です。

1.スプレッドシートにて管理表の作成

151002_01

必要な項目を洗い出します。
進捗状況はリスト化しておくと便利です。

2.投稿する為の鍵を入手

151002_03

https://yourslackdomain.slack.com/services
のIntegrationsから「Incoming WebHooks」を選択し、投稿する為のURLを取得しましょう。
※https://hooks.slack.com/services/xxxxxxxxx というURLになります。

3.スクリプトエディタの作成

まず投稿する箇所の宣言を行います。

[code lang=”js”]
var postUrl = "https://hooks.slack.com/services/xxxxxxxxx"; //先ほど取得したURL
var postChannel = "#activity";  //投稿したいチャンネル
[/code]

投稿したい内容を作成

[code lang=”js”]
function statusPost()
{
var dataStartColumn = 2; // データが開始する列のidx
var taskNumberColumn = 2; // タスク管理番号idx
var taskContentColumn = 5; // タスク内容列idx
var inChargePersonColumn = 9; // 担当者列idx
var progressColumn = 12; // ステータス列idx

var ColumnOffset = 1; // A列はoffset

var dataColumnNumber = 13; // データの列数
var range = SpreadsheetApp.getActiveRange();
var rowIndex = range.getRow();
var columnIndex = range.getColumn();
if(columnIndex != progressColumn){ return ; }
var sheet = SpreadsheetApp.getActiveSheet();

// ステータスに変更のあったtodo1行
var applicableLine = sheet.getRange(rowIndex, dataStartColumn, 1, dataColumnNumber);
if(!applicableLine){
return;
}

// ステータスセルの値
var status = applicableLine.getCell(1,progressColumn-ColumnOffset).getValue();

// タスク管理番号の値
var taskNumber = applicableLine.getCell(1, taskNumberColumn-ColumnOffset).getValue();
if(!taskNumber){
return;
}

// 担当者セルの値
var userName = applicableLine.getCell(1, inChargePersonColumn-ColumnOffset).getValue();
if(!userName){
userName = "unknown";
}

// タスクの内容
var taskContent = applicableLine.getCell(1, taskContentColumn-ColumnOffset).getValue();
if(!taskContent){
return;
}

// ステータスを変更した人の名前(googleのアカウント名)
var editor = Session.getActiveUser();

// シート名を取得
var title = SpreadsheetApp.getActiveSheet().getName();

// slackに出力する文章
var message = "進捗が更新されました。";

message += String.fromCharCode(10) + "チケットNo." + taskNumber;
message += " " + "担当:" + userName;
message += String.fromCharCode(10) + taskContent;
message += String.fromCharCode(10) + "ステータス:";

if( status == ‘完了’ ){
applicableLine.setBackgroundColor("#d9ead3");
applicableLine.setFontColor(‘black’);
message += "【完了】";
}
else if(status == ‘作業中’){
applicableLine.setBackgroundColor(‘#cfe2f3’);
message += "【作業中】";
}
else if(status == ‘レビュー待ち’){
applicableLine.setBackgroundColor(‘#f4cccc’);
message += "【レビュー待ち】";
}
else if(status == ‘マージ待ち’){
applicableLine.setBackgroundColor(‘#f4cccc’);
message += "【マージ待ち】";
}
else if(status == ‘保留’){
applicableLine.setBackgroundColor(‘#fff2cc’);
message += "【保留】";
}
else if(status == ‘未着手’ || !status){
applicableLine.setBackgroundColor(‘white’);
message += "【未着手】";
}

message += String.fromCharCode(10) + editor + " " + "wrote.";
message += String.fromCharCode(10) + "————————————————";

if(status != ‘未着手’){
sendHttpPost(message,title);
}
}[/code]

投稿内容に関しては周知したい内容を自由に組み合わせると良いでしょう。

4.トリガの作成

スクリプトエディタにて
リソース>現在のプロジェクトのトリガー

151002_04

こちらで実行を行うfunctionと実行型のタイプを選択します。
※今回ですと「スプレッドシート」から「編集時」となります

すると進捗ステータスを更新した際に

151002_02

上記のような形で通知されます。

応用型で時間指定などにしてあげてば一日の進捗報告などにも使用できます。
一度作成してしまえば、他プロジェクトでも活用できるので運用が楽になります。

ただ、スプレッドシートは容量が重くなると動作も重くなります。
終了したプロジェクトは別シートに移すなどしてバックアップを取るなどの対策を行った方が良いでしょう。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*