開発
2012.04.11 (Wed)

僕らの世界はもはやオープンソース無くして語れません。

「インターネット」とか「ネット」とかでマルっと表現される全てのものにどこかしらオープンソースの恩恵を受けている所は必ずあって、多くのベンチャーよろしく弊社も何かしら貢献したいと考えてきました。そもそも情報共有には敏感な社内文化がありますので、それはソースでも一緒ですね。

って訳で、弊社の社内資産であるソースを順次公開していく為に github に feedtailor というグループを作成しました。上がそのグループ画面。手始めに Objective-C ネタを2つ程公開しています。

いわゆる便利ツール集ですね(iOS5前提)。各クラスやカテゴリのBase64, CRC, HMAC, SHA1, MD5, Calendar, Cell といったキーワードからだいたいどんなものかは想像して頂けるかと思います。

社内でのコメントを借りれば「Google の Toolbox を使うには大きすぎる。もう少し小さめな便利ツール郡があればイイなぁ…みたいな人向け」という事なのですが、まぁ詳しく書くよりソース見て下さいの方が早いと思いますので、開発者の皆様は宜しければ御覧下さいませ。ちなみにライセンスは修正BSDです。

参考までに(?) feedtailor の github group のメンバーはこんな感じ。

(僕を除いて)今でも凄い面々ですが将来もっと凄くなれたらイイなぁ(ボソ

で。

今後、Objective-Cなソースに限らず色んなものを公開していきたいと思っています。もちろん弊社のビジネスベースとなるものを公開ってな事にはならない訳ですが、基本的には便利なものは共有しようというスタンスですので、宜しければwatchしてやって下さい。

という訳で、弊社のソース公開の取り組み始めました!的なご報告でした。gitいいよ、git :-)


2011.10.24 (Mon)

弊社の取り組みをご紹介するシリーズ…第5回目ぐらいでしょうか。何かこのまま行くと第20回ぐらいまで続きそうなのですが、地道に書いていきたいと思います。最終話は来春ぐらいですかねぇ(苦笑)

以前のエントリで弊社ではTwitterを推奨している事を書かせて頂きました。…が、もう一歩進んだ取り組みを今回は御紹介します。

仕組みの名前は「MyURL」と言います。

弊社独自の社内システムなんですが、原形を僕が作って、更に @kumatch に改造して貰って今でも社内で元気に稼動しているモノです。敢えて言うなら「Twitterを併用した社内ソーシャルブックマークシステム」になるでしょうか。

どんな会社もそうですが、常日頃ウェブから情報を収集しますよね。業界ニュース、開発のTips、自社商品のレビュー記事など、各種のシェアすべき(した方が良い)URLが結構あるものですが、自分が勤めてきた会社も含めて組織内では余り巧く共有出来ていないよなぁとずっと感じていました。

例を挙げると以前務めていたS社では、グループ単位で担当の人間がいて、共有すべき情報を集めて週に1回社内メーリングリストに配信をしていました。…でも、これって凄く効率が悪いんですよね。即時性もないし、担当が忙しかったら継続しません。

もっと効率良く、共有すべき情報の集約伝搬が実現出来ないか?

弊社の「MyURL」システムはそんな発想で作ったものです。図やキャプチャ画像を使って以下解説。

まずエンジニア全員が自分の使うブラウザに専用のブックマークレットを登録しておきます(MyURLシステムで用意)。ショートカットみたいなものですね。「共有ボタン」として機能すると思って下さい。

で、ネットを調査中に「皆で共有した方が良い」と思ったページにぶちあたったらブックマークレットをクリックします(上図の①に相当)。これで社内のMyURLシステムに当該URLが登録されます。超お手軽ですね。登録完了して以下のような表示となり、

更にここで「このURLをツイートする」をクリックすると、MyURLシステムが @myurl というユーザとしてTwitterに呟きます(上図の②に相当。@myurlというのは説明用のダミーです)。

@myurlのタイムラインには、弊社の誰かによって「社内で共有すべき」と判断された情報が「呟き」としてURL付き(URLは自前で短縮化)で蓄積されていく事になります。

この @myurl というユーザを弊社の全員がフォローしていますので、誰かが共有しようとしたURLが勝手に各自のタイムラインに表示されてくるようになります。

こんな感じですね。

恐らく、これ以上に社内情報共有における「集約」と「伝搬」を早くする術は無いんじゃないかな…と思います。情報共有の徹底的な合理化を追求した結果こうなりまして、今は普通に社内インフラとして機能しています。

ちなみに、Twitterのタイムラインに流すだけでは見落とす可能性もありますので、ストックしたデータを後から閲覧できるようにもしています。

他に、検索も出来たり並び替えも出来たりします。

これまでの合計ブックマーク数は今日時点で880個。

