なあなあで仕事していると、そのうちクレームになりますので・・・(1敗)
こぢんまりした副業だと意外とあるあるなのかなと思いますが、せっかくなので残します。
課題は記録に残る形で残しましょうね。
人から仕事を貰っているとあれやこれやと色々投げられると思います。
課題管理できてないと納期や納品イメージがぼやけて顧客満足度が下がると。
それとなく作った課題管理表で運用できているので「なあなあで受けちゃってるなぁ」と思っている方はコピーして使ってみてください。
依頼はテキストベースで貰うのが鉄則です・・・
backlogとかreadmineとか使えばいいですが、そんなにしっかりしなくてもいい規模ならこんなスプシでいいのではないでしょうか。
課題管理表に書いてないことはやりません!と割り切るのも大事です。
自分がいつどのくらい稼働したのか記録しましょうね。
進捗悪いけど、ちゃんと稼働してるの?みたいな疑いの目を向けられるのも嫌なので始業終業を記録していきましょう。
稼働時間に報酬を受けているわけではないですが、とはいえ一つの指標とされがちですから。
自分の作業効率もみえるようになりますよ。
よかったらコピーして使ってみてください。
下記のコードを拡張機能>AppsScriptにコピペしてください。そして
シート上の「start」のブロックを右クリックして「inputStart()」をスクリプト割り当て
シート上の「stop」のブロックを右クリックして「inputStop()」スクリプト割り当て
してください。
シート上のstartをクリックすると、B列の今日の日付の行にクリックした時刻が入力されます。
シート上のstopをクリックすると、C列の今日の日付の行にクリックした時刻が入力されます。
const SHEET = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const NOW = Utilities.formatDate(new Date(), "JST", "yyyy/MM/dd HH:mm:ss");
function inputStart() {
const startCol = 2;
var data = SHEET.getRange("A:A").getValues();
var currentDate = new Date();
var row;
for (var i = 0; i < data.length; i++) {
if (isDate(data[i][0]) && data[i][0].toDateString() === currentDate.toDateString()) {
row = i + 1; // 行番号は1から始まるため、インデックスに+1する
break;
}
}
SHEET.getRange(row, startCol).setValue(NOW);
SHEET.getRange(row, startCol).setNumberFormat('H:mm')
}
function inputStop() {
const endCol = 3;
var data = SHEET.getRange("A:A").getValues();
var currentDate = new Date();
var row;
for (var i = 0; i < data.length; i++) {
if (isDate(data[i][0]) && data[i][0].toDateString() === currentDate.toDateString()) {
row = i + 1; // 行番号は1から始まるため、インデックスに+1する
break;
}
}
SHEET.getRange(row, endCol).setValue(NOW);
SHEET.getRange(row, endCol).setNumberFormat('H:mm')
}
function isDate(value) {
return value instanceof Date;
}
週の合計とか月の合計とかはあまり考えずに力業で関数入れてます。
うまくやってください。
簡単なことでも積み重なると強敵になりますので・・・
落ち着いていきましょう。
コメント