So-net無料ブログ作成

パナソニックセンター見学 [マンション・ライフ]

昨日は、マンションで私が所属しているクラブの活動の一環として、「パナソニックセンター東京」を訪問しました。

http://panasonic.co.jp/center/tokyo/

主目的は、103v型プラズマテレビで見るフルHD 3Dシアターを見てみることでした。3Dテレビが今後普及するということで、見学に行ったのですが、色々な展示がしてあります。

最初は、「エコアイディアハウス」のガイドツアーで省エネに関する技術を採用した家の提案ということで、ガイドさんの案内で見学しました。その後に、「フルHD 3Dシアター」です。3Dは、やはり迫力あるのですが、専用のメガネを使用する必要があるのが、ちょっと面倒です。特に、普段、メガネを使用しているので、その上に専用メガネをかけることになってしまいます。

もうすぐオリンピックということで、オリンピック関連の展示もしてあり、初めてカーリング競技のストーンを持ってみましたが、20kgと重かったです。

次回の勉強会のテーマとしては、横浜市議会傍聴を計画しています。

技術的な停滞 [プログラマー現役続行]

最近は、プライベートでの翻訳作業のために、技術的に新しいことを行う時間が取れないでいます。翻訳そのものは、本の内容を自分で再認識したりするので技術者としては悪くはない活動でもあるのですが。

一方、仕事の方はどうかというと、技術的には全く新たなことを学ぶ機会は無いし、何かを開発させてもらっていることも無いです。むしろ、知っていることを、一方的にアウトプットしているだけという感じです。

昨日は、「ソフトウェアエンジニアの心得」の第2回を実施しました(受講者20名)。終了時間を勘違いしていて、もう、終了時間を過ぎていると思っていたのですが、受講生が帰られた後になって、そうでなかったと気づきました。

2月も技術教育が目白押しです。そして、翻訳の締め切りが近づいてきます・・・・

翻訳が終わったら、当面は、「Project Lambda」をキャッチアップしなければと思っています。それと、「API設計の基礎」を完成させないと・・・・・

技術はできて当たり前の管理職(2) [プログラマー現役続行]

以前書いた「技術はできて当たり前の管理職」では、管理職になる前から学習する習慣を失っている管理職という話を書きました。そして、先日書いた「ソフトウェアエンジニアの成長カーブ(2)」でも、そのパターンの場合の成長曲線(実際には、停滞曲線ですが)を描いています。

管理職になったから、あるいは、管理職だから、学習することは不要にはならないと思います。もちろん、技術的な学習をしなくなったとしても、その他の経営や開発組織の運営に関連する学習をされる人もおられると思います。

実際に自分で直接手を動かして開発行為をしなくても、技術的な学習は行うことができます。それについては、「技術はできて当たり前の管理職」は、私は次のように述べています。
たとえば、オブジェクト指向プログラミング言語に関して言えば、1980年代にはC++が登場し、1995年にはJavaが登場しています。そして、もうすぐ2009年は終わろうとしています。テスト駆動開発、継続的インテグレーション、ペア・プログラミング、リファクタリングなどは、ソフトウェア業界では常識化しつつあります。そして、多くの書籍がそれらについて書かれています。会社で使用している技術・手法だけでなく、日常的に学習を継続し、書籍に書かれていることが本当に良いのかとか上手くいくのかということは、実際に部下にやらせてみるのが管理職だと思います。

ところが、現実は逆で、若手の方が色々なことを勉強していて、新たな手法を導入しようとすると、勉強していない管理職に対して「分かりやすく説明する」ことが求められたりします。
自分が知らない事柄が話しに出てきた時に、勉強している部下から説明してもらうことそのものは、問題ではないです。その場では、自分が知らないことを、知っている人から教えてもらうことに過ぎませんから。

しかし、初心者が何も勉強せずに、いつまでも質問して説明してもらうことで物事を理解しようとする場合を考えれば分かると思いますが、問題は、部下から説明を受けたことをきっかけに、その事柄をきちんと理解するために自分自身も勉強を始めるかどうかです。

