2014年7月4日金曜日

エンジニアの仕事環境と『小さな成功』のはなし

パートナーさんとの合宿のために軽井沢に向かっています。新幹線も空いているのでこれ見よがしにMacを広げたところです。



普段ならTwitterに書き散らすようなネタなのですが、うまいこと140文字に収まりそうにないので、こっちの自由記述欄に。



個人的には「ネット」という言い回し自体あまり好きではないのですが、TVや新聞ではなく基本的な情報収集の手段がインターネットになり、アグリゲートされた後の記事をナナメ読むことが多いので、私自身はかなりネット寄りな情報や論調に偏ったポジションにいる、という自覚はあります。その中で、これも嫌らしい単語だと思うのですがリテラシーという面では上級職扱いのIT業界の住人でもあります。自戒を込めて言うのであれば、そういう人種はやはり進歩的であったり、欧米的な価値観に寄り添った立ち場から社会を見ているような印象があります。その例の一つ、「(日本は)もっと失敗を許す社会であるべき」という意見について、少し思い付いたことがあります。



まず、私自身はこの意見に対して、どちらかというと賛成、くらいのスタンスです。言っている内容に妥当性を感じるが、殊更自分が声を上げて現状を否定するほどのものでもないし、なるようになるんじゃないか、という位の温度感です。(現状それなりに恵まれた環境で仕事をさせてもらっていることと、独立だの起業だのというリスクを一応は取っているということのバランス、がこのあたりに落ちてきています)



また前置きが長くなってきています。



(IT業界の)エンジニアは人から見えないところで小さな失敗と成功を繰り返せる環境を持っているので、ある種成熟した視点を会得しやすい



という仮説を考えました。



システム開発、特にコーディング部分に関わることのない人には本当に何を言ってるのかわからないと思うので、少し細かく説明します。(単純に私が注意力散漫とうこともあると思いますが、)通常、最初に書いたプログラムというのは上手く動きません。上手く、どころか、まず動かないことの方が多いくらいかもしれません。で、機械にだめ出しをされ、修正をし、どうにか動いてくれるのを確認、でも結果が想定と違うのでまた修正、そうするとまた動かなくなって、、、というのを本当に細かいレベルで繰り返します。



実際、こんなに頻繁にネガティブなフィードバックに晒される職種は珍しいんじゃないかと思います。ただ、あまりにも些細なものであり、相手が機械であるという点で、心理的なダメージは非常に小さくなっています。(ここに人間味があるネガティブコメントが付加されると一気に耐えきれなくなる、というのは感覚的にはあり得そうな話で、業界にメンタルを損なう人が多いことの数多い原因の一つだったりするのかもしれません)



一方で、そういう作業が上手く意図通りに行った場合の小さな達成感というのも当然あります。顧客に何らかの変革を強いる、いわゆるコンサルティングの仕事では、「小さな成功(win)」を顧客に感じてもらうことがプロジェクト全体の成功を握る鍵である、というような話がよくされるんですが、まさに「小さな成功」です。



つまり、多くの失敗と、そこそこの頻度で訪れる小さな成功、というサイクルで仕事を回しているエンジニアは、「失敗の許容」という冒頭の大人な意見に同調しやすくなってるんじゃないか、と。



Railsのブームの出始めあたりに、生産性に絡む評価として、個々のエンジニアが「俺すげー」って思えるポイントをチラしてある感じが憎い、みたいな視点があったような気がします。(ソースとなる記事がないかなと思いましたが、それらしいものはうまく見つけられませんでした)。最近だとVagrantとかChef/Puppet/AnsibleとかDocker界隈の技術にも似たような受け止められ方をされてる部分があるように思います。



やっぱり思ったより長くなってしまったので、さっさとまとめると、そういう個々人の体感の部分で「小さな成功」や高い生産性を感じさせてくれるツールが受けているということなのだとしたら、それをエンジニアだけでなくナレッジワーカー全体に適用するような工夫ができると楽しそうだな、と。細かいアイディアは幾つかあるので、実現しそうになったらまたご紹介します。



(文責 Ishii Akinori IT-Coordinator)