« 前のエントリー | main | 次のエントリー »

新入社員がそろそろ配属されてくる時期になり、毎年この時期はプロジェクトが和やかな雰囲気になりますよね。
一方で、毎年名物になるのが、作業が始まって考え込んでしまっている新人君。
話を聞くと、大抵「どうやって効率よく作業ができるか考えている」という答えが返ってくるのですが、中には半日近く考え込んでしまう子も・・・。
効率化を考えているのに逆に時間がかかってしまうという本末転倒な結果になってしまいます。

作業を効率よく行うためには?

では効率の良い作業を行うために必要な事はなんでしょうか?様々な定義はあると思いますが、
私は一番大事な事は、その作業の本質を理解できている事だと思っています。
その大前提として、自分自身がまずその作業をきちんとやってみること。
その上で初めて、効率化できるポイントが見つかり作業の効率化が可能になります。
逆に言えば、やったことのない作業を机上で効率化することはほぼ不可能です。
(やったことのない事をどういう手順でやるのか想像すること自体容易でないのに、その上効率化を考えるなんて、不可能を通り越して無謀ともいえるでしょう・・・。)

まずは、考えすぎにやってみること!作業の目的と進め方(手順)をしっかり理解した上で、きちんとその作業をこなせるようにする。
その上で、手順が重複している箇所を見つけ出し、効率化できないかどうか考え実践していく事で始めて作業の効率化ができるのです。

新入社員として配属されると、失敗するのが怖かったり、必要以上に気負いすぎたりしてしまって、どうしても色々考えすぎてしまうと思いますが、
まずはきちんと作業を終わらせることが重要だという意識を持ってください。
(また、ベテラン社員の皆さんも、期待と不安を胸に配属され、実践と失敗を繰り返しながら成長していく新人諸君を、大きな心で見守ってあげてください。)

きちんと作業出来なければ、効率よく作業をすることは出来ませんし、より高度な作業を任されることはありません。
早くスキルアップをしたいのであれば、やる前から近道を考えるのではなく多少遠回りでも着実に作業が出来るようになる事が大事です。
「急がば回れ」ですね。

林田 宏介


iPhone 買いました。 (2008年07月15日)

こんにちわ。アクセンチュア・テクノロジー・ソリューションズの鉾之原です。


先週末に発売されたiPhone。ここ数日ブログなどのネット界隈ではiPhoneの話題だらけで食傷気味かもしれませんが、同僚からは「前回のエントリーでiPhoneについて熱く書いていたんだから当然買ったんだよね?」とつっこまれてしまったので、今回も前回に引き続きiPhoneネタです。

で、もちろん買いました。iPhone 3G。
2、 3日使ってみた感想は「iPhoneは携帯電話」というよりも、「電話機能のついた掌にのるコンピュータだなぁ」の一言。実際は、文字入力がもっさりすることが度々あったり、Safari(iPhoneに内蔵されているWebブラウザ)が頻繁に落ちたり、不満も結構あるのが正直なところです。しかし、こうした(日本の携帯電話ではあり得ない)問題があっても、それが些細な事かのように思えてしまうほどの魅力がこのiPhoneにはあります。
数年前、データカードとZaurusを併用してネットを利用してましたが、WILLCOMのZERO3というスマートフォンの登場(実際に私が使い始めたのはAdvanced[es]からですが)により、一台で電話とインターネットが出来るようになりました。しかし、iPhoneを持ってから、「スマートフォンは電話がメインの機能で、それ以外がおまけの機能だったんだなぁ」と感じるようになりました。というのも、WindowsMobileの場合はネッ トに接続する際にPHSの回線を使うのか、それともWifiで接続するのかを明示的に選択する必要があったのに対し、iPhoneはその環境にあった最適な接続方法を自動的に判別するのです。つまり、Wifi環境があれば自動的にWifi接続になり、そうでなければ3Gの回線を使うようにiPhoneが自ら決めるのです。これは本当に些細な事なのですが、WindowsMobileを使用したことがある者にとっては信じられないくらい快適な環境です。回線を気にしなくなった時点で電話機能自体がおまけになったような感覚はここから来ました。