結構な数になりますよね。この社内共有されたブックマークの中には、読んでおくべき業界ニュースや、開発におけるTipsなど、色んな情報が詰まっています。ある意味、弊社エンジニア全員の気付き(知見)の倉庫であり、無くてはならないモノになっています。

 

これはTwitterを社内で推奨していく中で出てきたアイディアで、MyURLシステムのお陰で社内の情報共有は加速したと言えます。以前に御紹介した夕方mtgの時に「MyURLにも登録しているので後で見て欲しいんですが今日の新発見は…」「あ、ちょっと見ましたよ」といった会話も出来るようにもなってます。

僕がTwitterのような新しいツールを無闇に禁止する事を否定するのも、こういう所に理由がある訳で。つまり、新しいツールは当該ツールからの恩恵だけではなく、応用する事で更なる便益を享受する事も出来る可能性があるという事です。試行もせずにその芽を摘むのは勿体無いですよね。

…という訳で、Twitter社内活用ネタの第二弾でした。次回は弊社の根幹とも言えるタスク管理システムRedmineについて御紹介したいと思います。

 

■ 過去に紹介した弊社の取組み


2011.09.26 (Mon)

つい1週間程前。

Windows 8のタッチUI用IE10はプラグインに非対応。FlashもSilverlightも使えず

つまりWindows 8上のInternet Explorer 10をタッチUIで操作する場合、プラグインとして提供されているFlashにもSilverlightにも対応しない、と見られます。

こんなニュースがネットを賑わしました。タッチパネルを使ったUIでWindows8を動作させる場合はプラグインがダメ=Flash使えない、つまり将来Flashサヨナラか?と。

原文のエントリに対するコメント欄ではホントにそうか?的な議論がなされていたり、実際じゃぁPDF閲覧もプラグインだけどそれもダメなの?どうなるの?とか、ActiveXは限定的に使えたっぽいよという情報もあって、実はまだまだ断定できる状態ではないかもと改めて感じましたが、MicrosoftがOSレベルでHTML5+CSS3+JSでのアプリ開発にコミットしようとしている事は今後のFlashにとって大きな暗雲であるのは間違いありません。

Extreme weather © 2010 Kevin Dooley, Flickr

iOSでは既にダメだし、Windows8のタッチUIでもダメ。Adobeの Open Screen Project(FlashやAIRをベースに全てのデバイスでリッチなコンテンツを提供しよう的な取り組み)は頓挫する事やむなしかも知れませんね。Adobeも分かってるんじゃないでしょうか、やっぱりダメかって。やっぱりHTML5かって。ここ最近の動きはそれを象徴しているかのようです。

などなど。HTML5やその周囲のテクノロジに歩み寄ってる(歩み寄らざるを得なくなってる)のが良く分かります。加えて、まだまだFlashが優勢だと言われている分野も幸先が良い訳ではありません。フルスクリーン表示は既に実現されているし、お得意のカメラ/マイクへのアクセスは html5 device ってのがありますし、3DについてはWebGLが待ち受けます。

これだけ並べると、さすがにFlashに光が刺している気がしません。ホント、時代と共にFlashである必然性は益々薄くなっていく他ないんじゃないでしょうか。企業向けのデスクトップベースなソリューションに限ればありかも知れませんね。環境の統一が保証出来ますから。でもそれ以外、つまりコンシューマ向けとデスクトップではない企業向けソリューションにおいては、今後リッチなユーザ体験を提供したいなら、HTML5によるWebアプリかネイティブアプリ。これは間違いなさそうです。HTML5の表現力を見るには以下のサイト等が参考になりますが、

Flashいらないよねとしか言葉が出てきません。圧倒的シェアを持つWinが一部対応しなくなるかも…と言ってる訳で、そのリスクを背負ってまでFlashを使い続けるエンジニアやFlashを提案するSIerやFlash採用を決定するクライアント企業がどれだけいるのかと思うと、残念ながら…の結末しか無いように思います。

HTML5で良いじゃん議論はスマートフォンやタブレット端末のアプリ開発でも言える事で、そんな気運も高まりつつある事を感じる今日この頃なんですが、そこは色々と思う所があるのでまたの機会に書いてみます。


2011.09.21 (Wed)

弊社の就業時間は 9:00〜18:00。間に休憩1時間が入った8時間勤務です。まぁ普通なんですが、18:00までガーっと仕事してハイ終了というのではなく、必ず17:30〜18:00の30分をミーティングの時間にあてています。夕方mtgですね。僕が出張中でない限りは絶対に毎日やります。

内容は

  1. 今日やったことの発表&披露
  2. 今日の就業中に新発見した情報やTipsの共有

の二点。一人◯分って時間を決めてストップウォッチで時間計測しながら一日のOUTPUTをします。実装内容についての説明と、そして何かしら動きが見れるモノが新たに実装出来た場合はその披露。おぉ、ここまで進みましたか的な事が毎日全員で共有出来るようになってます。

