プログラマと一口に言っても色々な分野があります。
私はWebやスマホアプリの分野なので、その目線で、かなり大げさに書いています。
プログラマという括りにも語弊があるのですが、気にしないでください。
プログラマというのは、とても難解な職種であるように思われています。
実際にやはり特殊な職業ではあるのでしょう。
わからない人から見れば、「やつらは一体あんな真っ黒な画面に文字だけが表示されている画面を睨んで、なにを考えているんだ」と思うでしょう。
体もほとんど動かさない。一体何をやっているのかもわからない。
表情もほとんど変わらない。いつも残業している。
こんなイメージかもしれません。
こういった現状をプログラマからすると、いかにプログラマに対して理解が低いものかと嘆くことが多々あります。
ですので、是非「プログラマではない」皆さんには、プログラマに対する理解を深めて欲しいと思うのです。
そうするとどうなるのか?
みんながハッピーになれると確信できます。
なぜ、ハッピーになれると思うのか
おそらくですが、プログラマの方で、「自分は100%の力を発揮して常に仕事に臨めている」という人は少ないのではないでしょうか。
それは、プログラマへの理解が低いために生じる外的要因が主なものではないかと考えています。
そのために、多くのプログラマが内にストレスを抱えてしまっています。
そのような問題を取り除くことができれば、仕事のパフォーマンスは向上します。
プログラマのパフォーマンスが向上すれば、すべての仕事に良い影響が出てくるはずです。
開発速度もあがり、その分残業をしなくて良いとか、品質向上のための時間にあてるとか、他の仕事をこなすとか、有意義に時間を利用することが可能です。
会社の業績も向上することでしょう。
メリットはあれど、デメリットはありません。
それが、プログラマへの理解を深めることで、みんながハッピーになれる理由です。
プログラマは孤独である
個人差や、感じ方の違いなど多くあると思うが、集約すると「孤独」なのではないでしょうか。
そう思う理由にこのようなものがあります。
プログラマは他職種の仕事を手伝ったり、代わりに行うことができるが、
他職種の人はプログラマの仕事を手伝ったり、代わりに行うことができない。
そんな事、どんな職種でも言えるじゃないかと言われそうだが、そうでもないと思う。
Webやアプリの開発において、サーバーエンジニアがいなければ、プログラマはサーバー構築を行わないといけないし、SEがいなければ設計を行わないといけない。
PMがいなければ、スケジュール管理や進捗報告も逐一行わないといけないし、デザインに不足があれば素材を作成したり、コーディングを直したりCSSを書き換えたりしないといけない。
営業マンの理解が低く、ユーザーから詳細な説明を要求されればプログラマが出張っていき、説明を行わないといけないし、場合によってはファーストインプレッションの段階から参加をすることも必要とされる。
資料作成も任される事が多い。
設計資料や仕様書、納品資料はまだ理解できる方だが、営業マンが知識がないために提案資料まで作らされるハメになる。
パソコンの調子が悪いので見てほしい、なんてのもあるし、社内のネットワークがおかしいのでなんとかしろ、なんて言われたりもする。
こんなにあれやこれやと言われては集中して仕事を行うことができるわけがない。
プログラマはこういった本来の業務とは関係ない業務を、勤務時間内にこなし、本来やらなければいけなかった自分の仕事を残業や持ち帰りによってこなしているのです。
だが、プログラマの本来の業務を手伝ってくれる人は、誰もいない。
手伝えないからだ。
手伝えるとすれば、元プログラマの人か現プログラマの人だけで、他職種の人は一切手伝ってくれない。
こういう現状に、プログラマは矛盾を感じ、孤独を感じる。
助け合いと言いながらも、助けるばかりで、助けられることがない。
任せられる仕事のうち多くは、他のだれでもできる仕事だ。
プログラマにはプログラマしかできない仕事があるのだから、それのみをさせるのが適材適所というものなのではないでしょうか。
他の人がプログラマの仕事を肩代わりできるなら別だが、そうでないのなら、自分でも時間をかければできる仕事は自分でこなすか、プログラマ以外の人で解決をするべきなのです。
調べるのめんどくさいからってプログラマにさせないでください。プログラマだって「めんどくさい」のです。
話しかけにくい雰囲気
プログラマの人がパソコンに向かっているときは、話しかけにくい雰囲気がある。
ということを良く耳にしますが、それは間違っています。
話しかけにくい雰囲気なのではなく、話しかけないで欲しいのです。
プログラマの仕事を簡潔に表現するのは難しいですが、「人間の思考を機械が理解できるように翻訳する作業」と言えると思います。
即ちそれは「機械との対話」であり、さらには「機械が混乱しないように最大限効率良く処理させてあげる」必要があります。
イメージしにくいかもしれませんが、コンピューターが行っているような複雑な処理に近しいことを、プログラマは常に頭の中でシミュレーションしています。
頭の中にもう一台パソコンを作り上げて、その中で、プログラムがどのように動いているのか、データがどう動いているか、ここでこうなって、というような展開を繰り広げているわけです。
はたから見ればぼーっとしているようにも寝てるようにも見えても、頭のなかはフル回転で処理されているわけです。
いわば、そろばんの上級者がそろばんを使わずに、どんどんあげられる数字を暗算で解いたりするやつがありますが、あんな感じです。
そんな時に、関係ない事で話しかけられでもすれば気が散る所の話ではありません。
パソコンのように機械的な記憶装置があれば、瞬時に今までやっていた作業を保存し、また呼び出すことが可能ですが、人間の脳はそこまで機械的ではありません。
一旦今考えていたことがリセットされると、大体にしてまた一からやり直しをするはめになります。
多くのプログラマはそれでも気前よく話に応じてくれますが、内心は「さっきどこまで考えてたっけ?また最初からやり直しか…」と思っています。
簡単に作業の中断ができないのがプログラマの仕事なのです。
しかし、これだけ多くのプログラマが作業の妨害を受けながらも今の仕事量をこなしているわけですから、それを周りの人が理解してくれれば、もっと効率はよくなるはずです。
デザイナーとの大きな違い
作業の代替が効かなくて、考える事が主な仕事という点ではデザイナーも同じだという意見もあるでしょう。
それは全くその通りです。
それにむしろプログラマはデザイナーのことを尊敬すらしています。
自分たちが唯一手伝えない分野だと思っているからです。
ですが、やはりプログラマとデザイナーには大きな溝があると言えるでしょう。
一番の理由は、完成品に対する周りからの評価の違いです。
デザインというのはただの動かない絵です。*1
それにプログラマが動きや遷移をつけて魂を吹き込むわけです。
デザイナーとプログラマの共同作品であるにも関わらず、評価されるのは見た目が大半です。
このデザインいいね、とか、見た目がかっこいいねとか、可愛いねとか。
このプログラムすごいね!なんて言われることはまずありません。
むしろ、これ処理遅いんだけど、とか、この動きおかしいんだけど、とか不満点ばかり言われます。
職種に対する評価も違います。
デザイナーは「なんかかっこいい」「おしゃれ」なイメージなのに対して、
プログラマは「なんかきもい」「おたく」という正反対のイメージ評価です。
こんな不遇な対応があって良いのでしょうか。
デザイナーは評価されやすいという面で、大きくリードしているのです。
プログラムを良く評価してあげて欲しい、とは言いませんが、プログラマの苦労も労ってあげてください。
やる気につながります。
なんでもかんでも「バグ」と言わないでほしい
プログラマは「バグ」という言葉に敏感です。
それに対して、バグという言葉は一般的になりすぎて、どんな事でも、どんな人でも簡単に使える言葉になってしまいました。
でも、なんでもかんでも「バグ」という言葉で片付けないで欲しいのです。
本来はバグとはプログラムのミスを指す言葉です。
しかし、一般的に使われているバグという言葉は、その限りではありません。
当然プログラムのミスである場合も多くあるでしょう。しかし、その他にも多くの原因があるわけです。
仕様がおかしい、考え方が一致していない、デザインがおかしい、指定してた文章が間違っていた、パソコンがおかしい、俺のブラウザだとおかしくなる、俺のAndroidだと見れない、私のパソコンでだけおかしくなる、ネットワークがおかしい、サーバーがおかしい、世の政治がおかしい、虫の居所が悪い(バグだけに)、などなど。
そういった様々な要因があるにも関わらず、十把一絡げに「バグ」と言われるんです。
簡単に「バグ」といいますが、これは意味を直せば「プログラマのミス」という意味になるのです。
それが本当にプログラマのミスなのであれば、受け入れられます。
しかし、プログラマのミスではない問題によるもので、バグだバグだと言われて、良い気がするわけがありません。
はっきり言ってプログラマはこの扱いにストレスを感じています。
なんでもかんでも、「バグ」で片付けないでください。
問題が起こっているのならば、その問題の発生タイミング・手順、発生原因、責任の所在を明確にしてください。
それらを明確にした上で、プログラマのみの問題なのであれば、それはプログラムのバグです。
それが第三者の原因によるものなのであれば、バグっているのはあなたです。
命名規則は絶対に守ってほしい
一体何の話だと思われるほどに、プログラマ以外には興味がないもの。
それが命名規則です。
例えば画像ファイルの設置場所はimgフォルダやimagesフォルダやimageフォルダなどに分散しないでほしい、だったりとか、
ファイル名をつけるときは、「名称_ステータス_3桁の連番.png」にしてほしいだったりとか、聞いたことありませんか?
プログラマはなぜこんなことをわざわざ決めるのかというと、それはプログラムを実行する上で絶対条件だからなのです。
だから、ちょっとぐらい違ってもいいや、とか、別に間違っていてもいいでしょ、っていうレベルで名前を付けられると、プログラマが困るんです。
大体にしてこのトラブルはデザイナーの方との間で起こることが多いです。
時には全角アルファベットでファイル名を付けられていたり、アンダーバーがピリオドに置き換えられていたり、拡張子が二個あったり、英語のタイプミスも多い。
このような場合、プログラムが動作しないか、誤動作をします。
その度、プログラマはファイル名を逐一修正しています。
これがまた大変な作業なんです。
命名規則は絶対です。
絶対に守ってください。
軽くあげただけでも、プログラマは多くのことを弊害に感じているのです。
プログラマがそういった問題を抱えることなくのびのびと仕事ができる環境は、ゆくゆく強い組織になるんじゃないかと思いますね。
*1:これに噛み付いてきて、デザイナーを馬鹿にしているという人がたくさんいて驚く。
これ、デザイナーを馬鹿にしたつもりで書いているわけではないのですが。
昔はよくハードウェアとソフトウェアを取り上げて、「ハードウェア、ソフトがなけりゃただの箱」「ソフトウェア、ハードがなけりゃただの紙」なんて言われてましたが、それのもじりみたいなもんですよ。
要は片方では成立しない、持ちつ持たれつの関係だ、という意味の話ですよこれ。
ある程度の開発経験してる人間が、デザインはただの絵なんだなんて心から思ってるわけないでしょふつう。
ここだけ読んで短絡的に反応する人が多いので、尊敬度は薄れてきました。
コメント
自分の言葉足らずを読者のせいにして短絡的扱いする人間の鑑
わかりやすいです
私はデザインもプログラミングも両方やってますが、この記事はとても分かりやすくてありがたいです。
今現在、周りの理解がなく非常に孤独な思いをしているので、これを参考に説明してみようと思います。
まさに、そのとおり。読んで一言目に
思いました。相互理解のために、役立つ内容に感謝します。
うーん、理解できるところとできないところがありました。
今までやり取りしたPGさんは海外の方も含めて100人もいませんが、中には傲慢な物言いをするお方もいるからです。
専門用語を並び立てて「こんなこともわからないの?フフン」なんていわれた日には相互理解は到底無理でしょう。
最近では、納期も打ち合わせていない、下書き中のCSVファイルを勝手に処理し始めてかなりきつく言われました。特殊記号があるとかなんとか。挙句にCSVも理解していない、とまで。
意味がわかりません。
実際、コミュ障の方が多いですよ。
そしてそのフォロー(主にこちらからの気遣いや配慮を細部にいたるまで!)を要求されることが多いです。
仕事なんで適当にしてますけどね。