今回のJJUGナイトセミナーはいつもと違ってゆるい感じで行いたいと思ってます。
http://jjug.doorkeeper.jp/events/11476
きしださん(@kis)が自身のブログの内容を適当に解説してくれるそうです。
聞きたかったあれやこれやについて質問してみましょう。
こちらに行ってきました。
講師のきしださんは最近のエントリで色々と我々プログラマの置かれている状況に対し、なるほどーって感じるエントリを書いており、その補足みたいなものが聞けるかなと思い行ってみました。と言うより、きしださんに会ってみたい一心だったのはナイショ。会場に現れたきしださんは、「ええ?イメージ違!ええ、、、ええ?えええええええ?」っと僕は目を丸くしてしまいました。(オイ、どんなイメージ持っていたんだ?)
最近のエントリについてはこちらを参照してみてください、この話がベースになっています。
以前、「勉強会に参加しないと不幸になる話」というのをアップしました。
http://d.hatena.ne.jp/nowokay/20140225#1393294814
勉強会に参加しないと不幸になる話 - きしだのはてな
このときは、勉強会x勉強会という枠だったので、「勉強会」と表現していますが、実際にはコミュニティに参加しないと不幸になる話でした。
今日もプログラマになる勉強する人のところで話をしてきました。
http://d.hatena.ne.jp/nowokay/20140228#1393568286
で、また適当にいろいろ書いてました。
http://www.slideshare.net/nowokay/20140228-31742219
今日は特に、この図の内容についてまとめておきます。
その2つの形態というのは、労働集約型の業界と、知識集約型の業界です。
http://d.hatena.ne.jp/nowokay/20140310#1394414412
労働集約型はSIで多い多人数開発の業界で、知識集約型がサービスで多い少数精鋭型の開発です。
前回のエントリで、プログラマの業界が労働集約的なものと知識集約的なものにわかれてきているという話を書きました。
プログラマ業界の二分化 - きしだのはてな前のエントリでは労働集約的なものと知識集約的なものに完全にわかれているように書きましたが、もちろん完全に労働集約的であったり完全に知識集約的であったりすることは少なく、どのような組織でもある程度は両方の性質をもっています。知識集約的な性質の強いSI会社というのもあります。
http://d.hatena.ne.jp/nowokay/20140312#1394582836
ただ、SIに労働集約的な、サービスに知識集約的な性質が強くなる傾向はあると思います
用語は形式的なものではなく感覚的なものであることをお断りしておきます。
http://d.hatena.ne.jp/nowokay/20140314#1394754254
我々の住むソフトウェア業界は、SI、サービス・パッケージ、ユーザー企業という大小3つの大陸にわかれ、時々いさかいがありながらも平和に暮らしていた。
そして、我々の住む世界とは別に、同規模の技術者が暮らす、組み込み業界という世界の存在も知られていた。組み込み業界は、存在はすることは確かなのだが技術者の姿は見えず、そのプロダクトの存在も、わかるものにしかわからないのであった。
http://d.hatena.ne.jp/nowokay/20140315#1394872699
我々は、組み込み業界と交信できる唯一の手段、C言語を使って、その世界の住人と交信するしかなかった。
前提
上でリンクしたけど、この勉強会の話の前提としてSIer、サービス業界、ユーザー企業、組み込みの4形態に大きく分けられる。しかし組み込みは今回の話と全然違う業態であるため外す、またユーザー企業は今回の勉強会の話とはちょっと違うバイアスがかかるので話からはずす。つまり今日の話はみんな大好きなSiアーとサービスの2つ。こういった2分論は本当は危険だけど単純化してるよとのこと。
内容
Sierの場合はユーザー企業から受託で契約した内容を子受け孫請けひ孫受けでわたってきてプログラマに仕事がわたる。そのため、エンドユーザーの満足度とそれで金が入るユーザー企業がどうのより、契約を履行するための仕事になる。そのためプログラマの創意工夫は不要。サービス企業の場合は、エンドユーザーの動向が金に結びつくため、プログラマの創意工夫がユーザーの満足度につながる。
ここで重要なのはSI系としてはエンドユーザーが満足じゃないものができたとしてもちゃんと金額が入ってくること。しかしサービス系ではユーザーの満足度が直接金に結びつく。この違い。お金の元になるエンドユーザーがいて、その要求が潜在的、顕在的にあるが、その要求をどう創っていくかというのと、どのようにプログラムを組むかというのは別と言うのが重要になってくる。
勉強すべき事柄は多く、ソフトウエア工学、コンピュータサイエンスがある。ソフトウエア工学は作り方の学問、オブジェクト指向など、その現場、現場で動くために設計されるもので正解は無い。しかし勉強しようと思っても知見はあっても実践が個人ではできない。どう勉強していいか分からない。コンピュータサイエンスは理論とか知識とかアルゴリズムとかSQLとか・・・これらはもくもくと個人でも勉強できる。
そうるすると孫請け孫請け・・・で仕事が来てる僕らSIアー系のプログラマが初めに勉強すべきはコンピュータサイエンス。まぁSQLとかアルゴリズムとか、、、になるのかな。そうるすろとオラクルなんとかとかの試験って理にかなっているのかな。たしかにね、この業界に入って初めに面白かったのはまず目の前にある具象的な何か,、アルゴリズムとかを実装することだったな。でもだんだん見えてくるに従って工学系の方、どう作るかに偏ってきたような。オブジェクト指向に正解は無いってのもいくらデザインパターン知った所で完全に同じものが適用できるかと言うと違ったりする。ベストプラクティスからわざと崩す必要もあったり、ライブラリの制限や大人の事情とかで崩さざるを得ない場合とか・・・その場その場で違ってくる。
SI系はどちらかと言うと、大量のスキルレベルが低い人らを契約期間無駄なく効率よく作る必要がある。サービス系は効率がよくしたとしても金に結びつくとは限らない。逆にいいものを作らせる必要がある。どなたかが言っていましたが、SI系は「効率」が大事だけどサービス系は「効果」が大事。いい表現だと思った。しかしこの効率と効果の話って上司が部下を持ったときに読む本とかに書いてある「仕事は効率を、人には効果を」みたいな言葉とダブる。SI系人間じゃない・・・(´;ω;`)ウッ…
プログラマのステップアップについて
レベルの低い人らを動かしている会社にいる、ある程度レベルが高い人の話。SI系の場合、スキルレベルの低い人らをどうやって効率よく無駄なく使っていくかと言う話になる。自然、その会社にいるプログラマのレベルは低い。そのため、その会社のレベルから逸脱したレベルのちょっと高いプログラマはどのような動きをする必要があるか。
一つは、各個人の能力を高めて、会社の能力を高めるという方法。つまり自分がみんなを引っ張って技術レベルを上げるってことか。でも個人の能力が上がるのは結構簡単だけど、それに伴い組織の能力がすぐ上がるかと言うと別の話で、非常に長い時間がかかる。その弁証としていまきしださんは絵を描き続けている。ちなみにこの勉強会ではきしださんは初めに用意したプレゼン資料をつかわずにどんどん絵を描いていく方式をとっている。結構短時間で絵のスキルレベルは上がっているそうです。
江口寿史さんが、5分スケッチというのをやってたわけですね。
http://d.hatena.ne.jp/nowokay/20140426#1398491587
本日お誕生日の江口寿史氏の5分間スケッチとその説明 - Togetterまとめ
そんで、あー5分ならやってみるかーと思ってやってみたわけです。
ここまでのまとめ。
個人のレベルが上がって組織がついて来れないときどうするか、、自分を上げるのであれば転職となる。現在はその環境が整いつつある。組織が変わるのは難しいというけど、それはIPAの資料を引き出して、今年度のIPAの白書から見ると、各企業へのアンケートで人材の量的な不足感は上がっているが、質的な不足はこの5年間変わっていない。つまり、企業の求める人材は変わらないということ。そうすると個人としては転職でしか自分のいる組織のレベルは上がらないってことが見える。
組織で言えば10年単位で考えなきゃいけない・・・そうするとさっきの個人の能力を上げるのは簡単、だけど組織の能力を上げるのは難しいというのと合致するね また、人材の量がたりないというのは単に人口としての人数がたりていない。少子化だからね。
35歳定年説については上の話からすると非常に単純。SIが求めるレンジは低い。そのなかで上のレンジの能力があったとしても売る事ができない。お前は過剰品質やねん!ということ。35歳以上の能力を持った人を金に換えるスキームがその会社にないって話。組み込み業界の場合は、ノウハウが関わってくると。そのプロダクトに依存したようなノウハウが必要になってくるので、逆に年が行ってもプログラマとしてやっていけるということか。
勉強について
勉強自身は自分でするべし!たまに「勉強会に行っても勉強するわけじゃ・・・」って言う人がいるが、勉強会は自分の選択肢を広げるため、モチベーションを上げるためのものとして存在する。勉強すべきことはたくさんある。一つ一つの勉強項目は時間がかかる。どうやったら効率よく覚えられるかかよりいかに勉強を *続けられるか* が大事。いかにモチベーションを保ちつづけるか。そのために勉強会やコミュニティに出るということが大事になる。
つまりは勉強という部分で言うと、習慣の話に落ち着くんだね。日々の行動にどう勉強を落とし込んでいくか、そのインセンティブとして勉強会を使う。行動分析学しようぜ!そこの問題いっぱいつまってるぜ!って思ってしまった。きしださんのいう勉強会をパーソナルマネジメントという面でとらえると非常にいいものが得られるとおもう。
じゃ、勉強する時間とかをどうねん出するか。1日は24時間だが、その時間は「生産活動」「メンテナンス」「投資」の時間に分けられる。仕事は生産活動であり、成果は上がるけど勉強はできない。メンテナンスは食う寝る遊ぶ、家族の時間なので勉強の時間はない。投資の時間が勉強の時間でどう捻出するか。投資の時間を取るには、なんと「生産の時間をへらすw」
出てみて
結局のところ今回はプログラマーとしての視点だったけど、プログラマーとして幸せになりたければジョブホップだねってことで。きしださんが引き合いに出したIPAの白書からも感じるに今後その傾向は強くなるんじゃないかなと。多くのSI企業がプログラマ35歳定年説とかあるように、プログラマとしてのキャリアを示せない限り、プログラマとして、個人の能力を最大限引き出す戦略で生きて行きたい人はまずSI系の企業からジョブホップしていく必要がある。
また、人材不足の件があったのと、当日は触れられていなかったけど、じゃぁその人材不足をどう補うかと言う点で、今後オフショアが今以上に加速するんじゃないかと。オフショアと言うと誰でもできるという部分と言うイメージが強いけど、実はオフショア先の人らって(中国人に限らず)エリートなんだよね。少なくとも僕ら勉強もしないSIアーの人らよりはいい大学で死にもの狂いで勉強している。工学もだしサイエンスもだし(ソースなし)。僕らはそんな彼らと今後戦っていかなくてはならない。それは主観であるけど以前やった仕事で感じた。日本人誰でもできる部分作ってりゃいいんじゃね?って。そうすると個人の選択肢としては自分のいる場所から否が応でもジョブホップが必要となる。まぁ、じぶんはもうとうが立ってジョブホップはどうかなと思うけど。緩慢なる死が待っている。orz...それとも芽はあるのかな?
今日はおもろかった。初め、誰も知り合いがいない勉強会に行ってボッチだよ〜(((( ;゚д゚)))アワワワワと思っていましたが(毎度だけどw)心配ご無用で、きしださんが最後に勉強会について言及してたように勉強会ってなにがいいか、熱気みたいなのうつるんだよね。これで明日1日孤独にプログラミングしていられる。きしださん、運営のJJUGの皆様、会場をご提供くださったGxPさん、楽しい時間、モチベーションのタネをありがとうございました。