「ソフトウェア・ファースト」という言葉や考え方が広まりつつある。海外では当たり前なのだが、日本ではようやくといった感じである。歴史的背景から製造業が強い日本は、モノやハードウェア中心の考え方がこれまで主流とされてきた。しかし、今後はソフトウェアが主流となる。製品の価値を生み出すのはソフトウェアである。
ただ、現実には「ソフトウェア・ファースト」という言葉だけが独り歩きし、正しい使い方がされていないのではないかと見受けられる場面があった。正しく使うべきだという意図を込めて、その実態を書こうと思う。
目次
- 1.企業の競争力を左右するのはソフトウェアだ!
- 2.ソフトウェアエンジニアには高いスキルが必要だが、労働環境は劣悪であることが多い
- 3.「ソフトウェア・ファースト」と称してソフトウェアエンジニアにさらに追い打ちをかける現実
- 4.「ソフトウェア・ファースト」に対する周囲の理解を加速させる必要がある
1.企業の競争力を左右するのはソフトウェアだ!
「ソフトウェア・ファースト」とは、「ソフトウェア活用をベースに事業を構築」することである。及川卓也氏が書籍を出版している。
トヨタが公表している「ソフトウェア・ファースト」の考え方も、下記リンクに示しておく。
monoist.atmarkit.co.jp
monoist.atmarkit.co.jp
ポイントはここ。
「フルモデルチェンジはハードウェアが大きく変わるタイミングに、マイナーチェンジはソフトウェアの更新によってそのままのハードウェアで新しい機能や価値を提供する機会になっていく」
ソフトウェアにより機能や価値を提供していくことを、企業として発信している点が特徴である。ソフトウェアエンジニアが死ぬ気で頑張ったからといって実現するものではない。ソフトウェアエンジニア以外の人たちも含め、全員が同じ方向へ向かって進む必要がある。
ソフトウェアは事業やプロダクト開発を進めていく一つの手段でありながら、既存の産業構造や製品・サービスのあり方を根底から覆すような破壊力を持っているのだ。ソフトウェアが企業の競争力を左右するといっても過言ではない。ソフトウェア・ファーストにおいては、ソフトウェアの特徴や可能性、限界を理解して、ソフトウェアをプロダクト開発や事業開発に活用していく姿勢が重要だ。また、ソフトウェア技術を理解して事業に活用できる人材と、そうした人材が活躍できる組織体制づくりも欠かせない。
o08usyu7231.hatenablog.com
2.ソフトウェアエンジニアには高いスキルが必要だが、労働環境は劣悪であることが多い
ソフトウェアは抽象的で目に見えないものであり、馴染みのない人にとってはなかなか理解されにくい。一方、システム・製品の頭脳のような位置づけであり、サービスの可能性を大きく広げるものである。ソフトウェアエンジニアは、プログラミング言語の専門知識、設計技術・開発プロセスに関する知識、顧客との折衝・要求獲得等、広い分野にわたり高いスキルが求められる。これについては、おそらくどの企業でも入社すれば叩き込まれるマインドだろう。
また、日本のIT業界、ソフトウェア開発においては、下記のような外的要因や企業風土により、ソフトウェアエンジニアの犠牲の上に成り立っていることが多いのである。
- 発注元との力関係を背景とした無理な納期の要請
- 競争が背景にあることから開発途中の機能追加
- 納期厳守という過重な圧力
- 発注側の無知
この犠牲が表面化すると、スケジュール遅延、品質問題のみならず、長時間労働、パワハラといった労働問題にまで至り、最悪の場合被害を受けたエンジニアが再起不能となり、開発リソースが削られる。
o08usyu7231.hatenablog.com
o08usyu7231.hatenablog.com
更に業界構造の問題もある。多重下請け構造はその典型である他、大手メーカーでの製品開発においても、
「企画部門」・「品質保証部門」>「製品開発部門」>「電子系機器開発部門」>「ソフトウェア開発部門」
のような力関係が出来上がり、「ソフトウェア開発部門」がしわ寄せを受けるケースがある。
o08usyu7231.hatenablog.com
o08usyu7231.hatenablog.com
しかも、ソフトウェアエンジニア自身やソフトウェアエンジニアを抱える企業の経営陣・管理職が、ソフトウェアエンジニアを取り巻く労働問題を理解していないことが多く、会社内で教えられることはない。
ソフトウェアエンジニアが疲弊している状況に対して弱音を吐くと、昭和体質の上層部はこれを「甘え」「やる気がない」と捉えて黙らせる傾向がある。
更に、ソフトウェアエンジニア自身も昭和体質の根性論を叩き込まれ、洗脳され、正論を言えない企業体質へと化し、「業界では当たり前」「社会人なら当たり前」と間違ったマインドを持ち続けるケースがある。また、「内容は正しいのだが、現実は・・・」などと、事実上受け入れてしまっているケースもある。
いずれにしても、まともな人間が退職していき、企業に都合の良い「会社目線」の人間だけが残る。そして、おかしなことがまかり通り、それを維持するために「ブラック」になる。
歴史的な背景としては、日本は高度成長期に製造業が強く、経済を発展させてきた。この成功体験から抜け出すことができず、近年でもモノ、ハードウェア中心の製品開発であり、IT・ソフトウェアはそのためのツール・おまけ程度のものとして軽視されてきた。ここが日本と海外の大きな違いであり、専門家を中心に指摘されているところである。日本においてソフトウェアエンジニアの地位が低く、求められる能力の割に待遇やリターンが見合ってない原因がここにあるのではないかと感じている。
ソフトウエアエンジニアを取り巻く労働環境の劣悪度合いは、企業によって大小はあるものの、一般的に日本はこのような傾向にあることが多い。
3.「ソフトウェア・ファースト」と称してソフトウェアエンジニアにさらに追い打ちをかける現実
冒頭で説明した「ソフトウェア・ファースト」だが、ソフトウェアエンジニアを取り巻く労働環境が上述の通りであるなか、「ソフトウェア・ファースト」の言葉だけが独り歩きして、間違った使い方がされているのではないかと感じた一面がある。
それは、「ソフトウェア・ファースト」の言葉が飛び交い始めた企業内のソフトウェア開発部門における方針で表れている。
- 各々の技術者のスキルアップによる成長
- ソフトウェア開発部門のメンバーによる積極的な前行程への参画
- ソフトウェア設計・プログラミングのみならず、システム・仕様提案へのシフト
- 各ステークホルダーとの繋がり強化と、ソフトウェア開発部門が中心・主役となる製品開発へ
- 業務効率化の更なる推進
前述したようにソフトウェアエンジニアには高いスキルが必要であり、上述の方針の内容自体は、何一つ間違っていない。しかし、これを実現できるだけの良好な労働環境や、求めるレベルに見合う十分な報酬が必要なのだが、ここが見落とされることが多く、「前段」が考慮されないまま、期待や要求が先行する。
また、ここで意識しなければならないのは、これらの取り組み自体が「ソフトウェア・ファースト」ではない。従来から行っている、ソフトウェアエンジニア個人、あるいはソフトウェア開発部門が、長年継続して行っている取り組みに加え、ソフトウェアエンジニアに対するハードルを上げているだけに過ぎない。
後述するが、「ソフトウェア・ファースト」は、ソフトウェアエンジニアのハードルを上げることではない。
ソフトウェアエンジニアが、要件定義、システムの仕様構築、システム・仕様提案等、上流行程へ参画し、設計工程以降の負担を軽減する考え方は、「フロントローディング」である。
「フロントローディング」とは、製品開発プロセスの初期工程にリソースを投じ、今まで後工程で行われていた作業を前倒して進めることである。設計部門に負荷をかけるという意味ではないので、注意が必要だ。
時々、ソフトウェアエンジニアがシステム仕様の提案や検討を行い、上流工程を積極的に進めることを「『ソフトウェア・ファースト』ですね!」などと言う人を見かけるが、これは「ソフトウェア・ファースト」ではない。「フロントローディング」である。
「フロントローディング」を否定しているわけではない。「フロントローディング」自体は、これはこれでソフトウェアエンジニアが円滑なシステム・ソフトウェア開発を進めていくために、必須で取り組むべきのものである。
日本の製造業が海外と比べて遅れを取っている背景を踏まえ、「ソフトウェア・ファースト」の言葉だけが独り歩きし、ソフトウェアエンジニアを取り巻く労働環境が改善されない中、ソフトウェアエンジニアに対して更に広範囲で高いレベルのスキルを求め続けるとなると、ソフトウェアエンジニアに追い討ちをかけ、苦しめる結果となり、この先ソフトウェアエンジニアのキャリアに希望が持てず、ソフトウェアエンジニアを目指す人が減っていくのではないだろうかと危惧している。ただでさえ、日本の労働人口は減少し、「ソフトウェア」が企業の競争力と言われている時代なのに。
4.「ソフトウェア・ファースト」に対する周囲の理解を加速させる必要がある
「ソフトウェア・ファースト」とはどういうことか、冒頭で述べた通りなのだが、これを実現するには企業ぐるみで取り組んでいかなければならないことである。ソフトウェアエンジニアのスキルアップをはじめ、ソフトウェア開発部門でやるべきことはあるのだが、そこに終始してはいけない。
日本の場合ただでさえ、ソフトウェアエンジニアの労働環境は悪いケースが多い。製品開発上後工程になり、企画、仕様検討等前行程の遅れによるしわ寄せを受けやすく、「顧客のほうが偉い」「要求元の方が立場が上」等といった間違った常識がまかり通り、同調圧力によって「和」を尊重する風潮が、労働環境の悪化に繋がりやすい。
モノ、ハードウェア中心の製品開発は過去のものであり、現在においてソフトウェア軽視の体質では、まともな開発はできないし、競争に勝てない。
ソフトウェアエンジニアよりも、ソフトウェアエンジニア以外の人が、こうしたソフトウェアエンジニアの実態と、「ソフトウェア・ファースト」の重要性を理解しなければならない。経営陣や管理職は尚更である。
「ソフトウェア・ファースト」の言葉が独り歩きして、ソフトウェアエンジニアに負担を強いるのではなく、企業全体で「ソフトウェア・ファースト」とは何かを共有し、企業全体で取り組んでいかなければならない。「ソフトウェア・ファースト」を意識した各企業は、ソフトウェアエンジニアの採用に積極的である。
「ソフトウェアはハードウェアのおまけ程度のもの」ではなく、「ソフトウェアが製品・サービスの価値を提供する」。このマインドがあれば「ソフトウェアは安く下請け」「ソフトウェアエンジニアはもっと頑張れ!」などと、破綻した考え方は消滅すると思っている。
ソフトウェアエンジニアが高いパフォーマンスを発揮するには、ハードルを上げるだけでなく、
- 良好な労働環境
- 充分な報酬
- 周囲の理解
はセットで必要だ。
o08usyu7231.hatenablog.com
o08usyu7231.hatenablog.com
そのためにできることは、まずこのような情報を広く発信し、一般の人達が知ることである。医師をはじめとする医療機関のスタッフの懸命な対応によって我々が救われてる一方、スタッフが激務によって疲弊している状況も、ニュースや特集等で報道されるから、我々一般人が実態を知ることになるのである。
o08usyu7231.hatenablog.com
ソフトウェアエンジニアも同じだ。ソフトウェアの重要性を知り、ソフトウェアエンジニアの苦労を知る。経営陣、管理職をはじめ、ソフトウェアエンジニア以外の人がこれに取り組まなければならない。企画・開発の前行程のしわ寄せを、ソフトウェアエンジニアに押し付けるのはもってのほかであることを理解しておくべきなのである。
o08usyu7231.hatenablog.com
o08usyu7231.hatenablog.com
ここまでを見れば、ソフトウェアエンジニアを重視する内容ばかりが書かれていると、お思いになるだろう。ソフトウェアエンジニア以外にも、企画、製品開発、ハードウェア開発、システム評価、検査部門、製造部門、品質保証部門他、皆それぞれに苦労しているよと言いたくなるだろう。まさにその思いは重々理解しており、苦労していることや、組織・業界構造上の問題あるならば、同じように情報発信すべきである。IT業界でいうところの多重下請け構造等は、まさに構造の問題なので、他の業界でもこのような問題は発信され、広く知られるべきである。解決できるかどうか以前に、まず知ることだ。
ソフトウェアエンジニアの苦労や、業界構造や体質上の問題など講演する場があれば、是非ともしたいものだ。それ以前に、このブログでも広めていく。
最後に、転職するなら「ソフトウェア・ファースト」を正しく理解し、企業全体で取り組んでいる企業を選ぶべきだ。