IPA発行の無料ドキュメントにも実は良いモノがある
IPA発行の無料ドキュメントも実は良いモノがある
日本のソフトウェア分野(IT)の競争力の強化を目的とした『国の機関』として、2004年に設立されたのが、独立行政法人情報処理推進機構(Information-technology Promotion Agency, Japan、略称:IPA)である。
経済産業省(昔の通商産業省)に代わって、情報処理技術者試験の運営をやっている事や、『IPAフォント』等を無償配布している事などで知られている。
IPAというと国の機関という事もあり、斜に構えてしまう人も居るかもしれない。しかし、地味であるが、けっこう良質なドキュメントを無償で公開している。
有名なところでは、毎年、『情報セキュリティ10大脅威』というドキュメントを公開しており、昨今の情報セキュリティに関する情勢がわかる。それに、この内容から『情報セキュリティスペシャリスト試験』の問題も出る事がある。
また、システム開発の、いわゆる上流工程に関する問題を、ずっと指摘している。
個人的には、下記のドキュメントは読む価値があると思う。
(ソフトウェア高信頼化センター(SEC)刊行の各種ドキュメントの中より)
※下の2つは最近発行されたばかりの最新版で、ダウンロードする際に簡単なアンケートに答える必要がある。(2017年3月時点)
これらを読むと、めまぐるしく変化していると思われているIT業界における、本質的な問題/課題は、10年経っても(おそらく20年経っても)変わっていない、という事実がわかる。
"変わるもの"、"変わらないもの"、を見極める事が重要だと、常々思っているが、こうしたドキュメントも参考になるのではないだろうか。
本当は、上記のドキュメントのタイトルにもある通り、まさにユーザー側(官公庁/企業)の経営者や管理者、そして要件定義に責任を持つべき、業務システム担当者に、読んで欲しい内容である。
彼らがこの内容を理解していない状況が、日本のIT業界を悪くしているのだと思う。
情報処理技術者試験などのIT資格の意義とIT基礎知識の重要性
1.思いのほか拡散されたツイートの内容
以前、下記のようなツイートをしたら、思いのほか拡散されて、正直びっくりした。
プログラミング言語は何を勉強すべき?というよくあるアンケートがあるけど、大抵メディアに踊らされてる内容だと感じる。
— ふじわら775SE@猫icon/職場復帰 (@KF7757) 2016年12月11日
それなりに長くSI企業でいろいろ見てきた私として、真実(に近いと思える)事を書いて貼っておきますよ。(あくまでも基幹業務システム系の世界ですが) pic.twitter.com/pFAtHhf9fm
『プログラミング言語は何を勉強すべき?』と言いながら、実はそれ以外の事の方が重要だ、という内容になっていて、ちょっと外した内容であるのにも関わらず、けっこう拡散されてしまった。
拡散が多いと、反論もそれなりに来るのが普通だが、このツイートには反論がほとんど来なかった。(少しは来たが、3~4件程度だった)
反論が来ない事が、必ずしも肯定的とは限らない。しかし、目くじらを立てて反発する事が無いくらいには、それなりに響いた内容だったのかもしれない。
2.IT基礎知識が問われる場面の例
バッチ処理の多重化の検討
これは実際に、最近、私が後輩のPLから分析を依頼された事だ。
とあるJavaで構成されたバッチ処理が、目標の時間帯までに終了しない場合が出ており、多重化で効果があるかどうかを分析/検討して欲しいとの事だった。
ここで重要な事は、そのバッチ処理が、CPU処理で時間を消費しているのか、ディスクI/Oで時間を消費しているのか、という点である。
ディスクI/Oでかなりの時間を消費しているような処理であれば、処理の多重化の効果が大きい。何故ならば、コンピュータ処理の中で、ディスクI/O処理は、『とてつもなく遅い』(数百倍~千倍は遅い)ので、その処理中はCPUやメモリは遊休状態にあるからだ。
CPU処理が大半を占めている(CPU使用率がずっと高いままの)状況であれば、処理を多重化しても、その効果は小さい。
但し、CPU使用率が高くとも、多重化処理自体は可能である。CPUの論理コア数とアプリケーションの多重化の可否には直接的な関連は無い。また、Javaアプリケーションの場合、JavaVMやJITコンパイラの処理も同時に動いている事も頭には入れておく必要がある。
シェルスクリプト内におけるif文とtestコマンド
昨年まで、傷病を理由に三年間も仕事を休んでいた。その復帰直後には、簡単なシェルスクリプトを組んだり、テスト環境を整備したりといった仕事をやった。
シェル関連には経験豊富な先輩社員に、自分が書いたスクリプトを見てもらった。そのときに、if文の評価箇所でtestコマンドを使っているのを見たその先輩が、「このtestというコマンドは何?」という反応をした。同席していた他の若手メンバーから、「よくifで使われる"[“と同じ意味ですよ。”[“は実はコマンドなんですよ」という説明をされ、「知らなかった」と驚いていた。
3.日頃の業務だけでは知識が偏る
上記の2つの例が、上手い例になっているかは自信がないが、1つ目の例は、基本情報技術者試験レベルの基礎知識が問われる場面であり、2つ目の例は、Linux技術者認定試験(LPIC)レベル1程度の基礎知識が問われる場面である。
よく言われる事に、『試験をいくら合格したからといって仕事ができる事にはならない』という主張がある。それは真実だ。
人間の業務は様々な要素が絡んでいる。とても画一的な試験だけで、その能力が測れる訳がない。
しかし、その業務の前提にあるはずの『基礎知識』の有無について、IT資格試験はひとつの判断材料になり得ると思う。
仕事をしている時、他の人に、『こんな事は基礎知識じゃないか』と、ツッコミを入れたくなった経験はないだろうか。
これは試験勉強をしてみて改めて思う事だが、『日頃の業務だけでは知識が偏る』、『日頃の業務で使っている知識は案外せまいものである』という事実である。
上記の例では、2つ目の例がまさにそうである。長年UNIXシェルを使う仕事をしてきた先輩でも、if文に使われている"[“コマンドの真の意味を知らなかった。
それですぐに困る事はないだろうが、場面が異なれば恥をかく可能性もあっただろう。
4.他の人の事はされおき、日々是精進で勉強
試験勉強にはモチベーションが欠かせない。個人的には、左門至峰さんの著書を読むと、やる気になってくる。
私は、もう一度、基礎固めから学習のやり直しをしようとしている。
何せ、私達の世代は、もしかすると一生働き詰めになるかもしれないのだ。
謙虚さを忘れずに、でも、自らは向上心を忘れずに。
ORACLE MASTER 再受験のススメ - 今では管理職になっているご同輩諸君へ (Qiitaより再掲/一部修正)
ORACLE MASTER 再受験のススメ - 今では管理職になっているご同輩諸君へ (Qiitaより再掲/一部修正) -
1.歴史 (主にORACLE7あたりまで)
Oracle Database の認定試験制度である ORACLE MASTER は、日本オラクル社が発祥であり、1997年9月から開始された。
この記事の執筆時点で20年目という事になる。変化の激しいIT業界においては、実に息の長い制度であると言える。
日本オラクル社が発祥という事に驚かれる人もいるかもしれないが、内容的にはきわめて日本人好みのものである。実務経験はなかなか試験では測れないが、知識ベースなら測ることができる。そして受験勉強のように"勉強した成果が評価されるという文化"を好むのは、いかにも日本的である。
もっとも、どんな分野であれ、最初は知識を増やす事から始めるという方向性は、別に間違ってはいない。それだけが正解ではないというだけだ。
特にデータベース関連の知識というものは、他のIT系の知識体系よりも、遥かに“長持ち”する。これは“ビジネスロジック等は時代とともに激しく変遷する"が、"取り扱うデータそのものは不変性が高い"という性質も関係している。
この認定試験制度が生まれた当時(1997年)の Oracle Database バージョンは ORACLE7 である(同年に ORACLE8 が登場したが)。例えば、現在では当たり前になっているデータベーストリガー機能が初めて実装されたバージョンが ORACLE7 である。1992年-1997年という比較的長い期間、最新であったこのバージョンが、当時のRDBの世界に与えた影響は大きい。
日本では、1990年代に大企業を中心に、企業の情報システムが、メインフレーム中心のクローズ系システムから、UNIX系サーバーを中心としたオープン系システムに移行(ダウンサイジング)された。その時期とも重なり、ORACLE7 はかなり導入されたはずである。(ちなみにこの時代にはクライアントには積極的にWindows95系が採用された。Web系モデル以前の、いわゆるクライアント・サーバーモデルが主流であった)
2.歴史 (ORACLE8 / 8i / 9i / 10g / 11g / 12c 現在)
そのような中で ORACLE MASTER は人気を博した。
ITベンダーでは、現にデータベースの知識を持つものが不足し、各社でオラクルマスターを受験する事が推奨された。筆者も1999年にORACLE7の試験を受けた身である。
ORACLE8 から ORACLE9i までは比較的バージョンアップが速く、ORACLE MASTER 制度自体も大きな変化があった。 (Oracleの呼び名も、ORACLE8、ORACLE8i、ORACLE9iと変遷する)
ORACLE9i の途中までの ORACLE MASTER は以下のような3段構成だった。
- ORACLE MASTER Silver : 「SQL入門」、「ORACLE入門」の2科目からなる Oracle Database の入門的な位置づけ
ORACLE MASTER Gold : Oracle DBA として充分な知識を有する専門的な位置づけ
ORACLE MASTER Platinum : Oracle DBA エキスパートとしての位置づけ
それが、ORACLE9i の途中から、上位に Platinum 下位に Silver Fellow (Bronze) が追加され、基本4段構成になった。(実際には他にももっと上の専門分野試験も増えた)
- ORACLE MASTER Bronze : 「SQL基礎」、「DBA基礎」の2科目からなる Oracle Database DBA としての基本知識の認定 (入門レベルではなくなった)
- ORACLE MASTER Silver : Oracle DBA として業務を一通り実施できるアソシエイトの認定
- ORACLE MASTER Gold : Oracle DBA として業務をリードできるプロフェッショナルの認定
- ORACLE MASTER Platinum : Oracle DBA としてトップレベルのエキスパートの認定(実技試験有り)
上述に「下位に」と書いたが、それは内容を知らない者から見たイメージである。
内容的には旧制度の「Silver」が、新制度の「Bronze」に該当するので、全体的な難易度がUPした事になる。
しかも、OracleのバージョンがUPするに従って新機能が増えて、必要な知識量も増加する傾向があるため、同一ランクであっても、バージョンがUPするごとに基本的な難易度も上がっている。
例えば、ORACLE7の「Silver」対策用の参考書「ORACLE MASTER ハンドブック Silver編」(リックテレコム刊)は、2科目をカバーして382ページになっているのに対して、Oracle12cの「Bronze」"SQL基礎の1科目分のみ"の対策用の参考書「オラクルマスターステディガイド Bronze 12c SQL基礎」(SBクリエイティブ刊)は、それだけで554ページにもなっている。
ページ数だけで単純比較は無論できない訳だが、必要な知識量が増えている事は間違いない。
これはあくまでも私感ではあるが、旧制度で「Gold」まで合格した人でも、新制度の「Bronze」に合格するためにはかなりの学習が必要だろう。(Bronze という最下位のイメージだけで舐めてかかると、まず合格できないだろう。人事の者にはわかるまいが…)
3. 変わっているもの、変わっていないもの、…の見極めができるか
筆者は、いわゆる「就職氷河期」、「失われた20年」の初期に社会に出た世代であるが、多くの同年代はリーダー職やマネージャー職といった管理職に就いている。この世代は、ORACLE といえば ORACLE7 や ORACLE8 といった世代であり、ORACLE MASTER を受けた事があるといっても、ほとんどが旧制度の内容であると思われる。 「UNDO表領域」の事を「ロールバック・セグメント」と言ってしまう世代である。
古い用語が出てしまう等はまだまだかわいい方で、20年近くも前に学習したSQLや、RDBアーキテクチャーの知識が今でも通用すると思っていたり、下手をするとオラクルマスターの制度が変わった事を知らなかったり、今でも「ORACLE」の知識を持っていれば安泰だと思っていたりする。(矛盾するが…)
現実には、WebサーバーOSのシェアは Linux が圧倒的となり、そのバックエンドで利用されるRDBMSも MySQL 等のOSSが急激にシェアを拡大している。 すでに ORACLE だけの知識では通用しない時代になってきている。
しかしながら、ORACLE MASTER は今年で20年目を迎え、今後も当分は受験者は減らないだろう。SQLの基礎知識やRDBアーキテクチャーについて、広く通用し得る認定試験制度は、他にないからだ。
IBM が、オラクルマスターを追い越せとばかりに、IBM国際認定制度「DB2グローバルマスター」という制度を積極的に打ち出していた時期があり、筆者もそれを受けた身ではあるが、なかなか広まらなかった(…という認識をしている)。 LPI-JAPAN が、OSS-DB 認定試験制度(実際の内容はPostgreSQL)を展開中であり、今後に期待しているが、情報量では ORACLE にまだまだ勝てていないだろう。
それに、ここには記さないが、ORACLE のアーキテクチャーのかなりの部分は、過去のバージョンから受け継がれているものである。 基幹系システムの心臓部分では、まだまだ ORACLE が利用されている。
今では仕事以外の時間にはろくに学習もしないというリーダー職やマネージャー職の同世代諸君には、もう一度、学習をしていただき、何よりも『何が変わって、何が変わらないのか』という点を見極める、『技術の目利き』を養っていただきたいと思う。
4.今回の観点
Oracle の近年の動向や、Sun(Java)や、MySQLを買収したり、Oracle Database の料金制度が色々変化したりと、様々な観点、意見が世の中にはある。
今回は、あくまでも"同世代の人々にもう一度、学習を促したい"という主旨のみで記載した。決して Oracle の回し者ではないので、そこは理解していただきたい。
5.関係リンク
ORACLE MASTER 再受験のススメ - 今では管理職になっているご同輩諸君へ -
6.終わりに…
IT系の認定資格試験については、その価値について、賛否両論がある。
結局のところ、活かすも、活かさないも、本人の取組姿勢次第という事に尽きる。
ORACLE MASTER を例に挙げても、ただ単に合格すれば良いのであれば、ひたすら参考書や問題集を解くという方法で、Silverあたりまでは行けるだろう。
本質は、その過程で、体系的に学ぶという部分であると個人的には考える。
資格の部分は点の知識でしかない。その点を学習する過程で、いかに線や面の知識を得られるか、である。
若手にCOBOLを教える事は可哀想か
若手にCOBOLを教える事は可哀想か
『これからのIT業界を担ってゆく若手をコボラーにするのは可哀想だ』という意見がある。現実に、某巨大コンピュータメーカー本体に入社したものの、配属先が金融機関システムのプロジェクトで、新しい技術とは無縁の世界では働くのが嫌なので会社を辞めたという記事が、昨年にも話題になった。
私の意見としては、せっかく高い競争率を突破して入ったであろう巨大メーカー本体の社員という身分を、そんなに簡単に捨ててしまって、なんとまあ、もったいない事か、と思った。
率直に言うとね……。
価値観は人それぞれなので、こればかりは仕方が無い。でも、そんなに簡単に辞めるなら、替わりに自分がメーカーの社員になりたかった、という人は大勢いるだろう。
そういう人は、何故メーカー社員になりたいのだろうか。
日本を代表する巨大コンピュータメーカー本体の社員ともなれば、嫌が上でも、若いうちから関連企業のベテラン社員や、言葉は悪いがいわゆる下請けパートナー企業のエンジニアを統率するような位置での仕事になってくる。
(はじめのうちは、それこそ金融機関システムならCOBOLプログラマーとして出発するかもしれないが、数年もすればそういう立場になってくる)
確かに地道にプログラマーとして腕を磨いて行きたい、という方向とは異なって来るだろう。しかし、これは現実的な問題として、『いちプログラマーにはいつでもなれる』が、『巨大メーカー社員としてプロジェクトを率いる立場にはなりたくてもなれない』という、業界の構造問題がある。
プロジェクトを率いるという事は、『要件定義』といった顧客側責任の業務にも深く関与するという事だ。そして、システムには業務アプリケーション領域だけではなく、インフラ領域も必要となる。メーカー系社員なら、インフラ系の領域に道を見出す事も可能だ。
(それが、たとえクローズド環境の特殊なインフラ機能であったとしても、業務アプリケーションの土台となる基盤には何が必要なのか等、多くの知見があるだろう)
COBOLが死滅すると言われて何年が経過するか知っているだろうか。
私が知る範囲でも、30年も前からずっと言われ続けてきた。
そしてこの30年間で、たしかにペースの増減はあるだろうが、毎年COBOLプログラム資産は増加し続けている。
これは私見であるが、COBOLエンジニアは、金融機関の業務システムのような、『業務知識とセットで』育成されてきた感が強い。
そうしたCOBOLエンジニアは、今では人手不足で、現場は大変だという。
価値観は様々であるが、シンプルにこう考える事もできる。
『人手不足』という事は、その領域の知識やスキルセットは『飯の種になる』
福祉や介護系の人材不足の状況等を見るに、一概に人手不足の領域が良いとは言えない部分もあるけれど……。
少なくともこれだけは言える。
プログラミング言語の習得といった問題は、実は些細な問題で、IT業界でエンジニアとして長く活躍して行きたいならば、顧客側の業務要件定義の領域と、システム側のOSやデータベースといった基礎知識の領域を、バランス良く持っている事が重要である。
果たして『新しい技術』のうち、本当に『新しい』のは、どれなのか。
実は、大昔に流行した概念が、言葉を変えて再来しただけかもしれない。
変わるもの、変わらないもの。
これらの見極めが重要なのである。