Softwareを取り巻く状況
Softwareは人間の生命にかかわる航空宇宙、軍事、医療分野や、普段の生活を安全・快適に暮らすための社会的なインフラ、社会に価値を提供する企業経営を含め、我々の普段の生活に深くかかわっています。
ところが、ここ40年程度で急成長を遂げたSoftware産業はまだまだ未成熟でもあり、多くの課題が残る脆弱な分野・業界でもあります。
最近では社会的なSoftwareへの依存率が高まり、より複雑化・大規模化しているためにSoftwareの不具合が原因で新聞紙面をにぎわす多くの社会的な事故も発生しています。
しかし利便性のよさから今後もますますSoftwareへの依存率は上がっていくことでしょう。
求められるSoftwareを作る ということ
目に見える、手で触れるモノを作り上げる製造業とSoftware開発は似ていて非なるものです。
目に見えない、手で直接触ることができない論理の集合体(Software)を作り上げる過程は、同じモノを「機械仕掛け」で大量に作り上げるのとは異なり、生身の「人間」が大いに介在し、自らの思考と その行動によって作り上げる=”大いに芸術的な側面がある”と言えます。その一方で製造業の確立された生産技術や管理方法に見習うべき面も存在します。
人間は機械ではありませんので、Softwareのものづくりをルールや手順書等をむやみに充実させただけではそのQualityを安定・向上させることはできません。
そして、作り上げる製品(プロダク ト)は目に見えませんので、その管理は簡単ではありません。
たとえば巷で流行のISO9001:QMS要求事項を形式的に網羅した(別のたとえではCMMIに記述されたプラクティスを単に表面的に真似た)規程集や手順書・様式を取り揃え、逐一従えば求められるSoftware Qualityが得られる、成果が安定、向上するということにはなりません。
反面、要員ごとに好き勝手、気ままに作業を行なうだけ、あるいはその場しのぎの人海戦術だけではさらにうまくいかないでしょう。(大混乱状態となるのが目に見えます)
多くの組織が一部の経験則だけに頼ったままであったり、良くしようと努力していなかったり、あるいはどうしてよいか分からずに立ち往生していたり、その場しのぎの対応を繰り返したり、不適切な一律の強制アプローチを繰り返す組織も多いと想定されます。
ではどのような対応が必要なのか
参考として基本的な道筋を記載します。
大枠の考え方ですので絶対視する必要はありませんが、一つでも多くの要素が満足されれば成果が変わっていく可能性があると思われます。
・まずは「Software Quality」とは何かを理解すること
(立ち向かう相手の特徴・特性を熟知することが勝利への近道)
・一人ひとりの技術者、管理者がプロフェッショナルとしての意識を高めて日々必要な知識・技能を獲得し、リスクを取って難題に立ち向かうこと
(頭だけで分かるのではなく、実際にやってみて体得する。)
・個人だけでなく、組織として対応すること
(個人の力を活かす環境を作り、全体がうまく動くようにするのは組織の役割。)
・得られた結果(うまくいったこと、うまくいかなかったこと)をフィードバックし、次につなげること
(やりっぱなしは成長を阻害する。経験を通じて次につなぐ、明日はもっとよい仕事をする。)
・これらの取り組みを経て、目標とするQualityを実現する技術、技法、管理手法、アプローチを意図的に使いこなして求められるSoftware Qualityを実現できるようになること
(道具や知識、行動を総動員して、意図的に結果を出す度合いを高める。)
・さらによりよい結果を出せるように、以上のサイクルを何度も意図的にまわすこと
(改善に終わりはない、明日はもっとよい仕事を。)
<結論>
Softwareを作り上げるための唯一無二の正解はありません。
対象組織の状態や作り上げるSoftwareの特性、制約条件に合う適切な考え方と対応が存在するはずですので、どこかでやっている手法や様式をそのまま持ち込んでも、うまくいかないことが多いはずです。
自分達の力で、自分達の環境やスキル、作り上げるSoftware、Systemに求められる事項を把握し、必要な対応方法、ツールや情報、管理方法を組み立てなければなりません。
しかもいきなり正解は導けませんので、[考えて→やってみて→結果を振り返る]サイクルをまわしながら徐々に正解に近づける対応が必要です。
これらのように成果を安定させる、向上させるということに対して、人間(技術者・管理者・経営者・顧客)の思考とその結果である行動の質が重要な鍵を握っていると言えるでしょう。
※このサイトでは、人間の思考、その結果である行動の質を高めるためには何が必要なのか、どのような状態に対して何が適切な考え方や対応なのかを様々な切り口から参照できるように必要な情報を提供していきます。