2011年11月10日木曜日

アドレス帳のクラウド化は難しい

引き続き、整理熱が止まらない、という訳で色々身の回りの棚卸しをしています。
今回はアドレス帳の話。

ここ半年くらいの間に、LinkedInやFacebookアプリ等がiPhone内のアドレス帳が勝手に修正したために、アドレス帳内で名前が重複だらけになってしまい、滅茶苦茶なデータソースとなっていました。

これを修復・整理しよう、と思い立ち、そのついでに!! と取り組みたいと思ったのがアドレス帳のクラウド化です。整理されたアドレス帳をクラウドに置き、デバイスによらないConsistentなアドレス帳を手に入れる、という長年の夢を実現したくなりました。しかしこれ、意外に難易度が高かった。

まずは、自分のMac内のアドレス帳を重複削除、情報の統合などにより、完全にデータを整理し直しました。これを元データとしてクラウド化を試みてみた訳です。
まずは素直に。普段はMac Book Proを利用しているので、話題のiCloudを初めて利用してみました。

しかしiCloudが分かりづらい。
母艦のMacがOSX Lionではない、iCloudに対応していない母艦であるということもあり、ちょっと話がややこしくなっているにしても、もうちょっと何とかなって欲しいところ。

方針としては、「母艦のアドレス帳→iPhone→iCloud」というデータ移行により、iCloudにアドレス帳の元データをインポートし、他デバイスはiCloudのデータを元に同期していく、としました。

ところが、「iPhone→iCloud」のデータ移行でつまずいてしまいました。いまいち「iPhone→iCloud」の同期ルールが良く分からないんですよね。

iCloudのもうひとつの問題は、iCloudへのアクセスがApple製品に制限されていること。
Androidも使ってみたいんだよなぁ。とか思ったりしてもそれはできない。そういう意味で、よりオープンな規格をサポートしていそうなGoogleのサービスを使って、より幅広い端末間でデータを同期できるなら、iCloudよりも理想的と言えます。

そこで、Google Contactを試してみました。ところが、「Macのアドレス帳→Google Contact」というデータ移行の際に、アドレス帳の姓名が逆になって登録される、等のローカライズの特有のバグ問題に直面してしまいました (ちなみに、これは2、3年前から直っていないらしい)。

他にもGoogle Contactはまだ端末との同期関係の機能が整備されていないことも分かりました。という訳でGoogleでもクラウド化はまだ難しそうな印象です。

ここまでやって、一旦アドレス帳のクラウド化の夢は諦めることにしました。
まぁ、一応iPhone内のアドレス帳は整理された訳なので良しとすることにしました。

それにしても、今回くらいのアドレス帳のクラウド化がスムーズにいかないというのは予想外でした。アドレス帳のクラウド化に関しては、まだまだ解決すべき問題が沢山あり、その道半ばかと思っていましたので。

例えばSNSサービスとの連携。
Facebookの友人たち、Facebookで繋ってない人のアドレス帳とが自動で整理・統合され、どのデバイスにおいても、(あえて友人にアドレス変更等の一斉メールなどしなくても) 常に最新の状態に情報が保たれている、とか。

例えば良く行くお店の情報の管理。
スタジオとか、飲食店とか、お気に入りのお店ならばアドレス帳に1つや2つは入っているでしょう。このクラウドの情報を元にアドレス帳に最新のデータを保持する、とか。

こういうところまではいって欲しいとAndroidが発表された頃くらいから思っていました。しかし、今回色々試した感触としては、そういう日が来るのはまだ結構先なんだろうな、という感じがしました。

「アドレス帳についてオープンな規格の策定→各ソフトウェアが導入し規格がデファクトスタンダードに→端末間でのシームレスな同期の実現」、という一連の流れが実現するのを願いましょう。

2011年11月7日月曜日

書評: 佐藤可士和の超整理術

2週間くらい、ちょこちょこ読んで読了。
2007年に売れた本で、当時読んだときは全然ピンとこなかったけど今読んだら腑に落ちた。

有名デザイナが開かす整理術。
整理という作業を「空間の整理」「情報の整理」「思考の整理」という3つの角度から述べる。 (難易度もこの順で上がってくる。)

「現代において物事の本質を捉え、アウトプットすることは、そもそも過度に複雑な作業になっていることを認識すべし。まずは作業環境を整理し、情報を整理することに集中する。そして集めた情報を元に適切に思考したときに初めて人に説得力のある考えが導かれる。」と著者が整理する目的について独自の考えを説く部分がハイライト。

