生産性はアーキテクチャで決まる

はじめに

こんにちは。はちぽちです。
人事評価制度設計についてはかなり書いたので、今回は角度を変えて話していきます。
評価制度の話は、従業員のキャリアアップやモチベーションアップに貢献し、生産性が上がるという論理展開でした。

今回は、生産性を上げるための業務設計について書きます。

アーキテクチャとは

日本語にすると、「構造」です。
わざわざカタカナにしたのは、キャッチ―だからです。笑

すごくふわっとした言葉なので、いくつか具体例を挙げます。

・ホールディングスのグループ見取り図
・企業の組織図
・製造工場のレイアウト
・小売店舗のレイアウト
・ITシステムの構成

ざっくり並べましたが、従業員個々の力でどうにかるものではなく、基本的には経営判断が必要なレイヤーかと思います。
僕はIT業界の人間で、製造や小売りだと「動線を組みなおしましょう」くらいしか言えないので、ITシステム構成について詳しく書いていきます。

生産性を上げるシステムアーキテクチャ

先に断っておくと、大規模システムの全体最適化ではありません。
それは、システムの前に部署統廃合や人事異動が絡む話になるからです。
ここでは、「個々のシステムはどのようなアーキテクチャにすればSEのパフォーマンスが上がるか」に焦点を当てていきます。

結論から言うと、
・複雑性が低いシステムは、強力なフレームワークを使いましょう。
・Webフレームワークで対応しにくいシステムは、マイクロサービスアーキテクチャで対応しましょう。

生産性より優先するものがある場合は、この限りではありません。

大切なのはバックエンド

フロントは、JSPなど一部のFWを除いて基本的にアーキテクチャの影響を受けません。
また、モバイルアプリが特にわかりやすいですが、利用目的と使うべき技術がほぼ決まっています。
生産性は、個々の技量が占める要素が大きいでしょう。
一方のバックエンドは、アーキテクチャの影響をダイレクトに受ける部分です。

複雑性が低く、強力なFWで対応可能なものは、以下のメリットがあります。
 ・画面設計ができれば、バックエンドまでだいたい見通せる。
  つまり、設計に細かく時間を使わずに済む。
 ・FWの補正が強いので、テスト工数を圧縮できる。

マイクロサービスは、以下のメリットがあります。
 ・機能ごとに完結しているため、改修コストが低い。
  もちろん、改修に至るまでの調査コストも低い。
 ・インプットとアウトプットの定義があればいい。
  つまり、こちらも設計にかかる時間が少ない。

現在日本国内で主流のJavaで作ったシステムは、至る所に共通化されたクラスメソッドがあるため、改修が発生するたびに影響調査をする必要があります。
また、そういった複雑なシステムを維持するためには、膨大な量の設計書を作成し、しっかりメンテする必要があります。
システム間の連携に詳しい人がどうしても必要になるので、属人化もしやすいです。

まとめ

具体的な話ができるのがITシステムだったので、ちょっと専門用語多めで解説してしまいました。
ただ言いたいことは、複雑怪奇な構造にするのではなく、なるべく簡素に保つ構造を用意するのが大切ということです。

変化に強いアーキテクチャを、心がけていきましょう!

この記事が気に入ったらサポートをしてみませんか?