繰り返しになってしまいますが、文字入力にストレスが溜まることがあったり、アプリケーションがよく落ちたり、メール環境を整えるのに手間がいったりと、普通の人が使うにはまだまだ敷居が高いのも事実です(この面では日本の携帯は良くできてるなぁと思います)。OS1.0の頃にも同じような問題がありました が、バージョンアップによる改善があったので、これらの不満はいずれ解消されることでしょう。
ADSLや光などのブロードバンドによってネットがより身近なものになり、生活が変わった人も少なくないはずです。そしてこのiPhoneによって、それまでパソコンの前にいないと近 寄れなかったネットが、常にそばにあるものになります。これからiPhoneのようなデバイスが益々増えていく事と思います。どれがシェアを取るかなんて分かりませんが、この十数年にあるかないかの技術革新であることは間違いないと確信しています。


さて、話は変わりますが今日から私は数日間、北海道出張に行ってきます。今私が携わっているプロジェクトの実装部分をATSの北海道デリバリーセンターで行うためのKTです。いわゆるニアショア開発というもので、私は今回初めての経験で多少の不安混じりのワクワク感で北海道に行ってきます。次回のエントリー では北海道での模様をお伝えできればと思います。


でわ、鉾之原でした。

突然ですがプログラミングは好きですか?
プログラミングする際、少し難しくても効率の良いAPIを使ったり、オブジェクト指向言語を利用している場合に効率化のためにパターンなどを積極的に取り入れてプログラムを作ったり・・・なんていうことは、ありませんか?私もプログラミングは好きですし、(であるが故に)以前はよく、そういうプログラミングをしていました。
でも、一度自分が作ったプログラムを見直してみてください。

そのプログラム見やすいですか?

例えば、他の人が開発したアプリケーションの拡張や修正をしなければならない場合で、設計書など仕様を把握できるものがほとんど無く、プログラムを解析する以外に仕様が確認できないというような状況を経験したことはありませんか?

私は何度もそういった状況で、必死にプログラムとにらめっこした経験があります。
そういう時、冒頭に書いたようなプログラムだと作った人間以外には難しく感じてしまい、プログラム解析に時間がかかって対応が遅れたり、対応したとしても実は見落としがあって修正した以外の箇所で障害を発生させてしまう・・・といったことが多々あります

対応するのが熟練プログラマーの場合はそれでもなんとかなるかもしれませんが、経験の浅いプログラマーの場合にはどうなるでしょうか?分析に手間取り、いつまでたっても対応が出来ない・・・なんてことも、平気でありえます。

作った本人にとっては見やすく効率の良いプログラムかもしれませんが、他の人にとっては難しいだけの見づらいプログラムになってしまっているかもしれません。

自分はそんなことはしない!と思っている人(こそ)は、下記をチェックしてみてください

IF分岐などの条件文が長すぎる
・プログラム中のコメントがなさ過ぎる、もしくは細かく書きすぎている
・プログラム(クラス)の分割を細かくやりすぎている
Javaなどオブジェクト指向言語の場合に、積極的にインターフェースや継承を使っている
・難しく実装していて、一見すると効率よくみえるが、よく見ると非常に単純かつ簡単に実装ができる

これは私の今までの経験から、見づらいと感じたプログラムに共通したことです。
思い当たるところはありませんか?

プログラマーとして熟練してくると、効率よく簡素に作ろうとして逆に難しく考えすぎてしまうことがよくあります。
プログラムは作ったら終わりではなく、その後何年も使われ続けるものです。難しいプログラムは保守性が下がり、その後何年も苦しむ元凶(?)の元になります。特に、保守担当が新人の場合は、その悲劇たるや想像するだけで悲惨なものあがります。

プログラミングをする時は誰が見てもわかりやすい物を作る!という(当たり前のようで、意外に実践されていない)意識を、プログラマーは持たなければいけないのではないでしょうか。

林田宏介


来ました!iPhone 3G (2008年06月11日)

こんにちわ。アクセンチュア・テクノロジー・ソリューションズの鉾之原です。


