昨日アップした本特集の序章:元Apple松井博「世界一イノベーションを生む企業で学んだ、凡人が生きる術」の一節に、「2000年代に経営が上向いてからアップルに入社してきた新入社員たちは~」というものがある。
今でこそ世界中で賞賛されているアップルだが、90年代の経営不振時は、マイクロソフトや他企業の攻勢の裏でもがき苦しんでいたのだ(詳しくは松井氏の著書『僕がアップルで学んだこと』にて)。
これと似たような現象が、ここ2、3年間のSI企業にも起こっている。それまでマーケット自体が右肩上がりで、100人月を超えるような大規模プロジェクトも多数受注できていたが、顧客企業の「開発内製化」や「システム開発のスピードアップ」などを背景に、従来型の受託開発は逆境にさらされている。
そして、マーケットがシュリンクし出すと、プレーヤーもリストラ・再編成されるのが世の常。そんな「変わり目のフェーズ」にSI企業に就職した新人SEは、どうキャリアメイクしていけばよいのか。長年、エンジニアとして業界内で評価されてきた3人の先輩に、そのヒントを聞いた。
第一章:"作れないSE"にならないためのアドバイス
「新人SEの教科書」第1章の講師
タワーズ・クエスト株式会社 代表取締役
和田卓人氏(@t_wada)
テスト駆動開発(以下、TDD)の普及役として知られるプログラマー兼経営者。学生時代、オブジェクト指向分析/設計に傾倒。その後、ソフトウエアパターンやXP(eXtreme Programing)を実践する人たちと出会い、TDDの誕生を知る。現在は講演活動やハンズオンイベントを開催しながら、TDDの普及運動を行っている
市場拡大期におけるSEには、「作る」ことよりも協力会社やオフショア開発のマネジメント力が求められた。若いうちから開発現場を離れ、PL、PMの役割を任されるケースが増えた結果、一時期は「SEに開発力はいらない」という風潮さえあった。だが、リーマン・ショック以後、この流れは確実に変わっている。
「わたしが見聞きしている感触では、たとえ大手であろうと、開発力のあるSEの重要性が非常に増してきています」
そう話すのは、大学生のころからプログラマーとしてのキャリアをスタートした和田卓人氏だ。現在はTDDの伝道師として知られる和田氏は、これまで大小さまざまな受託開発に従事してきた。そんな同氏が考える、"作れるSE"になるためのポイントとは何か。
本特集の導入として、あえて腕利きのプログラマーが語る「若手にオススメの技術習得のコツ」を聞いてみた。
【Advice 1】
技術習得はノウハウ(Know-How)よりノウフー(Know-Who)が大事
学生時代からプログラマーとして仕事をしていたため、常に独学で技術を学んできた和田氏
「わたしが仕事を始めた当時は今ほどネットでの情報収集ができなかったので、大学の図書館で『Cマガジン』のような技術専門誌のバックナンバーを取り寄せて独学していました」
"作れるSE"になるためには、何よりもまず言語・フレームワークといった技術習得が欠かせない。SI企業では担当プロジェクトごとに使う言語が限られるが、和田氏は少なくとも「考え方、パラダイムが異なる2、3の言語をたしなむようにしておいた方が良い」と話す。異なるプロジェクトにアサインされたり、トレンドが移り変わっても、短期間で対応できるからだ。
和田氏が熟読していたような技術専門誌のメリットは、巻頭特集に最新の技術動向や流行の言語が載っており、後半にある連載では基礎的な内容を深く取り上げたものがまとまっていること。
「プログラミングの原理原則を掘り下げて学ぶこともできるし、近い将来に必要となるプログラミング言語や開発手法を知ることもできるんですね」
今ならネットやSNSなどでもっと幅広くスピーディーに情報収集することができるが、逆に情報過多だったり、どの言語・開発手法に注目すべきなのかが判断しづらいというマイナスもある。
そこで和田氏が勧めるのが、ネット上に"仮想師匠"を持つことだ。
「何かを学ぶ時は、ノウハウと同じくらいノウフーも重要です。最近は言語やフレームワークが乱立状態ですから、技術系サイトやSNSのタイムラインをチェックし続けても『トレンドを追っているだけ』になってしまいます。そこで、まずは開発について"濃い情報"を持っている人たちを先に探すのです」
「濃い情報」とは、オープンソースコミュニティーや特定技術の専門集団で動いているエンジニアが持つ、実践を伴った開発情報だ。また、すでに各技術分野で第一人者として認知されている人を探し、その人物が発信している情報やTwitter、ソーシャルブックマークなどを注視するのも手だという。
「注意してほしいのは、フォロワーにしろブックマーク数にしろ、『数の多さ』は必ずしも重要ではないということ。多くの人が注目しているのは『今が旬の技術』という証拠ですが、濃い技術や話題は、むしろブックマーク数が2ケタ程度のものだったりするのです。だからなおさら、誰が注目しているかが大切になります」
和田氏自身が現在注目しているのは、Node.jsやJSXのような、JavaScript関連の技術に精通する人たちの言動だそうだ。では、そもそも「どんな人」に注目すればいいか分からない新人はどうすればいいか。さらなるアドバイスとして、推薦書籍2冊を挙げる。
「1冊は、手前味噌ですがわたしが監修した『プログラマーが知るべき97のこと』。もう1冊は『100人のプロが選んだソフトウェア開発の名著』です。この2冊の共通項は、数多くの著名エンジニアが寄稿している点です」
例えば『100人のプロ~』は、国内最大級の開発者向けカンファレンス「Developers Summit」のスピーカー100人が薦める名著案内だ。世界・日本で活躍するプログラマーがどんな本、著者から何を学んだかを知ることができる。
「Webサイトの関連リンクと同じように、有名エンジニアの『学びのソースをたどっていく』のも、有益な勉強法の一つ。たどっていく過程で見つかるコードを検証していくことで、プログラミングのヒントがいくつも見つかります」
【Advice 2】
自習用のサンドボックス(実験環境)を準備しよう
注目すべき人・技術を見定めたら、次にやるべきは実践。自分自身でコードをいじってみなければ、頭でっかちのまま終わってしまう。
ただ、上記したように、企業に勤めながら仕事として学べる開発言語はそう多くはない。「30歳までを目安に、2つ以上の得意分野を身につけておく」ことを勧める和田氏は、自己投資をして個人のPCに自習できる環境を準備しておくべきだと力説する。
「最近では、VMWareなどを利用すれば個人でも数万円程度の投資で仮想環境を持つことができます。クラウド環境のAWSや、PaaS(ネット上のソフトウエア構築・稼働プラットフォーム)で知られるHerokuなども、比較的安価で(Herokuは無料から)利用することができますから、こうした環境構築は将来への投資だと思ってどんどんやるべきです」
自宅でもすぐに手を動かし、開発を試せる環境を持っておく最大のメリットは、会社のプロジェクトに依存せず自分だけのソースコードを持つことができるという点。
「オープン化が進むこれからのIT業界では、エンジニアとして『自分はどういう人か?』というセルフブランディングがより重要になってくると思います。そんな中で、自分でコードを書き、githubなどで発信していくことは、その習熟度にかかわらず大きな財産となるはずです」
第2章:会社やPJTの方針に不満を持った時のアドバイス
「新人SEの教科書」第2章の講師
株式会社ソニックガーデン 代表取締役社長 CEO
倉貫義人氏(@kuranuki)
大学院を修了後、東洋情報システム(現・TIS)に入社。同社の基盤技術センターの立ち上げや、社内SNSの開発と社内展開、オープンソース化などに携わる。2009年、社内ベンチャー「SonicGarden」を立ち上げ、2011年にMBOを行ってソニックガーデンを創業。クラウド&アジャイル環境を駆使した「納品のない受託開発」を展開し、業界の内外から注目を集める
良い悪いは別にして、規模の大きなSI企業ほど、新人・若手SEは「会社の理屈」を最優先しなければならない立場に置かれているものだ。中には勤め先やプロジェクトに対する違和感や不満が募り、早いうちに他社への転職やフリーランスへの転身を考え出す人もいるだろう。
倉貫義人氏も、「入社2年目くらいの時に、(前職であるTISからの)退職してフリーになろうと考えたことがある」と振り返る。学生時代からアルバイトでプログラミングをやっていた倉貫氏にとって、オフショアや協力会社のマネジメントが重視される職場が、自身の居場所ではないと感じ始めたからだ。
(次ページに続く)
<< 前ページに戻る
「どこでも必要とされる技術屋」になるのに、立場や境遇は関係ない
社内起業、独立と、技術力を武器に自立した人生を歩む倉貫氏。だが新人時代は悩みも
おりしも、当時(2000年代初頭)はSI企業がこぞって「技術会社」から「ソリューション企業」への転換を模索し始めた時期。SI市場の拡大を受けて、元請け会社のSEは開発業務よりプロジェクトマネジメントを任されることが増えていった時期だ。
しかし、倉貫氏はいろいろ考えた結果、会社に残る道を選択。
「会社を辞めたとして、フリーランスで100%元の会社からの仕事を受けてる限り、ただの会社員と違わないし、不安定さが増すだけ。フリーランスになったつもりで会社員を続けて、どこからも必要とされる人材になる方が得策だな、と考えるようになったんです」
そしてこの時期を境に、自身が疑問に感じるところや、もっと変えていけると思う部分を積極的に提案するようになっていく。同社の基盤技術センターの立ち上げや、社内ベンチャー「SonicGarden」の立ち上げを実現し、自分自身で環境を変えてこれた背景には何があったのか。
【Advice 3】
「自分にとっての顧客は誰か?」を知ろう
倉貫氏が新卒当時の先輩に教えられ、起業した今でも心に残っている教訓の一つに、「SIerはモノづくりを行うだけではなく、課題解決を実現する企業である」という言葉がある。この大原則に則れば、立場がプログラマーであれSEであれ、フリーランスでも会社員でも、自分自身が何に取り組むべきかが見えてくると倉貫氏は言う。
「一番シンプルなのは、『自分が今やっていることが顧客の課題解決になるかどうか?』ということです。それには、『自分にとっての顧客は誰か?』を考えてみること。よく、それは発注先だという人がいますけど、会社は顧客から得た報酬を社員に給料として支払うわけですから、フリーランスになった気持ちになれば、自分の会社も自分にとっては『お客さま』みたいなものなんですよ」
そう考えれば、会社や開発の現場がおかしいと感じたら、どうすれば良くなるか改善案を考えて提案するのが、「自分にとっても会社にとっても良い結果を生む」と示唆する。
事実、倉貫氏自身も、あるプロジェクトがうまく進まず悩んでいたのを機にアジャイル開発の勉強を始め、社内に導入の提案をして採用されたことがあるという。こうした働きかけが評価を高め、後の企業内起業へと結び付いていったのは言うまでもない。
では、現在でもまだ一部にしか普及していないとされるアジャイル開発に、数年前から注目できた理由はどこにあったのか。その答えが、続くアドバイスとなる「社外交流」だ。
【Advice 4】
半径3mより外の人と、意識的に会おう
「僕自身が早くから『日本XPユーザグループ』や『オブジェクト倶楽部(通称オブラブ)』に参加して、そこからほかの勉強会やエンジニアを知って人脈が広がっていったからこそ、早い段階でアジャイルの優位性に気付くことができたんです」
同じ会社にい続けて、しかも配属が2年以上続くような長期プロジェクトになったりすると、次第に「おかしな状態」に疑問すら抱かなく危険性がある。それを防ぐ意味でも、「半径3mより外の人、つまり外部のコミュニティーや勉強会に参加する」(倉貫氏)ことを強く勧める。
「今はFacebookやTwitterなどSNSが普及しているので、自分が興味を持つ技術分野で、どんな人がどんな情報発信をしているのかがすぐ分かります。だけど、社内や担当プロジェクトで行われていることが本当に正しいのか? を確かめるためには、外の世界を覗いてみるのも必要だと思いますね」
実は、先ほど例に挙げたアジャイル開発の提案を行っていた前後、倉貫氏は「本当に開発現場で使えるのか?」という不安を持っていたという。だが、ある勉強会に参加した際、とあるメーカー系SIに勤めるエンジニアがアジャイル開発の事例発表をしていたのを聞いて、確信を得たのだそうだ。
それだけでなく、「SI企業のプロジェクトは守秘義務があるから、社外で話してはいけないのでは?」という思い込みも、この発表を聞いて払拭された。
「僕らはプロなわけですから、本当に話しちゃいけない部分まで口外することってそうそうないはず。過度に気にして何もしないより、社外で発信してみる方が、絶対にたくさんの知見を得られます」
さらに、立場や置かれた状況の異なるエンジニアと接していくうち、ある気付きも得ることができた。それは、「結局このビジネスで一番価値があるのはソースコードだ」という結論だ。
「もし、今の勤め先でプログラミングの仕事から離されそうになっているなら、『良いソースコード』、『後々修正もしやすい価値のあるソースコード』とは何か?ということを客観的に知るためにも、早いうちに社外の人たちから学ぶ機会を持つべきだと思います」
地方にいる、プロジェクトが忙しいなどといった理由で、なかなか勉強会や交流会に参加する余裕を持てないのであれば、「githubなどでソースコード交流を図る方法もある」と話す。ここでも、担当プロジェクトの都合で公開できるコードがないという人は、自習内容をアップしてみるという手があるだろう。
こうして、在籍する企業の規模や環境にかかわらず、エンジニアとしての「個のチカラ」をどう磨いていくかが成長のカギ、というのが倉貫氏流の自己研鑽法だ。
第3章:数年後、「余剰SE」にならないためのアドバイス
「新人SEの教科書」第3章の講師
株式会社匠BusinessPlace 代表取締役社長
萩本順三氏(@haggy335)
2000年にオブジェクト指向技術の企業、豆蔵を立ち上げ、以降ITアーキテクト、メソドロジストとして活躍してきた大ベテラン。2009年7月、匠BusinessPlaceを設立。現在は、ビジネスとITの可視化を行うための要求開発をさらに洗練・拡張させた手法「匠Method」を開発。自らユーザー企業で実践している
オブジェクト指向技術を専門とする豆蔵を立ち上げ、現在は独自の「匠Method(リンク:オープンコミュニティ『要求開発アライアンス』の2012年4月定例会発表資料より。15P以降が匠Methodの解説)」を通じて、ビジネスとITの"見える化"を推進する萩本順三氏。自身がSEとしてのキャリアをスタートしたのは、27歳の時だった。
事業会社の経理担当者からIT業界へ転身した当時はMS-DOSが出始めたころ。「なのに、わたしは前職の仕事を通して少しだけ触ったことのあったCOBOLや簡易言語、そして情報処理技術者の知識くらいしか持っていなかった」と振り返る。
同年代のほとんどが自分より多くの開発経験を持ち、プログラミングに勤しむ現場で、一人ゼロからスキルを積み上げながらスキルアップを実現してきた。
自らを「落ちこぼれプログラマー」だったと話すが、2000年には前述のように豆蔵を共同設立。現在の会社「匠Lab」を創業する前後の2009年3月までは、内閣官房IT室GPMO補佐官として政府のIT化戦略・実施マネジメント(e-japan)にも携わるなど、業界内でも屈指の戦略家として名を馳せるようになる。
萩本氏がプロジェクト構築・推進のエキスパートになれた理由はどこにあったのか。その答えは、IT業界に入った当時から意識してきたという独自のノウハウにあった。
(次ページに続く)
<< 前ページに戻る
「退屈な作業のくり返し」が創意工夫を生み出すチャンスに
IT業界に身を転じた後、当面は「いわゆる閑職に追いやられていた」と話す萩本氏。だが、その期間が後の糧となる
27歳で初めてこの業界に入った萩本氏は保守中心のプロジェクトに配属されたが、その後「マシン室」と呼ばれる開発現場でも働くように。「当時はアセンブラすら分からない状態だった」(萩本氏)ため、スキル不足という壁に直面した。
「だから、とにかく分からないことがあると先輩や上司に質問するわけですが、周囲は迷惑だったと思います(笑)。プログラムの捨てられたゴミ箱をあさったり、"逆アセンブラ"してC言語を覚えたりと、ホントに必死になって学んだ時期でしたね」
こうした下積みの期間を過ごした萩本氏だが、日々同じことをくり返す中で、想像以上にスキルアップができることにも気付いた。
「保守のプロジェクトを『退屈だ』と『(キャリア形成上)意味がない』と感じる人もいると思いますが、わたしはいろんな創意工夫をすることで、いわゆる閑職にいてもスキルを高めることができると思っています。わたしの場合だと、空き仕事に知らない言語や技術を学ぶだけでなく、ITをビジネスに活かすヒントについてもじっくり考える時間を持つことができましたからね」
この「空き時間活用術」に象徴されている、「未来について考えるクセ」が、その後の萩本氏を形作ることになったという。具体的には、以下の行動習慣だ。
【Advice 5】
複数の言語・手法を学んだら、共通項から原理原則を理解しよう
COBOLとわずかな簡易言語だけでエンジニアとしてのキャリアを始めた萩本氏だが、常に学ぶことを自らに課す貪欲な姿勢を持つことで、やがてCやC++、C#、Javaなど、現在も主流となる開発言語を習得していく。
ただ、これらの言語を「流行だから」と覚え続けてきたわけではない。萩本氏が学ぶ際に注目してきたのは、異なる言語間に共通する関数やコーディングメソッドだ。
「言語は違っても、コードの中で同じような関数やメソッドが使われていることに気付くと、プログラミングの原則のようなものを理解できるようになっていきます。これは開発プロセスについても同じことが言えます。一見、別々な要素から類似点を見いだして、抽象化・パターン化する思考回路を持つことで、流行が移り変わっても次へのブレイクスルーにたどり着きやすくなるのです」
この習慣を継続していくことで、どんなビジネスも「ロジカルさ」、「プロセス」、「モデル」、「プロジェクト進行」の4つが成功のカギになると理解できるようになったと萩本氏は言う。
オブジェクト指向の伝道師として、また現在推進する「匠Method」の考案者として業界内で一目置かれるようになれたのは、こうしたパターン化思考のクセづけがあったからともいえる。
「ちなみにこの4つの要素について、仕事を通じて学べる職種ってSE以外あまりないと思うのです。ですから、どんな苦境であったとしても、ほかの仕事ではなかなか身に付けられない普遍的な経験を積んでいると考えることも、若手SEにとっては大きなプラスになると思います」
【Advice 6】
「目先の仕事」と「未来の仕事」を分けて考える習慣をつけよう
「未来のSI」を創るのは若手の役割だと萩本氏。だが一方で目先を疎かにする危険性も示唆
そうエールを送る萩本氏も、現在のSI業界が迎えている転換期を乗り切るのは難しいと認める。
「最も大きな課題は、従来型のSIプロジェクトではビジネスを企画する側とシステムを開発する側との間に大きな溝があったこと。現在は、開発サイドも企画側へ加わり、一体となってプロジェクトを進めるのが求められています。すると、これまでのようにSI企業が大量の人月を投じるのは非効率になっていく。今後、どんな解決策や手段が必要かを、若手は危機感を持って考えていかなければなりません」
しかし、「先輩たちのやり方はおかしい!」、「だから自分はやらない」とそっぽを向くのも間違いだ、と付け加える。
「仕事には、『今、求められる仕事』と『将来、求められるかもしれない仕事』の2つがあります。特に若いうちは、まず目先の仕事から学ぶ、という姿勢も絶対的に必要です。だから、今担当しているプロジェクトを一生懸命にやりつつも、会社や配属プロジェクトの常識を疑い続けることが肝心なのです」
会社の常識を疑うとは、つまり「顧客は何を喜ぶのか、という視点で考え続けること」だと萩本氏。抽象化のクセづけとこの視点があれば、開発プロセスの変化や技術トレンドの変化にも、即応できるSEになれると力説する。
「自分自身を振り返っても、新しい技術、新しい技術と前へ前へ進んでいる時より、単純なくり返し作業の中で創意工夫をしていくと、いつのまにか自分が求めていた分析力や創造力、問題解決力がアップしていた経験があります。脳が活性化されていくような感じですね」
近い将来に廃れてしまうかもしれないと感じながら、与えられたプログラミングや開発手法を実践していくのは、一見、ムダな努力と思えるかもしれない。が、やや遅れてキャリアをスタートさせた萩本氏が自身の経験を通して得た確信は、
「変わり続ける流行を追いかけて消耗するより、普遍の理(ことわり)を見つけた人の方が、プロとして長生きできる」
ということ。揺れるSI業界の中で次へのステップを模索している若手SEにとっては、心強いアドバイスの一つではないだろうか。
<特集:新人SEの教科書 序章はコチラ>
>> 元Apple松井博「世界一イノベーションを生む企業で学んだ、凡人が生きる術」
取材・文/浦野孝嗣 撮影/小林 正、赤松洋太