不良技術者の引っ越し
世の中の意見として、「○○という言語を使っている開発者たちはロクにスキルも持ち合わせていない」「こんなヒドイソースを書くのは○○使いだ」というような、特定の言語に対しての攻撃的意見が存在します。特に目にしやすいのは「Visual Basic」に対してかな、と個人的には見受けられます。もちろんほとんどの方が「悪いのは言語ではなく、それを使っている開発者」というのを理解していらっしゃるので大丈夫だとは思いますが、「実際は……?」というと、あながち非難されるのもそれほど外れてはいないかな、というところではないでしょうか。
一昔前、オープン系が流行りだしたころはCOBOLが槍玉にあがっていたと思います。汎用機やオフコンからPCへとプラットフォームを変化させはじめたあたりです。このころを覚えている方ですと、旧来のファイルレイアウトをそのままRDBに載せてみたり、特に理由もなくEnterキーを押さないと動作しないようなAPであったりと、人によっては今でも耳にする話題があったのではないでしょうか。このようなWindowsの流儀にそぐわないAPやシステムを量産する人が多かったために、「コボラー」など特定の言語に結び付けて非難するようになってきたと思います。普通に考えればCOBOLという言語にはまったく問題がないのは明らかで、それは特定の分野に限定はされていますが、まだまだCOBOLは現役の開発言語であることが示していると思います。さらには汎用機・オフコンで培った経験を見事にオープン系システムで生かすことのできる人たちが数多くいる事実があります。
そして今では「Visual Basic」がCOBOLにとってかわって攻撃しやすい相手になっている状態であると思います。その背景は前述のCOBOLとほとんど同じです。Windowsの流儀にそぐわないモノを生産する人の割合が高いのです。他言語の開発者達と比較するとさらに目に見えてきますが、Visual Basicで開発する人たちにおいて、このような問題のあるシステムやAPを生産する割合がちょっと多すぎるのです(裏を返せばそれだけ母数=利用者数が多い言語だ、と言えるので、単純に比較できるところではないのは承知しています)。
ここで少し考えて欲しいのは、先に書いたCOBOL経験者で問題のあるWindowsシステムを生産する人達と、Visual Basicで同様に生産する人達というのはほぼイコールだというところです。言い換えると、「一部の問題のあるCOBOL経験者がそのままVisual Basic環境へと流れてきた」という点があるのではないか、というところです。問題のある経験者が年月を重ね部下を持つようになり、後続を指導するのですから、問題を抱え込んでいる技術者というのはさらに増えていくのは予想するまでもありません。もちろん世の中は広いですから、そうではなく「開発業務はVisual Basicから始めたが、問題のあるシステムを生産し続ける人達」というのも存在します。こちらの予想を斜め上方向へ遥かに超えるAPを作ることのできる人というのも間違いなく存在します。後者は除外するとして、前者のようなタイプはなぜ今もそのままでいられるのでしょう?
極論すれば「自分と自分の周囲以外に興味を持たない」からだと思います。
今まである程度の時間を費やして得た知識と経験をすべてと思い、他者のそれよりも絶対の信頼を置いているような状態でしょうか。他が何を言っていようと知ったことではないのです。
- ある記事などで「~といった点を解決していくにはこうするのが望ましい」などと書いてあったにしても、「そんなことができるのは限られたトコだけだろ。ウチでは無理だって」と最初から参考にするつもりがない
- 成功事例が公開されていても「こんなのはたまたまいいユーザーに当たっただけだ」と自分達とは異なる環境にいると思い込む
- 「システムとはこういうものだ」という考えを自分の経験則のみに照らし合わせて思い込む
- 「そういうものじゃない」と言うが具体的にどういうものかは説明できない、しない
- そもそも他者の話を聞かない、見ない(聞いているフリだけ)
細かいことを書き出すともっと出てくるとは思います。傾向としてはある程度のキャリアを積んだ世代(30歳以上あたり?)に、このタイプの人間が増える感じがしています。ここを読まれている方々も、周囲に思い当たる人間がいるのではないでしょうか。
自分の経験や思想に自信を持つことは大切だと思います。ですが度を越してしまうとただ頭が固いだけになってしまいますので、このあたりはバランスが難しいところですね。自分の中に芯を通しつつも、柔軟に周囲の意見から取り入れることを怠らない。このように書いてしまうと、あまりにも聖人の如きでハードルはものすごく高そうで、ストレスを溜め体の調子も崩してしまいそうな雰囲気です。
ですが、このような人達とコミュニケーションをとり上手に業務を行っていく、というのは今後、重要性を更に増すのはほぼ間違いないと私は思っています。
今後別の言語に移ったとしても同じ問題は続くでしょう。問題のある技術者というのは「自分がそれに当てはまる」とは微塵も感じていないですから。そしてそのまま新しい舞台に移住し歴史は繰り返されるわけです。不良技術者というのは絶対に存在し続けるのです(逆説的に、不良技術者が存在するからまっとうな技術者も存在するといえますが……)。
他人を変えることは物凄くエネルギーを消費する行為で、なおかつ必ずできるとは限りません。それならば自分達が変わり、上記のような不良技術者をも上手に扱うことができるようになる方がどんなに楽でしょうか。
ちなみに私自身は「頭固いな」と言われないよう気をつけて働いています。油断すると上記の悪い例に見事に当てはまることがあったりしますので……。何事も謙虚にいきたいですが、書いている自分自身「そんな簡単にできるわけない!」と思っていますけど。
コメント
草谷泰弘
良い悪いは、置いておいて、不良技術者問題には言語特性と言うものが
絡んでいるのではないかと考えています。
例えばVBは、Windows上の他のポピュラーな言語 (C, C++ or Java)と
比較して非常に敷居が低く、"簡単!"と思われている言語です。
本来、質の高いコードを記述するのに、言語の違いは無いハズなのですが
一般的に、簡単=レベルが低くてもできる。 という扱いになり
単価、その他の面で不利になり
(敢えて、この言葉を使いますが)馬鹿でもできる。
かのような評価になっているのが、実情でしょう。
その結果、実際に質の低い技術者の割合が増えていき、
質の低い技術者が多いから、世間の評価が...。
といった、デフレ・スパイラルに陥っているのではないかと...。
Ahf
コメントありがとうございます。
実感しやすい例として今回はVBを用いましたが、個人的には次に危険かと思っているのはC#です。理由としては草谷さんの仰る通り、敷居が低く簡単と思われる環境が整っているためですね。
先行したイメージが技術者の増加を招くのですが、ここに質の低い技術者も移動してきてしまうというのが難点だと思っています。
個人的には業務でVBを利用し続けていますので、決して簡単ではないと思っているのですけどね。これを覆すことは並大抵では難しいですね・・・。
としろう
なんにせよ、VB等が元々、
ソース記述がいいかげんでも取り合えず動く事
を目的に作られた経緯があって
質の悪いコーディングを許容する事から
正常系が動けばよい程度での粗製濫造が多発するからでしょう。
コボラーは特定の狭い領域で動けばよいもののうち
異常データ他の処理がかなり限定され、多くを考慮しないでよく
逐次処理で有る意味簡単で間違えにくい
この環境から何でも有りの世界でもっと複雑に考えねばならない
という状況になると以前の流儀は通用せず、迷惑をかける事になるのだと
個人的には思っています
元の不良技術者については間接的に人月単価を下げる事ばかり見て
下流の確認やケアを考えない上流の問題ですがね。
下手に上流下流で会社分けたりするとグダグダになる。
中の作りの質に関心が薄い、評価できない・しないのが問題
出来る人と出来ない人混在の為悪貨が良貨を~の世界なんでしょうね
sala
こんにちは。コラムニストのsaraです。
まさに私の上司(33歳)がそのような感じです。
うまい付き合い方はないものか・・・
と思案の日々です。
最近では転職も考えるようになりました。
日進月歩のこの業界で開発経験のない言語での設計を行うことは当たり前になってしまっていますが、それはプログラマーにとって負担が大きすぎます。
結果として設計者が言語が分からないのでプログラマーの話も聞かず「任せたのだから死んでも納期に間に合わせろ。俺には関係ない。」と言うだけになってしまいますね。
とくに器の小さい上司ですと。
Ahf
としろうさんコメントありがとうございます。
VBという言語の起源は確かにプロフェッショナル向けではなく、どちらかというと一般ユーザーに寄ったポジションであったというのはありますね。保守性はそれほど重要ではなく、結果のみが重要であるという感じでしょうか。意外と携帯のメールアドレスも近い話なのかも知れません。
上流下流という分け方は私としてはあまり好ましい事ではないと思っています。言葉が持つイメージも影響し、設計・分析側が単価を上にすることが多いのではないでしょうか。実際には全体を見渡して単価を設定し、それを基に堂々と商談できるようになればいいとは思うのですが・・・。厳密に能力・実力による査定というのもまた問題が多いでしょうからね。
悪化が良貨を、玉石混合な状況からどのように改善していくかというのを色々と試行錯誤していかないといけないと思います。
Ahf
saraさんコメントありがとうございます。
「ガテン系」楽しく拝見させて頂いております。
言語を知らない人間による設計というのは本当にPGに対して、またアーキテクトを担当する人に対しても凄い負荷がかかりますよね。私もそれに近い状況にしばらく身を置いていましたので(いや、現在進行中ですが)その大変さは解るつもりです。
しかし「任せたのだから~」という言葉はあまりにも無責任ですね。私の中ではPG(≒実装側)とSE(≒設計側)は対等に意見を出し合い、互いの知識と知恵を持ってユーザーによりよいものを提供するのが理想の姿だと思っています。そのような環境に近づく要素があるのでしたらまだいいのですが、それを望めない環境もあるかと思います。特にとても自信を持っている人が相手だと尚更です。そのような場合は他の人間を味方につけるなど、周囲を巻き込む事ができればいいのではないかな、などと思います。
めげずに頑張ってください。でもあまり深く抱え込まずに。