いよいよ発表になりましたね、iPhone 3G。サンフランシスコで行われたWWDCのスティーブ・ジョブスの基調講演を日本時間の午前2時から4時までがっつり、ストリーミングによる音声配信で、聞いていました。そこまで英語が得意でないのでスピーチを完全に理解できないのですが、会場に訪れている日本人の方がIRCチャットで会場の雰囲気を伝えてくれたり、海外のWWDCの実況ブログにアップされるステージ上の写真を見ながら十分に楽しめた2時間でした。飛行機で行っても10 時間くらい離れた先で行われていることが、ほぼリアルタイムで聞けるのはすごいことですね。

数日前にSoftBankが先行して日本でiPhoneを販売することを発表し、3GのiPhoneの存在がほぼ確定しましたが、販売開始時期が「今年中」となっていたので7月11日販売開始という発表にはかなり興奮しました。実はWWDCの講演でも、3Gが発表されたのは終盤。会場内でもかなりあきらめムードになっていた最後の最後での発表は、かなり盛り上がりました。しかも、販売国が「イッツ・ア・スモールワールド」のメロディに乗せて、順番に赤く塗られていくという粋な演出で会場を沸かせていたようです。日本は71ヶ国中70ヶ国目と、かなり焦らされようで、IRCチャットや実況掲示板の熱気はすごいものがありました。


さて、肝心のiPhone 3Gですが、個人的な注目ポイントは2点。(もちろん日本での販売も重要なのですが)それは同時に発表された「iPhone 2.0」と「MobileMe」です。

「iPhone 2.0」は、iPhoneにのっているファームウェアのバージョンがこれまでの1.xから、このタイミングで2.0にアップデートされるものです。2.0 の最大のポイントはiPhone SDKによるサードパーティや個人によるアプリケーション開発が可能になることです。これまでのiPhone(もしくはiPod tocuh)ではユーザが独自にアプリケーションを開発することができず、基本的にAppleが提供するアプリケーションしか実行できませんでした。「jailbreak」と呼ばれる非公式な手段で独自にアプリケーションを動かすことは可能でしたが、今回は公式なSDKでの開発が可能になり、しかもiTuneの「App Store」を通して配布もしくは販売することが可能になります。作ったものがヒットするかどうかは別として、個人レベルでワールドワイドな販売チャネルが提供されるのは 開発者として非常に魅力的です。

また、2.0のファームウェアを、これまでのiPhone、iPod touchにも入れられることも重要ではないでしょうか。他のメーカーの携帯は機種そのものを買い換えることでしかバージョンアップはできません。それが、ソフトウェアの更新だけで後継機とほぼ同等の機能を実現できるようになるのです(もちろん今回追加されたGPSなどの物理的な機能は無理として)。


もう一点目は、「MobileMe」です。「MobileMe」は、「.mac」という写真などのデータ保存や共有を提供していたアップルのインターネットサービスに変わるサービスです。「MobileMe」では、「クラウド」とよばれるオンライン上のストレージにメール、カレンダー、アドレス帳を保存して、Mac、PC、iPhoneの同期をとります。ここでの最大のポイントは「プッシュ型」によるデータの同期です。これまでのWindowsMobile機のようなデバイスと、PC(母艦)とのデータ連係は、USBで物理的に接続してActiveSyncによってデータを同期させていました。いわゆる「プル型」によるデータの同期ですね。これが「プッシュ型」になることで各デバイスのデータ更新が自動的に行われるようになります(例えば、PC上で追加したアドレス帳が自動的にiPhoneのアドレスに反映されます。またその逆も然り)。

私はPDAとしてWILLCOMのAdvanced/W-ZERO3 [es]を使ってスケジュールを管理していますが、これに頼り切っているとうっかりデータの同期を忘れ、ミーティングの存在に突然気づいて慌てることもあります(個人的な問題という気もしますが(笑))。この煩わしい手動操作によるデータ更新から解放され、デバイス間のデータ同期がシームレスに行われるようになるのは、かなりのインパクトではないでしょうか。
(先ほどの記述では「MobileMe」サービスに入らないとプッシュ型のデータ同期が取れないような書き方をしていますが、入らなくてもiPhoneが直接Exchangeサーバなどに接続してデータを取得する事も可能です。)

