明らかに状況が変わってきている今日のプログラミングとは?

増18.ビッグデータによるプログラマの復権

»

●プログラマの日報

 昔は、「プログラマも日報を書いていたな」と、ふと思い出しました。もちろん、いまでも「今日、何をやったか」というような日報は書いています。「何をやったか」は収支計算上のプロジェクト名だったり、工程名だったりします。それに対して、「プログラマの日報」は、もっと技術的な細かい内容を指します。

 ある時期から「書かなくてもよい」と指示されて日報を書かなくなったのですが、理由は以下のことだったのではないかと考えます。

  • (特に初心者の)リーダーが技術的な細かい日報を見ても、「意味のないもの」「技術者の自己満足で、無駄」としか思えなかった
  • 日報として提出されてしまうと、リーダーは対応を求められるが、とても対応できる数ではなかった
  • 経験豊富な、管理職扱いの、今までの実績から収支に責任を持たない(多少の赤字を認められる)仕事をしても誰も文句を言わない、ぶっちゃけ暇な、技術系の人間がたくさんいてレビューしていたため、プログラマの日報のようなデータの蓄積はさほど必要なかった

 しかし、今振り返ってみますと、以下のように考えられます。

  • 初心者のリーダーならそう思ったかもしれないが、同じ人が経験を経て、もう一度同じ内容を見たら、意味を見いだすに違いない(と筆者は考えます)
  • すべての提出物を同等に処理する必要はなく、直属の上司は「データを蓄積する」だけとし、別工程(テスト作成など)で使用する資料としての利用でもいいはず
  • 「経験豊富な、管理職扱いの……」人間がいなくなっていて、彼らがやってくれていたこと(識者の経験による問題点の洗い出しという、現行の開発のやり方で当てにしきっている部分)がなくなってきている為、簡単に作れる資料なら必要

●ビッグデータとインバリアント分析

 先日、雑誌を見ていると、「建造物などにセンサーをたくさん付けて、ビッグデータとして記録し、何か違いがあったら問題があるのではないかと疑う」という手法が書いてありました。筆者が「昔、日報を書いていた」ことを思い出したのも、その記事を読んで以下のように考えたからです。

  • 付ければ簡単に情報が取れるセンサーを作ることは、現在の技術では難しく、その情報に代わるものは「昔書いていた、技術的な日報」ではないか?
  • ビッグデータなら、資料のストレージとして最適でないか?
  • 筆者が言う昔とは、「経験豊富な、管理職扱いの……」人間がまだあまりいなかったころのことで、(技術的な日報作成のような)その“昔”にやっていたことなら、これからの状況に合致するのではないか?

●どうするか

 インバリアント(プログラムで、何が同じで何が違うか←今の技術でこれを認知できるのはプログラムを書いた当人か、そのプログラムを精査した経験豊富な人間のみ)を考慮に入れて、とにかくつぶやけばいいと思います。もちろんオンプレミスなシステムへのつぶやきでいいと思います(さすがにパブリックのソーシャルメディアにつぶやくのは行き過ぎです)。

  • いままで同じ処理を50個書いたが、51個目と52個目と53個目で初めて、違う処理方法が必要だった。
  • 今日、自分はこのようにすごいHACKをした。

とかいちいち書くのです。

●なにが得なのか

 同じ処理なら何百個あろうと、テストは同じでいいと思います。しかし、何かが違う場合(例えばその処理にif文が1つかぶさるだけとか)でも、テストは格段に難しくなると思います。今までは、その困難さを経験豊かな技術者が陰から支援してくれていて、どこが問題なのかを指摘してくれるのは当たり前だと信じ切っていたと思います。しかし筆者の実感からして、間違いなくそのような素晴らしい世界はなくなってしまっていると思います。

 もちろん、このような細かい日報だと、とても見切れないものだとは思いますが、それはビッグデータの要約技術を使って、1つでも2つでもテストの方向付けとなる結果が得られるなら、素晴らしくない世界で1つの指針となると思います。

 また、筆者の経験から言って、「自分がその日寝る前に思い返して酔ってしまうような、すごいHACK」の過半数は改めて考えてみると、もっと単純な方法に書き直すべき内容だと気づくのが普通です。そのような細かい記録は、他人のためでもあると同時に、本人の振り返りにもなると思います。

 さらに、(いくら経っても具体的にどうやったらいいか書いておらず、もしやるとしてもどう考えてもプログラマに過度の負担がかかることが容易に予想される)テストファーストか、(昔、当たり前のようにやっていた)技術的な細かい日報かどちらか選べと言われたら、プログラマは大抵、後者を取ると思います。

 まぁ、今回はこんなところです。

●コラムのコメント欄の方針

 コメントに対し、当意即妙の回答を、それなりのタイミングでする自信がありません。

 ですので、このコラムで、

  • わたしは基本的にコメントに答えない
  • コメントを書く人は、回答がない前提で議論を進めていただく

とさせていただきます。

Comment(0)

コメント

コメントを投稿する