部下から受けた説明を通して理解したことで、自分は理解していると思うのはおそらく誤りです。たとえば、Java言語の初心者本を読んだだけの人がJavaでプログラミングをして、何か分からないことがあれば都度知っている人に聞いて開発を続けたとしても、狭い範囲しか理解していないのは明らかです。

1つの物事を理解するのに何十時間、何ヶ月、あるいは、何年も要したようなことを、数分で理解できるように説明するのは無理です。ましてや、その説明を聞いて、自分は理解したと思うのは誤りです。たとえば、私自身はJava言語を独学した時に、一ヶ月ぐらい「インタフェース」を理解できませんでした。じゃ、その後は、十分に理解していたかというと、そんなことはないと自覚したのがJava言語を使い始めて4年も経過し、『プログラミング言語Java第3版』の翻訳を終えた頃です。自覚したきっかけは、Joshua Blochの『Effective Java』を読んだことでした。

本を読めば書いてあることをいちいち聞いてくる人に対しては、この本を読んでくださいと言えばいいのですが、残念ながらそれが言えるのは、若い人達に対してか、勉強熱心な人に対してだけです。(時間を無駄にしないように)「どの本を読めば理解できるか本を紹介してくれ」と言ってくる管理職の人は、日本全体のソフトウェアの開発組織の中にどの程度おられるのでしょうか。残念ながら、非常に少ないのではないでしょうか。

カンファレンスとTwitter [プログラマー現役続行]

昨日の「ソフトウェアエンジニアの心得」(受講者20名)で、以下の質問をしたらYesと答えた人がそれぞれ一人しかいませんでした。
  • 入社以来、何らかの技術カンファレンスに参加したことがありますか
  • Twitterやっていますか
Twitterは人それぞれ好みがあるでしょうが、カンファレンスへの参加がほとんど無いというのは、ちょっと残念です。もっと、参加してもらいたいと思います。無料のカンファレンスであれば、有給休暇と交通費だけで、会社の許可をもらうことなく参加できます。有料のカンファレンスでも高額なものは別としても、自分への投資だと思って参加することがあっても良いと思います。
大多数のプログラマーやシステムアナリストは、自分の専門性が時代遅れにならないように維持することを会社に頼ることはできません。ソフトウェア業界で取り残されないためには、自分から進んで自分の時間(休暇さえも)や自分のお金を投資しなければなりません。
Edward Yourdon, Decline & Fall of the American Programmer

ソフトウェアエンジニアの成長カーブ(2) [プログラマー現役続行]

「ソフトウェアエンジニアの心得」の教育を今日から始めます。と言っても、今まで行ってきた教育や講演の内容と同じです。しかし、今回、スライドを追加しています。

成長カーブ.JPG
ソフトウェアエンジニアの成長カーブ(イメージ図)

以前、ブログに書いた「ソフトウェアエンジニアの成長カーブ」をイメージにしたものです。特に、統計調査したものでもありません。あくまでも、私が経験したきたことから想像するイメージです。また、直線で引いていますが、実際の成長は、直線ではありません。

横軸は経験年数、縦軸は「ソフトウェア・スキル・インデックス」です。もちろん、このグラフは正確なカーブを示したものではなく、傾きや高さには個人差もあります。そして、そもそも「ソフトウェア・スキル・インデックス」を正確に測る方法はありません。

So long, old friend... [その他]

James Goslingのブログ「So long, old friend...」には、Sunの墓石の前でたたずむDukeがいます。

So long, old friend...

墓石に刻まれている1982年といえば、私が大学を卒業した年です。Sun Workstationを使用して開発をするようになったのは、1988年からでしたが、SunOSやSolarisでは多くのことを学びました。

自分で作成したXNS(Xerox Network Systems)関連のツールを移植し、Sun RPCを使用したツールを作成したのがSunOSでしたし、本格的にマルチスレッドプログラミングを行い数万行のC++プログラムを書いたはSolaris 2.3でした。マルチスレッドプログラミングの基本は、Solarisで学んだと言っても過言ではありません。ちょうど、1993年から1995年にかけてですから、まだ、私が33歳から35歳の頃でした。