このことをアップルのプレゼンテータが「Push Notification Service」と言い表していましたが、まさにモバイル端末に重要なのはこの概念だと思います。iPodがここまでヒットしたのは、iTunesに曲を入れてから(取り込んだり、iTMS(iTunes Music Store)から曲を購入して)ipodで音楽を聴くまでの過程が、それまでの他のポータブル機器に比べて格別にシンプルだったからだと思います。このiPodに電話、フルブラウザが乗っかった上にスケジュールや、アドレス帳、写真といった身近な情報までもがシンプルに同期してしまう環境がiPhone です。このことを想像しただけでiPhoneを一度持ったら二度と離れられなくなってしまう気がします。


世間的にも大注目なiPhone 3G。日本でどれだけヒットするかは分かりませんが、とりあえず無事発売日に入手できるように頑張りたいと思います。

ブログは林田と交互で掲載する予定でしたが、iPhone発表につい興奮して連続で書いてしまいました。今後もそのようなことがあると思いますが、ご容赦ください・・・。


では、鉾之原でした。

こんにちわ。ATSことアクセンチュア・テクノロジー・ソリューションズの鉾之原です。
このブログでは前回の投稿者である林田と共に、ATSのテクニカル・スペシャリストの私たちがIT業界のことを中心に現場からの声を発信していきたいと思います。

私、鉾之原はパッケージ開発、販売を行うベンチャー企業、Webシステムの開発を中心に行うベンチャー企業を経て、ATSに入社してから3年が経ちます。 C/C++からは離れてしばらく経ちますのですっかり忘れていますが、Javaや、JavaScript、Flashといったここしばらくの支流である Webアプリケーションに関わる技術に興味を持っています。

さて、私の最初のブログになるので、まず自身のことを知ってもらうために、所属するATSと、そこでのユニークなキャリアパスについて紹介します。

ATS (アクセンチュア・テクノロジー・ソリューションズ)は、アクセンチュアの関連会社で、主にシステム開発を行っています。ユニークなキャリアパスと書きましたが、実はATSには二つのキャリアパスがあるのです。一つは、技術を学んだ後に管理者としてのスキルを身につけていく通常(?)のパス。もう一つは、特定技術分野を徹底的にトコトン極めていく技術特化型キャリアパスです(今期新設され、私と林田はこれに属する初期メンバーです)。

なぜ技術特化型キャリアパスが新設されたのか?新しいキャリアパスに異動するにあたって、自分なりの解釈をしてみました。
IT業界におけるエンジニアという職種は、新人としてプログラマから入り、キャリアを積みマネジャーになると管理業務がメインになるのが殆どのケースではないでしょうか。しかし、システムについて高い知識や、高度なプログラミングスキルをもっている人が、必ずしもマネジャーとしてそれと同等かそれ以上のパフォーマンスを発揮できるわけではない。むしろ、管理業務にシフトする中で「だめ」になってしまうことすらあります。
また、エンジニアにも「プログラムが得意だけど、管理業務はイマイチ」、その逆もまた然りで得手不得手があって当然ですし、将来的にマネジャーの道に進むより、開発作業をメインとして活躍し続けていきたい人も多いのではないでしょうか。

技術特化型キャリアパスは、プロジェクトマネジャーが主にスケジュールやコスト管理でプロジェクトを管理するのに対して、メンバーが各自の得意とする技術や、開発方法論を以てプロダクトを管理するプロダクトマネジャーとしてプロジェクトに関わることになります。
昨今のオープンソースソフトウェアの広がりや、SOAなどの疎結合によって生じる利用される技術(プログラミング言語など)の多様化など、一つのプロジェクトでも今まで以上 に広範囲にわたる技術が要求されることが増えていくと、ある技術を極め、そのプロダクト全体を管理する能力を育成する技術特化型キャリアパスのような考え方は、どこでも必要となってくると思っています。

さて、話は変わりますが、いよいよWWDCの開催が近づいてきましたね。いよいよ登場が噂される3G iPhoneに期待せざるを得ません。特に日本の市場への参入は多くの人が注目していることでしょう。私はマニアとまではいきませんが、かなりのガジェッ ト好きなので純粋に今回のWWDCの開催を楽しみたいと思います。