GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Vikas Hazrati , 翻訳者 徳武 聡 投稿日 2009年8月23日
知識の伝達を特徴づけるのは、文脈についての理解を、1つの単位(個人や、チーム、部門、組織)からもう1つの単位へ転送することだ。ほとんどの組織では理解したことを文書化するのに多くの時間を費やしているので、知識の伝達過程は円滑で効率的だ。Agile開発は文書作成を推奨せずに、“包括的な文書よりも動くソフトウエア”を重視する。Steve Bockman氏は一連の興味深い実験を行い、Agileプロジェクトで知識を伝える最適な方法を探り出そうとした。
この実験でSteve氏が試したのは、風変わりな紙飛行機についての知識を3つの方法で伝達することだった。 彼が使ったのは次の3つの戦略だ。
文書化 - 被験者に紙飛行機を作るための説明書(作り方が22ステップで記述されている)を与えました。
リバースエンジニアリング - 被験者に完成した紙飛行機を与えました。飛行機の作り方を生み出すために、被験者はこの紙飛行機を研究しました。
メンター制度 - “チーフデザイナ”が順に紙飛行機を作るのに従って、被験者もいっしょに複製しました。
8人の被験者に対して、上記の各シナリオを5分づつ実施した。結果は驚くべきものだ。
ドキュメントを参照しながら紙飛行機を完成させたのは12.5 %の人だけだった。リバースエンジニアリングで完成させたのは25%で、なんとメンター制度では100%の被験者が完成させたのだ。
この実験結果が示すのは、知識の伝達や共有方法として、健全なコミニュケーションや指導が有効だということだ。Steve氏は、この実験結果は定期的なコミュニケーションとフィードバックに基づくソフトウエア開発にとっても価値を持っている、と言う。氏によれば、
例えば、私は開発者で、あるデータをユーザインターフェイスにバインドする方法を見つけ、実装のためにそのコード書きます。そして、この方法は一緒に働いている他の開発者も身につけたいと考えているパターンを具現化しているとします。もしあなたが私と一緒に働いている開発者だったら、次のうちどれが好ましいでしょう。 (a)そのパターンについて私自身が書いたドキュメントをもらう。(b)そのコードがどこにあるか教えて、あなたが自分の力で見つけられるようにする。(c)新しいデータセットを対象にしてそのパターンをあなたとペアになって実装する。
Young Ye氏とRoyce Fay氏は、非対称なペアプログラミングによる知識の伝達による効率的な知識の伝達を提唱している。この方法の要点は開発者同士のペアプログラミング以外にも、開発者とドメインのユーザでもペアプログラミングを行い得るということだ。しかし、文書よりも強力な人間同士の関係から生まれるストレスが再発してしまう。
ペアプログラミングの効果としてよく知られているのは、素早く知識を共有し伝達できる点だ。この点に賛成して、Alan Skorkin氏は言う。
私の考えでは、ペアで仕事をすることは有機的な知識の伝達にとても役に立つと思います(”ペアで知識のシェア”という言葉を皆さんの詩心に捧げます)。これは重要なことだと思います。大規模なシステム開発ではこれ以外の知識伝達方法は存在しないからです。
このように、知識の共有方法として最適なのはコミニュケーションやメンター制度などで一緒に作業をすることだという考えは、一般的になっている。文書も少しあれば役に立つかもしれないが、文書だけに頼った知識の伝達が生むのは限られた利益だけだ。
【ネクストスケープ】.NET、C#のアプリケーション開発者募集
世界の先進エンジニアが集結 - QCon TOKYO 2012 早期割引実施中!
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信