岡島です。こんにちは
KAIZENクラウドのランディングページから「事例新聞」のダウンロードができるようになりました。
事例新聞とはKAIZENクラウドのお客様向けのミニ情報誌で、主に福井県内のお客様に配布したり、イベントで配布しています。今回、良い感じに仕上がったので一般公開することにしました。サイズ大きめのPDFなのですが、「KAIZENクラウドって何?」という方は、一度読んでいただけると嬉しいです。
とはいえ、限られた紙面ではすべて説明するのは難しいので、この場を借りてKAIZENクラウドの開発の進め方を補足説明させていただくことにしました。
開発者が全て担当する
原則、開発者が、仕様の取りまとめから設計・プログラミング・テスト・運用サポートまですべて担当します。ただし、開発者とは別に「KAIZENエージェント」と呼ばれるお客様対応メンバーがつくこともあります。KAIZENエージェントは、お客様と一緒にどのような改善策が効果的かを考え、整理する責務を負います。今回の事例では、私がKAIZENエージェント兼開発者でしたが、遠隔地のお客様の場合は、例えば東京のKAIZENエージェントと福井の開発者など、別の人間が担当します。
お客様とは毎週会う
というのも、KAIZENクラウドでは、「お客様となるべく顔を合わせる」ことを重視しているからです。もちろんGoogleハングアウトも活用しますが、よほど遠くない限りはできるだけ会いに行きます。
村中建設様の場合、打ち合わせは概ね以下の内容でした。
- デモ(先週進捗した内容をお見せして、フィードバックをいただく)
- 質疑応答(決めていただきたい仕様の確認など)
- 作戦会議(システムをスムースに導入するにあたっての相談)
効果的だったのは作戦会議だと感じます。現場の方に気持よく使っていただくためには、システムの機能だけでなく、「どのような順番で導入するか」「誰を巻き込んでいくか」など、いわゆる発注者側の立場を理解する必要がありますが、そのような話は、顔を合わせてでないと突っ込めないものであり、そのために毎週顔を出すのです。
GoogleAppsScriptでプログラムを書く
このようにお客様との濃密な時間を過ごしながらも、一番時間をかけるのは、やはりプログラミングです。
開発者は打ち合わせで得られたフィードバックを元に、GoogleAppsScript(GAS)でコードを書き、システムを組み上げていきます。このあたりは通常のソフトウェア開発となんら変わるものではありません。
一つ特徴があるとすれば、GASではGmailやカレンダーにSpreadSheetなど、GoogleAppsの豊富なサービスにAPI経由でアクセスできるところにあります。簡単にメールを送信したり、カレンダーに予定を登録したり、シートから値を読み取ったりすることができます。
KAIZENクラウドはお客様の業務効率化を支援する開発サービスですので、これら日常のタスクをシステムに組み込み、自動化できるGASはとても頼りになる開発言語です。
ただし、GASは開発環境が発展途上であり、いろいろと面倒な制約や制限もあります。性能を担保するのも簡単ではありません。レスポンスを上げるためにクライアントサイドのJavaScript(GoogleAppsはWebアプリケーションも開発することができ、jQueryやその他クライアントサイドフレームワークも普通に利用できます)で頑張ったり、Googleの用意したAPI呼び出し回数を減らしたりなど、色々泥臭い工夫をしています。(※これらの工夫については、引き続きこのブログを通じて発信していきます!)
機能をひとつずつリリースする
KAIZENクラウドの特徴は、継続的にシステムをアップデートできる「保守モード」なのですが、最初のリリースに盛り込みたい要件はお客様と事前合意(つまりコミット)します。
ただし、出来上がった機能はその都度リリースし、なるべく早くお使いいただけるようにしています。KAIZENクラウドで実現するシステムは、GoogleApps上で動作する比較的シンプルな機能の集まりであり、大規模なシステムテストが不要で、機能単位でリリース可能な場合が多いためです。
ポイントはひとつずつリリースすることです。一度に多くの機能をリリースしようと欲張らず、実際の現場の方に理解が得られるよう、リリースする順番をお客様とご相談させていただきながら、リリースを繰り返します。今回事例に取り上げさせていただいた村中建設様の場合、「一番現場からニーズのある工事実績の検索機能を最初にリリースし、しばらく使ってもらってGoogleAppsになじんでいただく」作戦を取りました。逆に、しばらく使ってもらった結果、「複雑すぎる」との判断で、大幅に機能を削減した機能もあります。
お客様と手分けする
最後に、村中建設様とのお仕事で実感したのは、お客様と仕事を手分けすることの大切さです。
今回のシステムでは、SpreadSheetで既存のExcel帳票を再現し、それらのシートをワークフローするような機能を実現しています。帳票のフォーマットはテンプレート化されているのですが、フォントを大きくしたりといったデザイン変更は、システム担当のお客様に担当いただいております。
これにより、実際の現場の方の要望を、よりスピーディーに組み上げることが可能になりました。システムはあくまでお客様のものであり、一番親しみを持っていただけるのもお客様です。お客様と私達との協力関係で、システムをより良いものに育て上げることができていることを嬉しく思います。