1996年からJava言語を独学で学び、その後、Javaを通して多くの書籍(特にJoshua Blochの『Effective Java』)から、私自身はソフトウェア設計に関する多くの影響を受けました。Joshua BlochとNeal Gafterに初めて会ったのは、彼らがまだSun Microsystemsで働いていた2002年12月でした。Joshua Blochは、James Goslingのブログに対して、次のようにコメントしています。
It was a pleasure and a privilege to be a part of it.
Josh Bloch

ThreeOfUs.jpg
2002年12月 Sun Microsystemsにて(私、Joshua Bloch、Neal Gafter)

週報会 [プログラマー現役続行]

どのようなチームでも、何らかの形式で毎週、週報会を行っているのではないでしょうか。連絡事項を伝えたり、チームメンバーの活動状況を報告してもらったりと。

転職して、自分でチーム管理や部門管理をするような立場ではなくなりましたが、前職では管理する立場として、週報会を部門で行っていました。社員だけでなく、派遣の人も含めて全員参加での週報会です。

社員および派遣の人も含めて、非常に若い人達で構成される部門(約20名程度)でした。全員が会議室に集まり、1時間程度で連絡事項、および、各人の先週の状況および今週の予定を手短に話してもらうということを行っていました。

(派遣の人も含めて)新卒新人などの新しい人が加わった時には、プレゼンテーション形式で自己紹介をしてもらったり、一年経過したところで一年レビューを行ってもらうということも、週報会の中で行っていました。

社員・派遣に関係なく、一緒に働く以上、どちらも同じように成長してもらいたいと思っていました。したがって、部門内の勉強会へも参加してもらったり、新人として配属されてからの現場での学習に関しては、立場に関係なく、OJTトレーナーを付けたりしていました。

自分の部門での教育に関しては、私自身が決めることなので問題ありませんでした。しかし、親会社の教育コースを受けるということに関しては、どうしても、無理な部分があり、社員だけということになってしまっていました。ただし、私自身が講師を勤めている教育コースに関しては、後ろで聞いてもらったり、あるいは、「プログラミング言語Java」コースのような場合には、参加してもらっていました。

全員の活動状況を私自身やグループリーダーが知る上で、週報会は重要な役割を果たしていたのですが、それよりも、メンバー同士の活動を共有する機会としての役割も重要だと思っています。チームや組織のメンバーの活動状況を、仕事上は日々の活動として直接関係なくとも、本人の口を通して共有することは重要だと思います。

週報会といっても、エンジニアの集団ですから、活動内容や課題を共有することで、仕事のやり方の改善案が提案されたりして、実際に改善されるということも多く行われていました。

Project Lambda [Java]

Java 7に入る予定のClosureをあまりフォローしていなかったのですが、Project Lambdaとして活動されているようですね。

第11期「プログラミング言語Java」コース(2) [プログラミング言語Java教育]

プログラミング言語Java (The Java Series)

プログラミング言語Java (The Java Series)

  • 作者: ケン・アーノルド
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/04
  • メディア: 単行本

昨日は、朝9時から始めて夕方5時30分までで、第1章と第2章の質問表の回答、第1章の練習問題の確認で終わりました。基本的には、事前提出の質問表に沿って回答していくのですが、話が脱線して別のことを説明することが多く、あまり進みませんでした。特に、第一章は、言語全体を広く浅く説明されているため、分かりにくい部分も多く、質問も多かったため、時間を要しました。

昨日は、特に「契約」とは何かという議論・説明に時間を費やしました。
個々のクラスは、2 つの契約を提示します。そのクラスのユーザへの契約と、そのクラス を拡張する人への契約です。両方の契約は、慎重に設計されなければなりません。
『プログラミング言語Java第4版』(p.65)
項目16 「継承よりコンポジションを選ぶ」

第11期「プログラミング言語Java」コース [プログラミング言語Java教育]

今日から、私にとっての第11期「プログラミング言語Java」コースが始まります。入社3年未満の若い人達が対象のコースです。

2月からは第12期、3月からは第13期がそれぞれ始まります。

今年から年に一回、「プログラミング言語Java」コース修了者懇親会でもやりたいと思っています。