「情報の整理」「思考の整理」といった各実践のノウハウは、著者の例を参考に読者それぞれの主戦場で編み出すしかないので、実践的な本とまでは言えないものの、「空間の整理」の章はまぁ参考になるし、整理する気が湧いてきます。(実際、読了後に部屋を片付ける習慣がついてきました。)


この本を読んだあと、そういえば思考の整理法と言えば、、、ふとマインドマップのことを思い出しました。

マインドマップとは、自分が思考したいことを紙の中心に書き、そこから放射状にキーワードを繋げていくことで発想を延ばしていく発想法です。
大学卒業して初めて会社入ったときに、諸先輩方から発想法を色々教わったり勉強したりしたように記憶していますが、中でもマインドマップマニアの人から教わったマインドマップが一番しっくりきていたように思います (その人は何と自分でマインドマップのソフトウェアも作っていた)。

MindManager というソフトウェアがあって、こいつはかなり使い安いのですが、ノートPCを交換してからインストールしてなかったこともあり久しく使っておらず、今日久々にダウンロードしてみました。昔と比べると、クラウドを利用してドロップボックス経由でiPhoneと同期、とか、最近ならではの機能が追加されていました。

思い返すと、僕にマインドマップを教えてくれた先輩は、あらゆることをマインドマップで整理していたなぁ。
読書の記録、プロジェクトの進捗、家庭のこと、人生のこと、、
中でも印象深いのは、週の最初の月曜日の午前中には、毎週新しくマインドマップを1枚作って、今週やることを徹底的に整理していたことです。そうして作ったマインドマップを、1週間、毎日見て、状況の変化に応じて整理しながら、バリバリ仕事をこなしていました。

今日ちょうど月曜日だったので、僕も今週やりたいことを中心としてマインドマップを一枚作ってみました。
今週はこれで色んなことをやってやろうと思っています。

2011年11月2日水曜日

エンジニアとして仕事をするにはどうすれば良いか

なんか、すっげー若い子にチャットで「エンジニアとして仕事を任せてもらうにはどうすれば良いんでしょうか」と聞かれました。
そういや、そんなことちゃんと考えたことなかったなぁ、と思って色々考えてこんな回答をしてみました。

仕事を任せられるには実績を作るしかないです。

この場合、実績というのは、「ある期間以上、人に利用されたことのあるソフトウェアを書いたことがある」ということです。

「何を知ってるか」とか「どんな資格を持っているか」とかいうことは大事ではありません。
また、「新しい技術を使ってちょっとしたソフトウェアを書いたことがある」ということが大事な訳でもないです。

実績として評価されるのは「人にある期間以上利用されたソフトウェア」を書いた経験です。

ソフトウェアはある程度以上の期間、人に利用されていく中で、バグがなくなり、使い安くなり、、、と強度を増していくものです。こうしたソフトウェアを作る過程では、エンジニアは様々な技術を動員し問題を解決する力が求められます。

だからこそエンジニアとしてのスキルは「沢山のアプリを作りまくる」、「本を読みまくる」人よりも「ひとつのアプリを根気強くメンテナンスした」という経験が評価され、仕事も入ってきやすくなります。

まずは「人に使ってもらえそうなものを企画する→開発する→作る→改善する」のサイクルを回せるようになることを目標にしてください。始めは「会社のためになる」とか、「世の中にないものを作ろう」、とか大層なことは一切考えなくて大丈夫です。

それより何かちょこっと人の役に立つようなものを作って使ってもらう、っていう気持ちが大事です。
例えば「仲間内で使う掲示板を作って運用を開始しました」とか「近くの美味いもの店リストを食べログから定期的に取得してランキングを作成するサービスを作ってみました」とか。

企画を考えるときに注意するべきは、
- 使ってもらえる人は限定して。(自分が具体的にイメージできる何人かでOK)
- 使う技術要素は限定して。
考えることです。

自分が作れそうなものを企画すること。
企画は、作れもしない大層なものにしないことが大事です。

エンジニアとして必要な技術の学び方ですが、始めのうちは本を読んで学ぶのではなく、何かを作りながら覚えてください。
「○○という技術を知りたくて技術を学ぶ」のではなく、「これを作りたいんだけど、作るにはどうやるんだろう」っていう感じで学習していくこと。

以上のことを踏まえ、人に使ってもらえるものを何かひとつでも作れれば、エンジニアとして食っていけるようになると思いますよ。