ソフトウェアエンジニアが労働について情報発信するブログ

ブラック労働からホワイト労働まで経験したソフトウェアエンジニアが世の中にとって役立つことを情報発信していく。

「ソフトウェア・ファースト」を労働の観点から考える

当ブログではアフィリエイト広告を利用しています

「ソフトウェア・ファースト」という言葉や考え方が広まりつつある。海外では当たり前なのだが、日本ではようやくといった感じである。

歴史的背景から製造業が強い日本は、モノやハードウェア中心の考え方がこれまで主流とされてきた。しかし、今後はソフトウェアが主流となる。製品の価値を生み出すのはソフトウェアである。

この記事では「ソフトウェア・ファースト」と、ソフトウェアエンジニアの労働環境について述べる。


1.「ソフトウェア・ファースト」とは

「ソフトウェア・ファースト」とは、「ソフトウェア活用をベースに事業を構築」することである。及川卓也氏が書籍を出版している。

トヨタが公表している「ソフトウェア・ファースト」の考え方も、下記リンクに示しておく。
monoist.atmarkit.co.jp
monoist.atmarkit.co.jp

「フルモデルチェンジはハードウェアが大きく変わるタイミングに、マイナーチェンジはソフトウェアの更新によってそのままのハードウェアで新しい機能や価値を提供する機会になっていく」

今後はこの考え方がスタンダードになっていくだろう。

ソフトウェアにより機能や価値を提供していくことを、企業として発信している点が特徴である。ソフトウェアエンジニアが死ぬ気で頑張ったからといって実現するものではない。ソフトウェアエンジニア以外の人たちも含め、全員が同じ方向へ向かって進む必要がある。

2.「ソフトウェア・ファースト」ができていない状態はブラックに近い

「ソフトウェア・ファースト」ができていない状態がどのような状態かというと、私は長時間のブラック労働にまみれた状態をイメージしてしまう。「ソフトウェア・ファースト」の書籍にもあるように、「ソフトウェア」は価値を生み出し、あらゆる産業をリードしてきている重要なポテンシャルを持つものだと考えている。しかし、日本企業はIT軽視の傾向がある。

歴史的な背景から製造業が強いがゆえ、多くの企業が完成品を作り上げることに価値を感じて、ITを単なる業務効率化ツールだと考えている。それゆえ、ITシステムの開発に自社のリソースを割くことなど考えもせず、システムインテグレーターSIer)やITベンダーに任せきりである。

その結果として、自社にIT活用のノウハウが蓄積されない「SIer丸投げ文化」が形成されてしまった。そして競争力を失い、国際的に遅れをとっていく。そのような企業がITを活用するといっても、長時間・低賃金でソフトウェアエンジニアを酷使するブラック労働か、オフショアを活用しなければやっていけない状態でしかなく、いずれにしてもロクなことがない。

「ソフトウェアによって製品・サービスの価値を創出する」のは、要求元・要求先の共通認識だろう。まともな要求元ならその通りである。しかし、ソフトウェアの難しさや重要性を理解せず、ソフトウェアを軽視・過小評価している要求元からの開発依頼を受けると、「見えないもの=難しさがわからない=簡単・開発期間中の追加・変更はタダ」となり、さらにここに要求元・要求先の力関係が加わり、ソフトウェア開発現場はあっというまにブラック労働となる。

  • 「無理な要求」
  • 「変更はタダ」
  • 「仕様確定が遅れているが最終納期は変更なし」

このような企業間でパワハラともいえる状況がおかしいとも思わず、ソフトウェアエンジニアの犠牲の上で製品開発が成り立つことが当たり前になっているようでは、競争力は弱まり、価値の高い製品・サービスを提供することは不可能である。

このようなやり方でブラック労働が蔓延しているソフトウェア開発現場からは、優秀なソフトウェアエンジニアが離脱していく。そして残りのソフトウェアエンジニアの負担が増える。悪循環でしかない。

優秀なソフトウェアエンジニアを集め、ソフトウェアを中心としたビジネスに世界全体がなりつつあるなかで、日本の企業は本来やるべきことと全く逆のことをやっている。高い価値を生み出すべき部分に、劣悪な労働環境しか提供できない企業は、恥だと言わざるを得ない

3.ソフトウェア開発の理想像

「ソフトウェア・ファースト」という言葉の有無に関わらず、製品・サービスにおける「ソフトウェア」のポテンシャルは高いと認識すべきだと考えている。イメージとしては「ソフトウェア」は人間でいう「頭脳」、「ハードウェア」は人間でいう「手足」といった感じだろう。「頭脳」がいくら指令を出しても「手足」が動かなければ生活面において不自由だし、「手足」が正常でも「頭脳」が異常ならば何もできない。「ソフトウェア」というのはそれだけ重要な位置付けにある。ソフトウェアエンジニアも、それ以外の人も次のように認識を改めなければいけない。

×:ソフトウェアはハードウェアのおまけ程度のもの。
○:製品の価値を生み出すのはソフトウェア。

×:ソフトウェアは業務効率化のためのツール程度。
○:ソフトウェアを中心とした事業展開を行う時代。

×:ソフトウェア開発を担うのは多重下請け構造の末端。
○:ソフトウェアだからこそできることがある。

×:ブラック労働を乗り越えてこそ、ソフトウェア開発のプロフェッショナル。
○:ソフトウェア開発が破綻すれば全てが廃れる。

長時間のブラック労働で良いソフトウェア開発はできない。長時間労働は健康面にも良くないし、疲労が蓄積されればパフォーマンスも下がる。特に優秀な人材のパフォーマンスが下がると全体にマイナスである。

誰でもわかっていることなのだが、できていない企業が少なくない。目の前のスケジュール、目の前の課題しか見えておらず、企業、社会、従業員の人権・生活・人生といった全体を俯瞰的に捉えられていないのだろう。

私が最も重視しているのは、「価値を創出するソフトウェアを無理なく開発する」こと。「当たり前品質」や「魅力的品質」という言葉があるが、ソフトウェアが魅力的であるためには、この両方が必要である。ブラック労働が常態化している開発現場では、「魅力的品質」を生まないどころか「当たり前品質」すら満たせない。

「ソフトウェア」によって付加価値をつけようという話がよくある。何をもって付加価値というのかが曖昧である。顧客から提示されたシステムの仕様を「ソフトウェア」によって実現するだけなら、あまり付加価値はない。しかし実際、これだけを達成するのもかなり難度が高い。

何が付加価値なのか?

「顧客からの全ての要求を受け入れる。プラスαの内容も対応する。これらを決められたスケジュールで完結する。」

これでは発注元にとっては聞こえは良いが、発注先の末端にしわ寄せが来る典型的なブラックな構造だ。理想的なのは、

「全ての要求を受け入れるとは限らない。代替手段や代替機能を提案し、スケジュールを調整しながら、無理なく価値を提供する。」

くらいだろう。

「高付加価値の創出」と「ソフトウェア開発の難度の高さ」は全く別物であることも少なくない。付加価値とは根性と力業で提供するものではない。ニーズを汲み取り、アイデアを出し、最適なプロセスを設計し、最大限の能力を発揮することが必要であり、根性とか、気合いとか、パワハラ耐性はいらない。

ソフトウェアの付加価値提案パターンはいくつかあるので、参考までに示しておこう。ここでいう付加価値は、新機能の追加でも、コストダウンでも良い。また、顧客にとっての価値でも、開発側にとっての価値でも良い。

1)要求に対して代替手段で実現する
要求自体は実現(背景となっている問題点を明確にし、この問題点が解決できている状態)するが、より投資対効果が高い別手段を選択する。

2)要求機能自体を別機能に代替
まず、無理な要求を断る。今対応せず次期リリースバージョン以降に対応する可能性のある案件としてストックする。この要求自体の実現を保留する代わりに、別の機能アップ等により製品としての価値を高める。

3)プラスαの内容追加
仕様統一化、ソフトウェア設計統一化、リファクタリングなど、今後の開発を効率的に行うための仕掛けを行う。

限られた開発期間で、無理な要求を一気に押し込まず、どのような機能・価値を段階的に提供していくかを、市場動向を踏まえながら考えていく必要がある。アジャイル開発のスクラムの考え方を参考にするとよい。

4.労働環境の改善は必須

「ソフトウェア・ファースト」といっても、ソフトウェアエンジニアにとっては、普段からやっている当たり前のことであると感じている人もいるのではないだろうか。「ソフトウェア・ファースト」という言葉自体を知らなくても、今の時代はソフトウェアが製品の中心的位置付けであることを理解しており、ソフトウェアで何かしらの価値を提供できていれば良いだろう。

逆に、ブラック労働が常態化している開発現場では、「ソフトウェア・ファースト」など、かすりもしない内容ではないだろうか?

劣悪な労働環境で心身疲弊しており、目の前の業務をこなすだけで限界であり、価値創出まで思考が行き届かないのではないだろうか?

私は、ブラック労働もホワイト労働も経験があるのでよくわかる。せめて、企業にとって足元ともいえる労働環境か正常にならないと、「ソフトウェア・ファースト」など遠い先の話にしか見えない。「ソフトウェア・ファースト」と声高らかにいいこと言っても、それどころではないブラックな労働環境、すなわち「前段が破綻」しているようでは実現は不可能だし、実現できるだけの優秀な人材は集まらない。

「ソフトウェア・ファースト」の実現までの道のりが程遠いにしても、どのような考え方かを理解し、「ソフトウェア・ファースト」を目指すと同時に労働環境改善に取り組み、そのような企業に優秀な人材がシフトすればソフトウェア開発を取り巻くおかしな状況は少しずつ解消していくのではないかと思う。職場の労働環境改善、ソフトウェアエンジニアのキャリア形成を含めた、地道な取り組みか大切だ。

o08usyu7231.hatenablog.com