僕が現場エンジニアだった時代に、

  • チーム内で誰が何をしているか分からない不安
  • 自分が何をやっているか知って貰えない寂しさや虚しさ
  • 知見を共有できていればより先に前進できたかも知れない機会損失

等々がもどかしかったので自分の会社では2人以上になってから毎日欠かさず続けています。

定例ミーティングは普通に有りそうですが、弊社がちょっと変わってるのは「2. 今日の就業中に新発見した情報やTipsの共有」のほうですね。ちょっと珍しいかも(…と勝手に思ってます)。

人間、1日8時間ぶっ通しで仕事してると何かしら成長してる筈なんですよね、絶対。新しい知見を得たり、新しい情報をGETして気づきを得たり、出来ないと思っていた事が出来てしまったり…とかとか。そういう小さな積み重ねが「経験」や「ノウハウ」となりゆくゆくは「キャリア」を成す訳ですが、その小さな小さな成長を皆で共有しましょうという取り組みです。

僕らはこれを「今日の新発見」と呼んでいます。

「じゃ、今日は何か新発見ありましたか?」

「えーっと、今日の新発見は…」

という感じで進みます。内容は新しい知見であれば何でも良くて、実装よりの話でも業界ニュースよりの話でも、たまたま見つけたHack的なものでも何でもok。

My workstation © 2009 aaditya sood, Flickr

例えば、Objective-CのBlocksの話も出てくるし、Keychainの仕様についての話とか、はたまたnode.jsの話も出てきます。実践しているドメイン駆動設計(DDD : Domain Driven Design)の話もあれば、gitクライアントのTowerで発見した便利な機能とか、OSXのショートカットを新たに見つけたらそれでも良いし、MySQLのpartisiont使ってみましたとか、ports からinstall 出来る便利なコマンドでも、それこそ grep の –color オプションで色付け出来るですよとか、ImageMagick の convert コマンドで transparent オプション使うと透明色指定が出来るんですとか、Twitter社が公開してるbootstrapで実験して見ましたとか、さくらのクラウドが始まりそうだとか、Yahoo!ボックスが10月からスタートですとか….

もう何でも有り。

確実に言えるのは、8時間もあれば何かしら小さいけども新しい知見を獲得している筈って事なんですよね。それを毎日共有すると中長期的に見ればチーム全体の開発力強化や生産性向上、効率改善に役立つはず。

コマンド一つやショートカット一つが生産性を上げたり、他の人が獲得した知見が将来の自分の問題解決に役立ったりもする訳です。知見の共有を大事にしたいなと。それが僕のマネジメントの根底。皆が咀嚼した上で共有しているので敢えて言うなら知恵の共有かもですが。

My desk © 2011 Simon Collison, Flickr

これがですね、結構面白いんですよ。

「えー!?仕様上、無名関数使えないのに無理やり書けちゃうの?」とか「divのclass名をjsが解釈して幅を動的に切り替えるようなcss+js連携なんですか?」「ちゃいますちゃいます」とか「IBActionで紐付けした箇所がそんな所から便利に飛べるんですか!知らんかったー」とか、盛り上がる時は結構盛り上がります。みんなで「へー」とか「すげー」とか言う事も多くて普通に楽しい。

 

という訳で弊社の夕方mtgを御紹介しましたが、数人単位の開発チームをマネージされてる方は是非やってみて下さい。エンジニアの話にある程度はついていける必要はありますけども、結構楽しい上に効果は絶対あります。超お勧め。


2011.09.06 (Tue)

昨日のエントリで、ネット徘徊中に「このアプリ入れたい!」と思った時に、ブックマークレットをクリックするだけで、当該アプリのAppStoreページにJUMPするURLをQRコードで生成するプログラムを御紹介しました。

その話題が今日の社内ミーティングで出ましてですね、

ソース公開したら面白かったと思いますよ

あの手のエントリでいまどき珍しいソース公開無しですか

的なコメントがありまして。

確かに言われてみたらその通り。今振り返って昨日のエントリ読んでみてもソース公開されてるもんと思うやん!みたいな。何で公開という発想にならなかったのか不思議ですね。そう言えば更に前の flickr API で遊んだ時もそうでした。

…なので、単なる報告ブログやん!みたいな自分ツッコミをする勢いでひとまずQRコードネタをgithubにソース公開してみました。

アカウントは随分前に取っていて放置気味だったので、READMEを作って気になるところを修正してサクっとpush。

oishi/AppQR

ソースはやっつけですのであしからず。完全に自分用だったので綺麗じゃないです。レンタルサーバを借りてる方は、index.phpを設置して頂くと当該URLにあるブックマークレットを登録するとすぐ使える筈なので宜しければどうぞ〜 :)

ご希望御座いましたらご遠慮なくコメント下さいませ。気が向いたらまた気分転換します。