< 個性という幻想 | 意味がない意味 >

効率の4要件

物事を効率化するためには以下の4ステップを踏む必要があります。

  1. 規格化
  2. 分業化
  3. 自動化
  4. 大規模化

このステップを順に達成することで文明は発達してきました。

最終的な目標は大規模化ですが、それを達成するために規格化と分業化・自動化が必要になります。

世に出回っているほとんどの商品が大規模化における大量生産により人類の日常を支えています。

工場というシステムは大量生産を可能にしている最たる例でしょう。

工場は効率の4要件をすべて満たしているからこそ効率的な生産を可能にし、商品を市場に大量供給できるのです。

それでは効率に必要な4要件がどのように大事なのか一つずつ解説していきましょう。

規格化

そもそもの前提条件です。

規格化をしていないと、定まった手順を策定できないので自動化も大規模化もできません。

また、分業化においても規格があるからこそ、それぞれの作業が誰でも同じように施行できるようになる、という利点があります。

同じものを安定してたくさん作るには、素材や作り方が全て均一でなければなりません。

我々が買っている日常品は、いつどこでどれだけ買ってもすべて同じ内容であるからこそ、安心して買うことができます。

もし、買った商品ごとに内容量や品質がバラバラであればクレームの嵐ですし、そもそもそんな商品は買わなくなるでしょう。

規格化は数値や手順を客観化することにより、どこで誰がやろうとも、決められた用法・用量を守ってさえいれば同じものを再現できるという素晴らしいものです。

世にあるすべてのマスプロダクトが規格によって定められているからこそ同品質のものが大量生産できるようになるのです。

インターネットの大基盤である各種プロトコルもすべて規格です。

地球の裏側であろうとも同じ解釈で情報を処理できるからこそインターネットが成り立つのです。

分業化

ある一つの製品を実際に顧客の手に届けるまでにはさまざまな工程があります。

数ある工程を全て一人の人がこなすのは大変ですし非効率です。

わかりやすく例えると、商品が人に消費されるまでには生産・配送・販売という流れがありますが、それぞれを一人で全部やると、とてもじゃないですがやってられないと思います。

野菜を栽培する人、魚を捕る人、野菜や魚を市場やスーパーまで運ぶ人、店舗で実際に販売する人、それぞれ別の人(どころか会社)が担っているはずです。

効率よく商品を市場に配給するためには分業化は必須です。

そもそも会社という単位は一人ですべてやるよりも、専門性を備えた人(もしくは純粋な数によるマンパワー)を集めてみんなでやったほうが効率がいい、という考えから生まれた結果なのです。

問屋や卸売市場、商社などの存在は生産者から消費者をつなぐための架け橋として分業化した結果なのです。

自動化

人間のムーブには限界があります。

走るよりも馬車、馬車よりも自動車のほうが早く長く走れます。

そして電車、船、飛行機などさまざまな乗り物が誕生したおかげで、自分自身どころか他のヒトやモノまで大量に運べるようになりました。

操作こそ人が行う必要がありますが(これもそのうち自動化しそうですが)、動力の生成はエンジンやモーターにより自動化されています。

そして、規格化が行われていれば、素材の量や作業手順が明文化されているはずです。

明文化され定まった作業であれば反復処理化しやすく、器械による自動化を適用するにはもってこいです。

昔は一人一人の手で作業を行っていたので、人間の動き以上の生産性を生み出すことは不可能でした。

また、人による感性や経験則の違いにより同じ品質のものを安定的に生産するのにも限度がありました。

しかし、生産工程の大半を機械化することにより、人間の身体能力の限界を超えた生産性、人間の持続力を超えた安定性を手にすることができました。

大規模化

これまでの3要件を満たすことにより商品の生産力を拡大(スケール)しやすくなります。

工場は大きいほど、ラインを増やすほど、より低コストで商品を生産することが可能になります。

ロットが大きければ大きいほど商品単価を下げることができ、さらに市場供給量も増やすことができます。

いわゆる「定番商品」と呼ばれるものは効率の恩恵を最大限に受けることにより、あまねく人に商品を届けているのです。


最後に効率の4要件をシステム開発に当てはめてみましょう。

  • 規格化
    言語自体
    公式ライブラリやフレームワーク
    コーディング規約
    ユビキタス言語、作業手順の明文化(ドキュメント)
    
  • 分業化
    サービス単位、モジュール単位やドメイン単位による分業
    インフラ・アプリケーション・バックエンド・フロントエンドなどの技術素養による分業
    
  • 自動化
    バッチ化、DevOps、CI等
    cronのない世界を想像できますか?
    
  • 大規模化
    利用ユーザが増えると必然的にスケールを考慮する必要がでてきます
    

このようにシステム開発にも効率の4要件が必要なのが分かります。

Tag: 仕事