A boss who wants daily reports

29 Feb 2012

Working for a company where you have to send your daily reports, every day after your job? Does it take 1/4h, or even sometimes 1/2h to do that?

Yeah, that can be painful. At least in my opinion. I've been in that position for a few times, and here are some practices that may make your job easier. <!-- more -->

This post is more oriented to software developers than designers. The main reason is that developers use Version control systems (if not, start using it!), such as CVS, SVN, Git, Mercurial, ... you name it.

Practices

OK, let's get down to the thing.

  1. Keep your work organized. That means, if your today's tasks are:

    • hide the navigation bar
    • make a banana blue colored instead of red
    • correct the typo on the homescreen
    • refactor that ugly class
    • add twitter support

    Do task by task. One by one. If you went changing the banana's color, don't touch that navigation bar code until you're done with banana.

  2. When you're finally done with banana, COMMIT. And that's the trick. If you think about what you're done; You've made a small task implementation, committed the change, and that's now logged in the repository.

So if you go step by step, and implement all of those tasks, task by task, commit by commit; you'll have a commit message for each of those tasks done.

And that means - more than half of your report is already written somewhere :)

Export

I'm leaving this part to you. Here are some quick workarounds that did the job for me, but probably you'll end up with a better solution.

SVN

If you're working with SVN, most likely you're using a nice GUI for that. See if it has the option to export the log nicely.

I haven't found it that useful as Git for the command line support, so I've made a small bash script to do the job:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
# SVN Log export script for the current day
# This script is made to make your job easier and feel free to use / modify it.
# Written by @supermarin | supermar.in
# COPY THIS SCRIPT IN THE WORKING COPY ROOT DIR (e.g. ~/Workspace/myProject)

USERNAME='YOUR_USERNAME'
PASSWORD='YOUR_PASSWORD'


createLog(){
  svn log --username $USERNAME --password $PASSWORD -r {"$TODAY 00:00"}:{"$TODAY 23:59"} |grep -Ev $REMOVE_DASHS |grep -Ev $REMOVE_EMPTY_LINES |grep -Ev $REMOVE_HEADERS
}


TODAY=$(date +%Y-%m-%d)
REMOVE_DASHS=[-]\{3,\}$ 
REMOVE_EMPTY_LINES=$^
REMOVE_HEADERS=^[r][0-9]+.*$

echo "Generating report for: $TODAY"

  createLog > ~/Desktop/Report_$TODAY.txt

echo "Done!"

The script will output logs for the current day, and it's far from perfect;

  • The first line is always from yesterday (some SVN workaround)
  • The output is probably for all the users, so it works if you're the only dev on that day/repo

It's mostly here to give you a basic idea where to look forward. Some Ruby / Python could make it a lot better.

Git

If you're a git user, that can look something like:

1
$ git log --author=supermarin --format=%s --since=today

And that outputs:

1
2
3
4
5
6
7
8
Moved the blog out from public_html
Customised disqus and removed facebook
Added -> more on the post, configured comments with disqus
Enabled Google plus one
Generated the hello world post
Trying to set it on the subdomain properly
Forgot to add Rakefile
Set the blog root folder properly

Sure you'll have some extra lines, that's fine; It's a lot easier and faster to read your report, and remove a line, than remembering, or writing down the whole report.