プログラマの仕事はコーディングだけじゃないんだけど

監視される社員

GitHubのコミットログを解析して、プログラマの労働時間を管理するという趣旨のWebサービスです。
プログラマとしての意見として、うーん・・・と思うところがあったので述べさせていただきます。
実際に使ったわけではなく、公式サイトの説明を読んだだけなので、一部事実と違う点もあるかもしれませんので、ご了承ください。

悪いアイディアじゃないけど・・・

正直、人様のサービスにケチをつけるような記事は書きたくはないのですが、プログラマの意見としては、正直このアイディアは現実に即していないなぁと思いました。

PCに監視アプリを入れて、操作や画面キャプチャ―、ブラウザで見たサイトのURLなどをすべて記録するような過剰に監視するアプリは良くないという思想のもとにこのようなアプリを作ったそうなので、その点に関しては共感できます。特にフリーランスの場合はこういうのは困りますね。他社の開発資料なども同じPCで取り扱っていますので、意図せずそういった資料を流出させてしまう可能性があります。

ちなみに、弊社ではこういった過剰な監視をするクライアントからの案件は、弊社の他のクライアントのセキュリティーを確保できないため一切お断りしておりますので、安心してご依頼ください。

また、まぁ賛否あるとは思いますが、”時間や場所にとらわれない新しい働き方” を推進しようとしているのに、時間でのみ管理する方法はどうなのか、というのがまず第1の感想です。この部分はひとまず置いておいて、そのほかの部分を解説します。

特にGitを使った勤怠管理は、参考の一つにはなると思いますが、プログラミング実務をやったことがない管理者や経営者が誤解してしまう可能性があります。
公式サイトをみても、そういったことが書いてるように見えなかったので、この点を説明したいと思います。

コミット時間そのものに意味があるのか?

コミット時間と作業時間は、必ずしもリンクしません。当たり前ですが、作業内容によってコーディングにかかる時間は変わってきます。タスクの粒度(規模・工数)を一定にするのは困難です。
また、コーディングスタイルとして、こまめに少しづつ作ってコミットする人、ある程度完成形になってからコミットする人、などいろいろなスタイルがあると思います。
一括でコミットする人はその間仕事してないことになってしまわないのでしょうか?

また、勤務時間外に作業して未払い残業や36協定の残業時間上限超過など重大な法令違反になることを防止できますというたぐいの説明がありました。(実際には逆にさぼってるかどうかを見たいんでしょうがね)ですが、こういう理由だと、コミットは9時から18時までしかできませんとか、始業時間になったからとりあえずコミットしとくか、とか本末転倒なことが起きそうです。

コード量と作業時間

実際にどういうロジックで算出しているのかわからないですが、もしかしたらコミット差分でコーディングした行数をみて、それで判断しているのかもしれませんね。

でも、それも無意味です。

コード量が多いから、大変な作業ではないですし、短いから簡単な作業であるとは言い切れません。
コード量の多さだけでは測ったら、単調で非効率なコードや、繰り返しが多いコードを書いて適当に水増ししたコードを書いている人が仕事をたくさんしているということになってしまいます。

たった1行のミスを見つけるために、膨大な時間デバッグをしているという可能性もありますよね?
また、優秀なプログラマほど、同じ内容を簡潔な短いコードで実装します。

作業量を行数で測るのはやめましょう。

こういった指摘は30年前からあります。行数で作業量を測るというのは時代遅れというよりは非常識です。

※もう一度言いますが、件のサービスがこういった実装をしているかはわかりませんのであしからず

そもそも、プログラマの仕事はコーディングだけじゃないし

そもそもの問題として、プログラマの仕事はコーディングだけではありません。コーディングは作業のごく一部です。
ミーティングや資料作成、テストやデバッグなどの作業が
特に、経験が豊富なエンジニアほど、コーディング以外の部分の作業が増えてくる傾向があります。
ですので、コミット履歴がない=仕事していないというのは完全に間違った論法です。

スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス WEB+DB PRESS plus
Amazonで貝瀬 岳志, 原田 勝信, 和島 史典, 栗林 健太郎, 柴田 博志, 家永 英治のスクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス WEB+DB PRESS plus。アマゾンならポイント還元本が多数。一度購入...

実際には…

ということで、Gitとの連携を売りにしていましたが、実際のところは微妙な機能なのかなと思いました。
ですが、実際に見てみると、PCの起動・終了・スリープの記録で勤務時間を管理しているようです。
一般的な勤怠管理・監視システムと同じような作りのようですね。一応、PCの起動・終了、スリープのみを監視してアップロードしているそうです。(と開発元は言っています)

ですので、一概に使えないサービスというわけではないと思います。
Slackやそのほかのサービスとも連携機能があるそうなので、そういう点では悪くないのかなと思いますし、利用料金も安いと思います。

管理者が見る管理画面でどのような表示がされるのかはわかりませんが、Git連携機能については上記のような認識で、参考程度に考えてください。

以上。プログラミング経験のない経営者やプロジェクト管理者向けの記事でした。

Amazon.co.jp
タイトルとURLをコピーしました