超高速開発ツールを使わなければ高い生産性は達成できないのか?

先日、有意義なワークショップに参加してきました。とある大手 SIer の企画によるもので、(1) Wagby (2) 社内若手チームによる手組み (3) オフショア先ベテランチームによる手組み、の 3 チームで、同じ「お題(テーマ)」を実装するというものです。テーマは商品の発注に関するもので、発注に応じて在庫を減らすルールを含みます。

社内若手チームは、Angular JS と Bootstrap で今風の画面を作成し、バックエンドは Spring framework + Spring MVC という構成でした。一方、ベテランチームは10年以上保守を続けている Java 製フレームワークで、Struts 2 をベースに多くの業務部品を備えたものでした。

事前に仕様書が配布されており、各チームとも1週間ほどの準備期間をいただいていたので、最初の要件をクリアするデモアプリを開発することはできていました。各チーム10分でそれぞれデモを行います。見栄えの違いはあるものの、この段階では各チームともしっかりと要件をクリアしています。

3チームのデモが終わったところで、その場で追加の仕様が発表されました。現行アプリに「出荷伝票」を加える、というものです。なお、一つの発注伝票に対応する一つの出荷伝票を用意しますが、出荷先は複数という業務を想定します。また、出荷伝票の印刷(PDF)も必要です。この追加仕様を90分で実装する、というのが今回のワークショップのメインイベントです。

Wagbyチームは1名が追加要件の実装を行い、もう1名が印刷(PDF)に取り組みました。ただ追加仕様にPDFが加わるということを予想していなかったため、慌ててJasperReportのダウンロードとインストールから始めてしまいました。結果的にPDFはできたのですが、アプリケーションとの連携は間に合わず、もう一息というところでした。ただ保険として Excel 印刷は間に合ったので、こちらのデモを行いました。

一方、Angular JS 若手チームは PDF まで完了。ベテランチームは Excel 印刷に変えてのデモでしたが、基本要件はいずれもクリアしていました。90分でそれぞれのチームが目標を達成できたのは素晴らしいと、お互い健闘を讃えあいました。ちょっとした競技です。

つまりWagbyのような超高速開発ツールがなくても、充分にこなれたフレームワークと、それを支えるエンジニア集団が存在すれば、同じようなパフォーマンスを達成できるのです。

実は私はこの結論を予想していました。もう少し踏み込んでいうと、Wagbyはパターン化されたアプリケーションしか生成できませんが、若手チームやベテランチームはコードを書くタイプなので、むしろ柔軟性は高いのです。おのおのが利用するフレームワークの制約はありますが、「自動生成エンジン vs 技術者」という構図でいえば、技術者チームが十分にアピールできたといってもいいワークショップでした。これが一つの事実です。

では Wagby チームのアピールは何か

しかしワークショップの終了後、参加していた同社幹部陣は、Wagby に大いに興味を持ちました。これもまた、私の予想通りの展開でした。

実はワークショップに参加していた若手チームおよびベテランチームは、若手勢そしてオフショア会社の「トップ数名(精鋭)」なのです。トップクラスが結集すれば Wagby と同じ生産性で、Wagbyより柔軟な開発を達成できます。しかしそのトップがもっているスキルを数十名、数百名規模に広げることがいかに難しいか、もまた、わかっているのです。

Wagbyは「画一的なアプリケーションしか生成できない」という制約を差し引いても、トップエンジニアの次点、という位置付けであれば大量導入が可能です。BasicやCOBOLの経験はある(がモダンな Web アプリ開発はちょっと…)というエンジニアも利用できます。全体の底上げと品質の安定化に貢献できるのです。

また、ワークショップに参加した若手チームおよびベテランチームも、彼らだからこそ、Wagbyがどういうものかを実感できたようでした。彼らは自分たちのスキルが高いことを充分に自覚しています。その彼らが "Wagbyでは、どうやってこのアプリの設計書を書くのか?” に興味を持ち、詳細を知ることで、おのずと適用できる分野がみえてくるでしょう。

百聞は一見にしかずとはよくいったもので、トップエンジニアに Wagby の使い所を理解してもらう最良の方法が、このようなワークショップではないかと感じました。彼らは 自分たちのプロジェクトには Wagby を使わないかも知れません。しかし同社が抱える開発案件は多くあります。そこでプロジェクトマネージャに対して、いくつかの案件は Wagby でできるとアドバイスすることでしょう。それにみあったエンジニアの配置に関するアドバイスも行うかも知れません。

組織の中で優秀なエンジニアがますます活躍するためには、彼らを赤字プロジェクトの火消しなどにあたらせてはいけません。Wagby の導入でプロジェクトの成功率が高まれば、彼らの時間をもっと有効な分野に投資できるようになるはずです。今回のワークショップを生で体験した同社の幹部はもちろん、この点にも気づいたのではないか、と思います。