無料ブログはココログ

« [#Node-RED] 7〜8分でわかるファンクションノード | トップページ | 決定をできるだけ遅らせる -「現場で役立つシステム設計の原則」深読み - »

立食とコース料理 -「現場で役立つシステム設計の原則」批判の一考察 -

高級食材をリーズナブルに提供する立食タイプのレストランがはやっている。景気が少しは上向いたものの本格的な好景気と言いがたい中、たまには良いものを食べたいというニーズに応えるべく、立食で回転率を上げることで原価率の高いリーズナブルな商品を提供しているのだ。

これに対して本格的なコース料理を出すレストランの方々は、苦々しく思われているだろう。食事というのは文化であり、美味しく食べるには順番があり、ふさわしいサービスと共に提供することで至福の時間を楽しんでいただける。それなのに、メインディッシュ中心で、イスすら無い。そもそもイスが無ければ落ち着かないじゃないか、と。

もちろん、単なるアイデア勝負では勝てないので、立食サービスを提供する側も顧客の特性を見据えて方針を変更する。たとえば大阪と京都だけはイスを設置するなどして、ニーズに応えようとする。

オブジェクト指向

前置きが長くなったが、増田さんの本と杉本さんの批判を読んで頭に浮かんだことである。

杉本さんの「現場で役立つシステム設計の原則」批判 (1) ~何のために、「データとロジックを一体に」するのか?~「現場で役立つシステム設計の原則」批判 (2) ~ポリモーフィズムは何のために?~ を読んでいると「なるほど」と思うものの「現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法」の増田さんはなぜそのような本を書かれたが気になった。

そこで話題の本を読んでみると、私の知っているオブジェクト指向をベースに戦略的な内容が書かれていた。ベースとなるオブジェクト指向は、デザインパターンが話題になるまでのオブジェクト指向に近いものだ。

オブジェクト指向の主張や流派には色々あるが、Smalltalkで学ぶオブジェクト指向プログラミングでは、アラン・ケイさんが「生物がどのように複雑な構造を作るかを考えました」という言葉を引用し「オブジェクトは細胞のアナロジー」としている。

そこには、小さなものを作り、確認しながら、方向性を見極めながら、徐々に大きなものを作るアジャイル開発やリーンスタートアップにつながる戦略が垣間見える。

アジャイル開発とリーンスタートアップの戦略に求められるもの

アジャイル開発も最近ではモダンアジャイルと言って、定期的なタイムボックス管理にこだわらず、ビジネスの成長に直結するソフトウェアを、よりコアな部分から段階的に、しかも安全に開発する方法として実践されつつある。

そのような開発では、従来型開発で重視された、業務全体を見渡して最適化すること、技法本来の使い方を熟知すること、将来的に必要と思われる機能をシステム一式を開発するよりも、ローコストで、シンプルで、業務に役立つ最低限のシステム、の開発が求められる。

もちろん、アジャイル開発に向いた開発法には欠点もあり、初期の開発では業務全体に最適化されておらず、技法としても不十分で、将来的に継続的な改修が必要となる。

しかし、収益を出すことが難しいスタートアップ企業のに求められるのは

  • ビジネス(業務活動)が実施できること
  • 理解が容易な程度に単純なこと
  • リファクタリングが容易なこと

といった点である。これらはビジネスの存続・発展のためには重視されるだろう。

立食 vs コース

さて、機能の抜けが無く良い設計のソフトウェア開発と、リファクタリングを前提に最低限の機能から実装する方法は、本格的なコース料理を提供するレストランと、メインの料理を中心に立食で提供するレストランの様に戦略が異なる。

今後も発展するだろうが、ブームは過ぎるかもしれないし、立食で無くなるかも知れないが、回転率を重視する店は今後も存在するだろう。逆に、コースを提供するレストランは淘汰が進むかもしれないが、こちらも全てが無くなることは無いだろう。

それぞれに特長があり、調理師に求められるスキルも異なる点があるだろう。互いに相手のやっていることは、自分のやりたいことではないと言うかもしれない。

しかし、相手の立場に立ってその戦略を見たとき、自分の技術に書けている点や自身の強みが見えてきて、技術を磨くための肥やしになるだろう。

おわりに

今回の議論はとても興味深く、とても参考になる。その背景には感情的な対立でなく、若い人にわかって欲しいとか、偏った考えを持って欲しくないという前向きなものだ。

すでに若いとは言えない年だが、色々と学ばせていただいた。今後もぜひ前向きに議論を続けていただき、技術の発展に貢献していただきたい。

このエントリーをはてなブックマークに追加


« [#Node-RED] 7〜8分でわかるファンクションノード | トップページ | 決定をできるだけ遅らせる -「現場で役立つシステム設計の原則」深読み - »

ソフトウェア」カテゴリの記事

コメント

この記事へのコメントは終了しました。