What is it, naokirin?

とある理系学生のつぶやき(1)

なんとなく、このブログで学習以外のことも少しくらい書いてみようかなあと思い立って早数日。

コラム風に書いてみようかな。


今回はIT業界の新人教育とIT企業を目指す学生について。



最近、IT業界は乱立の様相を呈していた時期をある程度抜けて、落ち着いてきたのかなあとはた目から見て思います。
ただ、やはり聞く限りでは開発環境の上下の差は大きいようで、時間や金銭的コストにばかり目をやって製品内容やプログラマを無視したような会社もまだまだ少なくないのが事実のようです。
そういうことに注意深く気を配っている会社でも新人教育が十分でない、もしくはうまくいっていないことも多いように聞きます。

情報系の大学を卒業した学生でもやはりプロジェクト全体を通したコストや開発時におけるノウハウに乏しく、またプログラマとなる人の一部はそれまでプログラミングの経験がほとんどないという場合も少なくないようです。
そういう人たちを教育することの難しさは理解できるし、やはり基礎的な面での教育の一環として「情報技術者試験」を活用することも決して悪いことではないと思います。
しかしそれだけで十分だとは基本情報技術者試験の勉強を行ったことのある身としては決して言えません。
開発には基礎的な知識とともに経験によるノウハウが必要となります。開発時におけるドキュメント作成や要求仕様作成などはなかなか知識だけでカバーできるほど甘いものではないですし、企業などで作られるような数万行を超えるコードを読みとく力は一朝一夕でどうにかなるものでもありません。

しかし、これをすべて企業が新人教育として行うのは不可能であることは間違いないでしょう。
ただこれらの欠如によって企業では一般に「レガシーコード」と呼ばれる保守管理の難しいコードがスパゲティのように絡み合う「スパゲティコード」として存在し、時にそれが企業にとっての後々の保守管理コストの増大を招きます。また小さな要求仕様の変更にすらついていけず、新たなプロジェクトを立ち上げ、一からコードを作り直すといった金銭的にも時間的にも大きな代償を払うことにもなりかねません。

繰り返しになりますが、新人教育で企業がこのすべてを行うことはできないでしょう。
この問題は企業だけの問題ではなく、新人にも問題があるからです。
確かに経験を積む時間もその環境も提供されない新人にとって、難しいことではあります。
ただ何もできずにただ指をくわえてその時が来るのを待っていることしかできないわけではありません。
今や開発のノウハウは企業が伝統的に社内で語り継いでいくものではなく、一般的なノウハウとして有益な書籍も多くあります。それらを用いることで、経験はなくとも開発時における注意点やどのような開発を行えばいいかの指針は得られます。
それだけでも大きな違いとなります。

企業は新人教育としておそらく最初はプログラミング言語の習得や基本的なコンピュータの知識の習得を目指すはずです。
しかし、その次はどうなのでしょう。
そのあとにいきなり開発をするのは危険だと言わざる負えません。
企業での開発のノウハウの指針として新人は本を読みながら行うのが良いのではないでしょうか。

本というのは例えば、「Codeシリーズ」です。「Code Reading」、「Code Quality」、「Code Craft」といった本には一般的なコードの読み方、品質、構築がしっかりと書かれています。
また「Write Great Code」や「Write Portable Code」という本には低級なコンピュータの知識を高級なプログラミングに活かす方法や移植性の問題をどのようにカバーしていくかが書かれています。
またアジャイル開発手法についての本も良書が多数出版されています。

IT業界を目指し、その将来を憂う一学生として、できればIT業界へ入るプログラミングにある程度の知識を持つ学生にはぜひ企業へ入る前にそういった読んでおいてほしいと思うのですが、「動けばいい」という考えは一部の企業のコードの中だけでなく学生の間にも存在するようです。

日本の企業の作るプロダクトは品質が良いということで国際市場でも高い評価を受けています。
しかし、上のような開発を行えば品質の低下は免れず、そのうち国際市場では相対的に高価である日本製品は見向きもされなくなるでしょう。

そのようになる前にソフトウェア開発における品質向上への学生や新人の理解と企業の理解が深まり、そして広まることを願うばかりです。


・・・といった感じでしょうか。
品質や上流工程は情報系で最も会得するのが難しく、学生の興味の最も薄い部分だと思いますがそれを身につけなければ良い製品が生まれることはないと常々思っていたので、ブログに書いてみましたが文章としてまとめるのは難しいですね。

ちょっと自分の経験や能力が追い付いていない部分に関しても触れているので、現場の人から言わせれば「偉そうに」という部分もあるかもしれませんが、品質という点を重要なソフトウェアの一価値と考える私の日本製の製品の品質向上を願う心の声なので大目に見てください。