[特別企画]
2008年度もスタートし、1ヶ月が過ぎました。 この季節は春のあたたかな気候のためか、それとも、新年度という新たな区切りを迎えるせいか、 春になると『新しいこと』を始めたくなりますよね。
ということで、今回はオブジェクトの広場編集部のメンバーに、「2008年度 新たに学ぶ技術・スキル」について聞いてみました。
言語・設計技術系 | 基盤技術系 | プロジェクト系・人間系 | 思考法 | 一般・番外系 |
Generic Programming、Generative Programming、などと、いわゆるオブジェクト指向プログラミングをうまく組み合わせると いろいろな問題がうまく解決できるのではないかと考えている。これらが、現代のC++ではサポート(発見?)されている。
性能に取り憑かれているから。というのは冗談で、組み込みの世界では、まだまだC言語が中心、たまにC++をやっているケースがあるといった感じ。速度やサイズの厳しい要件、制約を満たしながらも、抽象度が高く、それでいて現実的なプログラミングができる言語は、いまのところC++しかないと思う。これを、うまく使える方法(引き継ぎや教育も含めて)をなんとか見つけてみたい。
組み込みソフトウェアのコンサル屋さん(13年目)
C++とJavaの両方の特徴を折衷して作られた、.NETの代表的プログラミング言語。 Javaに比べて、属性、デリゲート、プロパティなど先進的な言語機構を初めから 持っているのが特徴。
最近はずっとJavaだけでキャリアを積んできているので、そろそろ別の言語も修得しておかないと、エンジニアとしてのバランス感覚が失われるかなという焦燥感から。エンタープライズな仕事ではJavaとC#が二大言語になるため、両方を押さえておくことでスキを埋められる。Javaエンジニアにとっては、普遍的なプログラミングノウハウだと思っていたら、Javaでしか通用しないものだった、というような落とし穴を回避できる。さらに、C#はMicrosoftの言語なのでWindowsとの親和性が高い。修得すれば、ちょっとしたツールを作るにはJavaより適しているかも。
Javaがメインだったソフトウェアアーキテクト屋さん、テクニカルコンサル屋さん(4年目)
オブジェクト指向、関数型、アクターモデル、型推論、構造による型付け(Structural Typing)、族多相性(Family Polymorphism)など、これまでのプログラミング言語理論研究の成果を集大成したとも言える、次世代プログラミング言語。22世紀のCOBOLとの呼び声も高い(私の中で)。
1. ここ10年くらいのエンジニアとしてのキャリアを考えるだけなら、JavaとC#を押さえておけば十分。しかし、さらにその先(生涯現役)を考えた時に、それでは不十分だと気付く。そろそろ重い腰を上げて、次の手を打たなければ、という思いから。次の50年で投資に値するエンタープライズな言語と考えたら、たぶんScalaくらいしかない。今から20〜30年先くらいには、Java ⇒ Scalaのレガシーマイグレーション案件で食い扶持には困らなくなると予想される。
2. 手続型言語、OO 言語、以外の考え方に触れておくことで、頭の硬直を防げるし、柔軟に考えられるようになるかな?問題の種類に合わせて、得意なことは得意な言語で。楽チン。
3. 近い将来、分散システムの台頭が顕著になると思う。そこで必要なのはスケーラビリティと耐故障性である。分散システム分野の研究で行われているようなアルゴリズムを実装する上でアクターモデルはとてもフィットしていると感じるため。
1. Javaがメインだったソフトウェアアーキテクト屋さん、テクニカルコンサル屋さん(4年目)
2. 9 年目のモデリング大好き製品企画、研究開発屋さん
3. 2年目の業務モデリングコンサル屋見習いさん
いわずと知れた、オブジェクト指向スクリプト言語。動的型付け。作者はまつもとゆきひろ氏(Matz)。
性能に取り憑かれていると思われたくないから。というのは冗談で、Matzの魔法(という名の洗脳)にハマったから。プログラムを作ると言うより、自分の思考を助けるツールとして使えると考えている。ログの加工やら、なんやらで、スクリプト言語がさくっと使えないとプログラマはつとまらないと考えており、Rubyがこの目的に、いいかんじにFitしそうだから。
組み込みソフトウェアのコンサル屋さん(13年目)
Erlang は 1987 年頃、スウェーデンの電話会社である Ericsson で開発された関数型言語です。 Erlang の名前は、デンマーク出身の数学者・統計学者・技術者である Agner Krarup Erlang にちなんで名付けられています。
毎秒4000ものメッセージを裁くtwitterで、採用されているメッセージングサーバ"ejabberd"がErlangで書かれている事で注目を集めている。私はこれからのシステムは"分散"がキーワードになると考えています。そして分散システムで重要なのが、スケーラビリティーです。すなわち、コンピュータの台数(あるいはコア数)を倍にすれば、倍とはいわないまでも倍近く早くなるシステム構成が重要となります。その為には現在のマルチスレッドのパラダイムでは非常に不向きであるというのが印象です。その代替としてアクターモデルやΠ計算に注目しています。アクターモデルに基づくプログラミングが可能な言語がScalaなら、Π計算的な記述ができるように作られたのがErlangです。この先分散システムを構築する際に非常に役に立つと考えています。
2年目の業務モデリングコンサル屋見習いさん
C言語単独ではなく、コンパイラの字句解析の知識でもありません。今自分が書いたCのコードをコンパイラがどのようなオブジェクトコードに変換するかに関する知識。
リソース制約の厳しい組み込み分野においてC言語で開発している場合、オブジェクトコードを意識しながら開発する機会がたびたびあります。今自分が書いたソースコードがどのようなオブジェクトコードになるのか?を明確に理解できれば、制約が厳しい中でも、処理効率やメモリ間効率の高いソフトウェアを開発することができます。
カーオーディオの制御ソフトの開発屋さん(2年目)
組み込み分野におけるマルチタスクシステムでは、システムを「タスク」という並行性の単位に分割し、タスクの並行処理でシステムを動作させます。マルチタスクなシステムでは、この「タスク」を常に意識して開発を行います。
組み込みシステムの開発においては、1つのタスクに着目すると論理的に正しくても、複数のタスクが連携する際に正しい処理が行われないことがあります。通常、平行性設計を行うのは、アーキテクトなど全体設計を行う立場の人ですが、開発者も並行性設計を理解することで、設計者の意図を早く理解することができます。また、バグの埋め込みを低減できます。
カーオーディオの制御ソフトの開発屋さん(2年目)
サービス指向アーキテクチャの考え方・導入方法、SOAに基づくシステムバス(具体的にはMule?)。
今後、案件として増えそうな気がするので、今のうちに身につけたい知識・技術です。
15年目の自社フレームワーク開発屋さん
Adobeのリッチクライアント開発一式
エンドユーザにとってユーザーインターフェースは重要なのはエンジニアも承知しているけど“時代はWebだから”といういいわけで、ごまかしごまかし開発してきたと思います。でもそろそろ通用しないかなと思います。
振り返ると20年越えのプロセス標準化・システム企画のコンサル屋さん
Google社が提供する携帯電話向けのプラットフォーム。
ちょっとした個人的な好奇心^^;。今まで培ってきた技術がAndroid上でどれだけ活かせるか、また逆もあるか、どういう制約あるのか、そういうところが知りたい。
15年目の自社フレームワーク開発屋さん
ハード/ソフトの仮想的な統合・分散技術。
・今後、システム構築を行う上で必要になる技術だと感じています。
15年目の自社フレームワーク開発屋さん
言語環境、ドキュメント管理環境(モデル、日本語、ソースコード)、BTS、デプロイなど、開発全般の環境を整備、構築。各ツールの連携、同期、ワンクリックデプロイとか。なるたけ楽チンにしたい。
何か作りたい、という思いが出たときに、意外と面倒になる。さくっと、やりたいことに集中できるようになっておきたい。実案件という点からも、本質的な業務に集中できて○。提案、構築するとお客様にも喜ばれる。また、ロケーション、時間が分散するプロジェクトもままある。そんなときに、Web ベースで統合された開発環境があると大活躍。
9 年目のモデリング大好き製品企画、研究開発屋さん
広いので何でも入ってしまいますが、特にやりたいことを実現するための力。具体的には調達だったり、折衝だったりです。
やりたいことをやるための環境作りができるようになるから。お金だったり、人だったり、時間だったり、そういうものもいろいろ含めて環境と考えています。
9 年目のモデリング大好き製品企画、研究開発屋さん
ファシリテーションの一種で、会議での議論をホワイトボードなどに文字や図形を使って表現しながら会議を進めていくスキル。
一般的に、グラフィカル・ファシリテーションは、以下のメリットがあると言われますが・・・
私が学ぶ最大の理由は、とにかくこれが出来るとカッコイイということ。 会社の先輩に会議の発言内容をホワイトボードに描きながら会議を進行される方がいるのですが、 迷うことなく発言内容を文字と図形を使って整理するその先輩の姿をみてから、自分もそのように 成りたいと思うようになりました。 また、グラフィカル・ファシリテーションを実践するには、自分の苦手な要約スキルと図解スキルを 会議の限られた時間内で駆使する必要があり、それら2つのスキルに対する到達目標としても、 グラフィカル・ファシリテーションを実践できるレベルが一つの目安になると思っているので、 習得を目指しています。
中学では美術部だったけど、図解と美術はまったく無関係と感じる、オブジェクト指向関連技術の教育屋さん(8年目)
ソフトウェアメトリクスとは、ソフトウェアの品質の指標です。内容としては、コード行数やメソッドの複雑度などがあります。これら個々のメトリクスを組み合わせて、ソフトウェア全体の品質を定量的に評価します。
UMLやオブジェクト指向などを効果的に使うことで、設計の品質を向上させることは可能ですが、実装を進めていく中で、ソースコードの品質が低下していくことがあります。コーディング標準などを定めて、品質低下を防ぐ方法もありますが、メトリクスを用いてソースコードを定量的に評価することで、効率的に品質低下の原因を探ることができます。
カーオーディオの制御ソフトの開発屋さん(2年目)
プロジェクトのコストやスケジュールをどうやって見積もるのか。いろいろな手法を知りたい。
いまだによく知らないので、見積もり上手な人を見ると憧れちゃいます。
14年目を迎えるシステム調達支援屋さん
製造業では成功を誰もが認めるトヨタ。そのトヨタ生産方式の哲学である「ムラ」「ムダ」を排除するという精神をソフトウェア生産にとりいれた開発手法。
この開発手法、というかソフトウェア開発にたいする考え方はAgileコミュニティで非常にポピュラーだが、Agileというとまだまだ小規模な開発向けと捉えられることも少なくない。しかし、このリーンソフトウェア開発はEnterprise Agileという言葉の台頭とともにソフトウェア生産の構造に変革を持たらすものだと思うから。
2年目の業務モデリングコンサル屋見習いさん
そのまま。特に、人を動かす力について。
やりたいことに人を巻き込み、協力者や仲間を得ることができる。
9 年目のモデリング大好き製品企画、研究開発屋さん
問題解決に必要な、論理的かつ体系的に思考する能力や方法のこと。
このところ技術的なことはある程度やった気持ちになっているのと、経営コンサルタントをやっている友人の影響から。システム開発の技術を追究するだけでは、結局は作ることが決まったシステムをいかに良い設計で効率よく作るか、というところでしか勝負できない。そもそもどんなシステムを作るべきなのか、どうシステムを使うべきなのか、というところから考え、提案できるようになっていかないと、IT業界とそれに支えられた他の業界や日本経済は良くなっていかない。
Javaがメインだったソフトウェアアーキテクト、テクニカルコンサルタント(4年目)
「地頭力を鍛える 問題解決に活かす「フェルミ推定」」という書籍で最近注目が集まっているコンサルタントが良く使うスキルです。書籍によると、地頭力は仮説思考力、フレームワーク思考力、抽象化思考力の3つからなるとされます。期限が決まっている中で質の高い仕事をするためには重要な能力です。
仕事をしているときに、重要度の低いタスクにはまってしまい、結果として良いアウトプットを出せないという状態に陥る事が稀にあります。そのような時に、地頭力の3つの考え方である「結論から (仮説思考)」、「全体から (フレームワーク思考)」、「単純に (抽象化思考)」を意識することで、効率的な仕事の進め方を考えることができます。
カーオーディオの制御ソフトの開発技術者(2年目)
1. 海外発信の、新しいこと、わくわくできることに出会える。
2. ネットで情報収集していてリンク先が英語な時にやるせない気持ちにならなくて済む。
3. 技術の情報をいち早く手に入れるには英語は必須だと思います。また回りのエンジニアのレベルが高くなると海外のネタがメインになりエンジニアの輪の中に入っていけない(^^;
1. 9 年目のモデリング大好き製品企画、研究開発屋さん
2. 14年目を迎えるシステム調達支援屋さん
3. 15年目の自社フレームワーク開発屋さん
植物の成分であるエッセンシャルオイルが体に与える効能などを学びます。
30代も後半になると体力も落ちてきますので、元気に働き続けるためには自分をい たわることも大事ですね。
14年目を迎えるシステム調達支援屋さん
呼吸法、心と体を健康にします。30代も後半になると体力も落ちてきますので、元気に働き続けるためには自分をい たわることも大事ですね。
14年目を迎えるシステム調達支援屋さん
© 2008 OGIS-RI Co., Ltd. |
|