Help us understand the problem. What is going on with this article?

ソフトウェアエンジニアをシェアすることのメリット。0.5人月 + 0.5人月 > 1.0 人月 という観測。

More than 1 year has passed since last update.

言いたいことは、複数のプロジェクトを同時に担当しているエンジニアは特定のプロジェクトの専任となっているエンジニアより効率よく成果を挙げられるのではないかということ。

これは次の二点があるからだ。

  • 各プロジェクトで重複する問題に対しては1つの対処が完了すれば別のプロジェクトでの対処は簡単になる
  • 1つのプロジェクトで得られた学び・気付きを別のプロジェクトに活かせる

なぜ、この思うようになったかというと、いま自分が担当しているプロジェクトで複数プロジェクトを担当することによる恩恵を実際に受けていると感じたからだ。

最近、僕はフリーランスとして二社から同時に開発の仕事を請けている。
そのうち片方の会社のプロジェクトでは僕とは別に二社から仕事を請けている人がいる。
合計3社に跨ってエンジニアがシェアされている状態だ。
三社の技術スタックは同じではないが、それぞれ共通する部分がある。

この状態で開発をしていて、たびたび下記のようなことが起きた。

  • 別件であるやり方がうまくいっているのでこっちでもやりたい
  • ライブラリの使い方に起因するバグを見つけたが、別件のプロジェクトも同じ間違いしていることに気付き問題発生前に直せた
  • 別件でほぼ同じ要件の実装をしたことがあるから同じやり方で実装できる
  • 別件でフレームワークのアップデートをしているのでもう片方ではハマらずにサクッとアップデートできた

片方のプロジェクトでの経験がもう片方のプロジェクトに活かせることが非常に多い。
つまり0.5人月の作業をしていたとしても、本来であれば0.5人月では達成できない成果を出すことができるのだ。
単純に同じ技術スタックの別のプロジェクトに移動するのと比べてもノウハウがすぐに伝わるしタイムリーな問題(フレームワークのアップデートなど)にも強く、同時に複数プロジェクトを担当することのメリットは強いように思える。

この考え方に基づけば、通常どうりプロジェクト専任のエンジニアを配置するより
・2つのプロジェクトに半人月ずつでエンジニアを配置する
・複数社でエンジニアをシェアする
という仕組みにした方が効率はずっといいはずだ。

こうやって書くと机上の空論感がすごいが、自分としては効率が良いという実感がある。
プロジェクトごとの技術レベルを平均化できるというメリットもありそうだ。

深夜に眠れないから暇を持て余して書いたポエムなので、コミュニケーションコストについて
考えるのを忘れていた。
ソフトウェア開発チームにとって人数が増えることはデメリットにもなり得る。
コミュニケーションコストが発生するからだ。
専任のプロダクトマネージャーがいて適切にタスクが分割・割り当てされている環境であれば
コミュニケーションコスト以上のメリットは確実にあると思っている。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした