INNOVATED.当サイトは、ブラウザのJavaScript設定を有効にしてご覧ください。解決する課題と未来についてお話しましたが、今回はその未来にたどり着くまでの道のりに潜む、ソフトウェア開発の課題をもう少し深堀りしたいと思います。社会の動きが年々早まる中、企業もプロジェクトも、今までに比べ更にリアルタイムな意思決定と戦略の組み替えが成長の鍵となってきています。ジョブ型雇用の考え方が広まったのも、こういった背景により、戦略に合った経験豊富な人が求められているということが要因の一つでしょう。もてはやされた時期も数年で過ぎ去り、専門性を持った人がより必要とされ始めているように感じます。牽引されるノーコード開発で、ソフトウェアエンジニアが不要になるのでは?と、疑問を持たれるかもしれませんが、ソフトウェア、広くはデジタルサービスを作るにあたり、新たに探索しなければいけない領域の幅は広がり、新たな層が積もることにより既存の領域もより深くなっているというのが現状です。ノーコードで対応できるのは、これから10年程度はその表面の一部だけでしょう。一昔前にあったような、CPU、メモリ、ディスクがこうでこうだから、こうコードを書けば、ソフトウェアは思った通りに動くのである、といったシンプルな世界ではなくなっており、自身の記憶を疑うほどに進歩の速さを感じます。プログラマーは比較的物事を紐解きシンプルになるようシステム化していく傾向にありますが、それでもそうなってしまうのです。プロジェクト運営を目的としたボトムアップな視点で必要とされています。そこでボトルネックになってくるのが、人材の流動性の低さです。この課題は、人が少ないことだけではなく、多いことにも起因しています。人が少ないとボトルネックになるということは自明かもしれません。必要になったら経験者を採用しすぐプロジェクトにアサインできるほど、都合よく採用できないことは大きな問題の一つでしょう。逆に人が多いとボトルネックというのは少し直感と異なるかもしれません。人員の抱え込みはコスト面で見れば明らかに問題ではあるのですが、そういうことではなく、仮にお金に余裕があったとしたら、前々から余裕をもって人数を増やしておくこともできると考える方もいるのではないでしょうか。これも問題で、多くの人は仕事が無いという心理的な圧力に耐えられないため、無駄な資料やルールを作り始めてしまい、質より量の行動と成果物が増え、逆に納期の遅れを引き起こし、質の低いデジタルサービスが出来上がる要因となってしまうのです。APIサーバーを書ける人があと3人いたらなぁ」のようなことを思った経験があることでしょう。その3人を増やしたところで、数ヶ月後には彼らに渡すタスクが無くなる可能性が高いため、人を探す手間や、研修で割かれる既存メンバーの生産性低下を危惧し、人を増やさない分(※1)、他のところを削るしかないと考えてきたのではないかと想像します。そんな人は今どきいないと思いますが、既存メンバーが残業して頑張ることに期待をしてしまったとしたら、私がいちプログラマーとして、チームをリードしたいと考える人にお勧めするのは、「ピープルウェア」を読むことです。時間ができたら「人月の神話」と「デッドライン」を読むことをお勧めします。下請けによる課題の部分的な解決この人材の流動性に関する課題に応えているのが下請けです。(一次請け、プロパー)から、更に仕事を請け負う企業(二次請け)のことです。SIer、人材派遣会社、フリーランサー等に依頼する構造を多重下請け構造と云います。下請けは人材プールとしての役目を担っていて、必要なタイミングで必要な数の人を、早ければ一ヶ月でチームに補充することが可能です。人が見つかったから万事解決というほどソフトウェア開発はシンプルなものではなく、アサインされた人の経験、技能、モチベーションといった様々な要素がプロジェクトの行く末に大きく影響を与えます。アサインされた人を研修するために既存メンバーの時間を割き、6ヶ月ほど基礎を教えるようなこともあります。その人がようやく一人立ちする頃にはプロジェクトも終盤となり、いざ終わってみると、お金を払って下請けの教育をし、その分プロジェクトが遅延してしまったという本末転倒なことが往々にしてあります。(特にその人が下請けの場合)、新人の教育という免罪符があれば、自分は時間を使い頑張って仕事をしたのだという正当な理由があるため、プロジェクトの遅延はプロジェクトリーダーの責任であり自分の責任ではないと考えるかもしれません。このようなメンバー間のメンタルモデルの違いも、プロジェクトを大きく左右してしまう要因の一つです。多重下請け構造の闇についてここでは触れませんが、興味のある方はリンク先(日経ビジネス)をご覧ください。いった問題に対し、なにも対策がされていないということはなく、公正取引委員会による多重下請け問題の調査や、下請法や労働基準法の改正、偽装請負に対する問題意識の顕在化など、多重下請け構造による課題に立ち向かっていこうとする動きはもちろんあります。ソフトウェアを作りたい事業会社に対しその分高い金額を要求するようになり、そのしわ寄せは事業会社にまで波及します。人がいないと開発案件を請けることができません。事業会社もデジタルサービスを提供することができません。そのため、どこかから人を集めるしかないのです。ここで少し海外の事例(※2)を見てみましょう。アメリカ、イギリス、日本と大きな括りでその中の企業を単純に比較できるものでもありませんので参考までに。行えるために日本のように下請け構造が発展しなかったのだと考えられますが、契約を満了してプロジェクトから抜けるということと、解雇されるということでは全く意味合いが異なるため、中身のない仕事をして成果をアピールすることや、他人を蹴落とすような力が働き、それがメンバーに与える心理的負荷は、プロジェクトの生産性にも影響を与えるものと考えています。いった企業の大量レイオフに関連する投稿などからも、去る人のみならず、残る人の混乱やエンゲージメント低下が想像できます。イギリスのソフトウェア業界では数ヶ月の時間単位で仕事をする契約が主流で、人材の流動性が高いので、多重下請け構造ができにくくなっているのだと考えています。日本でも契約社員のように期間を設けて雇用することはできますが、イギリスが日本と異なる点は、期間契約に対してより高い報酬を設定する企業が比較的多いことです。これにより、人材派遣会社が増えたり、ゼロ時間契約と呼ばれる、契約に時間を定めず、企業は好きなときに依頼でき、社員は好きなときに依頼を受けられるという一見双方良しの契約が増え、企業の優越が故に、低収入層にとっては不当な扱いを受けやすい要因にもなっているようです。クラウドソーシングはどうでしょうか。結論から言えば、こちらも安易に手を出してしまうと痛い目にあってしまうのが実情です。実は海外の人材派遣会社の営業がフリーランスと偽証し自国の社員を働かせていたり、経験の少ない人が仕事を請けられるよう経験を偽りプロジェクトに入り成果を全く出せないといった問題があります。結局は多重下請けで起きている問題が解決していないのです。考えると、ソフトウェア業界を長く支えてきた下請け企業はスクリーニングや教育に力を入れている分、クラウドソーシングと比べ一日の長があると言えるかもしれません。勘違いしてはいけないのは、下請けやクラウドソーシング自体は悪いことでは決してなく、ソフトウェア開発の人材の流動性にまつわる様々な問題のしわ寄せがそこに向かい、その問題のしわ寄せ先がそれ以上無いがために、そこで顕在化してしまっているということです。ついては前編をご参照ください。ここまでをまとめると、デジタルサービスの作り方は年々高度で複雑になっている人材の流動性がソフトウェア開発の質と納期に影響を与える一次請けは下請けやクラウドソーシングに頼るしかないときもあるこのような事情が密に絡み合う構造の上で、現代のソフトウェア開発のパターンは形成されてきました。今もこれらの課題に対し、以下を例に様々なアプローチが取られ、また新たなパターンが形成されていくのです。合う複数の組織のもと、時間に拘束されず成果を提供する人々が徐々に増え始めています。いう働き方をする人々が、世界の労働生産性を高め、社会をより豊かにする、その一翼を担うことでしょう。この記事の続き「人材の流動に伴う変化」もぜひご覧ください。