だからあなたの会社からプログラマは逃亡する

前置き

ども。kyapiyです。大学生はそろそろ定期テストも中盤に差し掛かり徐々に阿鼻叫喚から半ば諦めと悟りの境地の中で夏休み気分に変わっていく。そんな時期ですねw
そんな中で私の中でも一つ区切りをつけたかったので、気持ち一新投稿していきます。第2章からはアウトプットということで、自分の中でこれまでインプットしてきていた事を放出していきます。

最終的に目指すところは「プログラムが一人前にできて、システムを所持出来る経営者」です。プログラマとしては自分の満足出来るものを調べながらも作ることができればそれで良しとしています。
また、今回の投稿からはてなブックマークに挑戦してます。効果のほどは後々公開していきます。

タイトル・・・

え、あ。すいません。
20数年しか生きた事ないですが、自分の言いたい事は全部言っちゃう性格なので・・・
「何を偉そうに分かった様に言いやがって」と思われる事必至なんですが考えたまま正直につけてます。

プログラマという生き物

プログラマの仕事内容はどんなんだろう。知らない方も多そうなので、軽くプログラマという職業について説明をします。
まずはどれくらいのITエンジニアがいるのか見てみましょう。2014年段階での日本全体の労働者人口は6351万人で、そのうちITエンジニアの人口は84.1万人でした。割合で言えば1.32%です。ちなみにアメリカは労働者人口1億4631万人に対して369.2万人で、割合は2.52%です。
ITをどのように使うのか。を考えることを専門にしている人もいて、その人もITエンジニアとして含まれているみたいですね。プログラムのわからないIT従事者もいるということか。。。

私がプログラマと言われて出てくるイメージは「怠惰」「面倒くさがり」「オタク気質」です。ここでいうオタク気質とは、「興味のある事については非常に時間を割くがそれ以外は見向きもしない」という事です。
twitterなどの各種SNSやブログをやっているプログラマや大学の知人などしか見ていませんがあなた相当な面倒くさがりです。笑

あなたがプログラマと言われて出てくるイメージはどんなものでしょうか?
プログラマが楽そうな仕事だと思った方はいますぐ考えを改めた方がいいです。
また、パソコンのことなら何でもできると思っている方もすぐ改めてください。

プログラマはパソコンについて何でもできる魔法使いでもないですし、ましてやデザインなんかもってのほかです。(中にはできる人もいるかもしれませんが)
上は実際に私がある経営者から受けた相談の中で一番理解できなかった質問のひとつです。
「〇〇ってイラストレーター使える?」と聞かれた時点で察しました。
「この人はプログラムができる人はパソコン関連は全て分かっていてパソコンが絡む事は全てその人ひとりに投げれば解決する。」と思っているのだと。
極論、プログラムを組んだことがない人は「プログラマはプログラムを組むことしかできない」ぐらいの認識の方がむしろ正しい場合が多いです。

プログラマという生き物は、「日々行う業務の中で、共通した作業・毎日変わらない作業」を括りだし、イメージを固めパソコンが処理できる言葉に翻訳してパソコンに0〜100までを教えることを生業にしています。
毎日の1時間の作業をコンピュータにも出来るようにし、人の手で行う必要をなくすために数日〜1ヶ月、場合によっては数ヶ月以上を犠牲にするのがプログラマです。
なぜ怠惰で面倒くさがりなプログラマがそんなに手間のかかる事をするのか。答えはひとつ「その方が楽だから」です。
たとえ1ヶ月犠牲にしたとしてもその先数十年間日々の業務が1時間短くなるのなら彼らは喜んで目の前の時間を投げ出す・・・そんな集団です。

社会貢献能力はいかほど?

そんなプログラマが、果たして世のため人のためになるのか?答えはYESです。
私は「タダで」「何時間働かせても」「全く文句も言わず」「ひたすら命令を遂行してくれる」プログラムの事を非常に高く評価しています。
プログラムは電子情報で、コンピュータにかかれば一般の方でも数クリックで簡単にコピーできます。
つまり、プログラマの数ヶ月の努力は、開発者が首を縦に振りさえすれば価値が簡単に数十倍・数百倍・数千倍に広がり人々の生活から面倒な仕事を消し去ってくれます。
言い換えてしまうと、プログラマは労働力を簡単にカサ増しできます。

それだけにプログラマの方々は自分の仕事に拘りと誇りを持っています。
簡単にコピーできるということは間違った指示を与えた場合それが、多くの人に影響を与えますのでプログラムを作る側は作る際に最新の注意を払います。考えうる全ての可能性に対して対処法を一つ一つ指示してあげないと今のコンピュータは対応できないのです。

彼らに逃げられずに上手く活かしてあげる方法

ただ私は、そんな価値がイマイチプログラマを雇い使う側の方々に理解されてないような気がしてなりません。
その結果、プログラマの考えている完成のラインと管理者の考える完成ラインとの間に差が生じてしまいお互いにフラストレーションが溜まる結果になっているのではと感じました。
極論、自分一人で完結できるプログラマはそこに留まることによる利点がないので最終的に管理者の元を去ってしまうことになります。プログラマからすれば、自分で人の役に立つものを作れるのですから自分で配布すればいいだけの話です。
ただ、自分で作ったものを広く配布して対価を受け取るのはそれなりに面倒ですのでやらない人もいますが。

そんなプログラマがいつまでも居座りたいと思う会社とはどんな環境でしょうか。
私の考えるプログラマが居座りたい会社の条件とは安定した給料とか社保とか普通の人も望む事以外には、「納期の延長に対して理解がある」「場所を選ばず働ける」「制作物のゴールを共有出来る」主にこの3点ではないでしょうか?

この意見については「仕事なめんなヴォケ!」とかかなり批判がありそうなんですが、私にとってプログラミングというのは地図を持たない旅行です。
漠然とどんな所に行きたい。という希望はあるのですが、出発点と目的地の間にいくつの山があってそれらはどれくらいの標高があり、その山を回避して通る事は可能なのかどうかというのはほとんど分かりません。
一度通った道ならばある程度これくらいの大きさだったな・・・と考えたりもできるので何日かかるかも大体分かりますが、やはり天候などの突発的な要素で必ず前後します。
日々旅行をすることでマッピングをしておくことが、かかる時間を予想する時の精度を決めます。

プログラミングの納期見積もりもこれと同じで、製作者の経験と日頃の努力が精度を上昇させます。ここで管理者側が知っておくべき重要な要素が二つあります。

それは「どれだけ経験豊富なプログラマでも100%納期を正確に見積もることは不可能」ということと「経験を積めば積むほどプログラマは納期を少しかさ増しして申告するようになる」ということです。
プログラマにプログラムを書くことを依頼するにあたって当初の見積もりより納期が伸びることは必然と考えることがプログラマを逃さない為には必要だと私は考えます。

違う。そうじゃない。あー、それはちょっと困るね。ここは変更ね。(でもタダでよろ。)を続けた結果

今の日本のプログラマの雇用状況と管理する側の理解度から考えればプログラマが逃亡するのは至極当然の結果だと私は思います。
それは主に「納期厳守」という価値観のせいです。
これは、予想外のハプニング(予想していなかったバグの発見・意味不明な挙動の解析作業の発生など)や他に優先しないといけない仕事ができた場合でもリスケ(リスケジュール)は不可能。ということを意味しています。

そんな馬鹿な。(笑)と思う方もおられるかと思いますが、日本のプログラマの業界ではそれが当然のこととして未だに根強く残っています。
そんな中で私たちプログラマの中で発生した自分の身を守るための知恵が「納期を初めから多めに見積もっておく」ことです。
ひどい場合は、プロジェクト開始時に我々には「大体でいいよ。最終納期が伸びてもいいから概算で見積もって。」言っておき、それを元に予算と期間を組んで走り出します。

そういうプロジェクトに限って、後の途中報告の時に「悪いけど、ここの感じはあんまり見た目良くなかったからサクサクっとこんな感じに修正よろ^^」みたいになるんですよね。プログラムを知らない人から見て修正点はそこまで多くないように見えても(そうでない場合が多々あるのですが)先方はこれを「無料」で「即」修正できると思っている場合が多いです。さらにこの場合でも納期の遅延は許されない事があります。
その結果、逃亡したりするプログラマが生まれるということです。

中には、クライアントの「多々の修正」に対応するが為に真にユーザのためを思った機能を泣く泣く削り、開発プランを維持するプログラマもいるようです。
こだわりと誇りを強く持ったプログラマほど「納期」を守るが為にモチベーションとユーザのためを思った機能を削る。。。これを社会への貢献度合いをみすみす低くしていると思うのは私だけでしょうか。

逃げたプログラマが悪いのか管理する側が悪いのか

この場合、逃げたプログラマが悪いのでしょうか。それとも(プログラマにとって)無茶な注文をした管理側が悪いのでしょうか?
私は両方が悪いと思います。

そもそも、初期の段階でプログラマが「納期、絶対伸びると思いますけど。あなたもできたものを見て修正をして欲しいと考えると思うのですが、それでも今見積もったほうがいいですか?」と聞きさえできれば回避できそうですし、「最初に明確に乗せる機能の数と種類を確定しておいて、それ以外の機能の追加は別料金です」とはっきり言えれば先方もしっかり考えてくれると思います。

逆に管理側は「何がプログラマにとって負荷の高い変更か」を把握しておきさえすれば、これは数秒でできそう。とかこれはやばそう。くらいの判断はつきますし代替案も提案しやすくなると思うんです。

少し前からITはコミュニケーションが必要だ。とか、これからはプログラミングできた方がいいよ。だとか言われるのはこの
「プログラマとクライアントとの間の意識の差」を両側から埋めるためのものだという理解を私はしています。

まとめ

私にうまくまとめる力がないばかりに長い文章になってしまって申し訳ありません。ただ、趣味グラマからプログラマになって駆け出しの私が実際に感じた事を一人でも多くの人に知ってもらえたらと思い書かせていただきました。

大事な事をもう一度まとめるとプログラマは楽な仕事じゃないが、現時点では社会に与える価値は絶大なものがあり、さらに自分で拡散する力をつければ一人でも十分に起業できる。
また、受託開発や自社開発時にプログラマの逃亡を防ぐためにもプログラマ側からのコミュニケーションは必須。ただ、管理・経営側の人間に理解がなければプログラマがいかに歩み寄っていてもプロジェクトを完遂することは非常に難しい。

ということです。
長い文でしたが最後までお読みいただきありがとうございました。

今日の記事はいかがでしたか?
あなたが感じたことや思ったことを下のフォームからお気軽にコメントしていってください(* 'ω')/

ブログ記事一覧

シェアする

フォローする