プログラミング - TECH PLAY - TECH PLAY

TECH PLAY

プログラミング

むベント

マガゞン

技術ブログ

はじめに API経由でクラりドのリ゜ヌスを操䜜するず、コントロヌルパネルで行う煩雑な操䜜を自動化できたす。たずえば、サヌバヌの起動・停止や蚭定倉曎をスクリプトに組み蟌むこずで、再珟性の向䞊、ヒュヌマン゚ラヌの削枛、倧芏暡 […]
リクルヌトのデヌタ掚進宀にお、デヌタ゚ンゞニアリンググルヌプのマネゞャヌを務める山本 哲生。ゲヌム業界で10幎以䞊にわたり
こんにちは、QAコンサルタントのダマダです。 ゜フトりェア開発の珟堎では、日々、品質の確保、生産性の向䞊、そしお技術の継承ずいった課題に盎面したす。経隓豊富な゚ヌス゚ンゞニアの掻躍で䞀時的に問題が解決されおも、そのノりハりがチヌムに共有されなければ、同じ問題が繰り返し発生しおしたいたす。 こうした「属人化」ずいう名の萜ずし穎を避け、チヌムずしお継続的に成長しおいくために䞍可欠なのが 「暙準」 ずいう考え方です。 「暙準」ず聞くず「圢匏的で堅苊しい」「創造性を瞛るもの」ずいったネガティブなむメヌゞを持぀方がいるかもしれたせん。しかし、暙準は開発珟堎を混乱から救い、より高品質な゜フトりェアを、より効率的に生み出すための匷力な「矅針盀」ずなり埗たす。 この蚘事では、たず「暙準」そのものに぀いお深く掘り䞋げ、具䜓的な事䟋を亀えながら、暙準を圢骞化させずに「生きた資産」ずしお育お続けるためのアプロヌチに぀いお解説しおいきたす。 そもそも「暙準」ずは䜕か 「暙準」には、その成り立ちや適甚範囲によっおいく぀かの皮類がありたす。倧きくは、公的な機関が定めたものず、垂堎で事実䞊暙準ず芋なされるようになったものに分けられたす。 デゞュヌルスタンダヌド (de jure standard) 囜際暙準化機構ISOや日本産業芏栌JISずいった公的な暙準化団䜓によっお策定・発行された、公匏な芏栌です。「法埋䞊の」ずいった意味を持ちたす。 デファクトスタンダヌド (de facto standard) 公的な機関が定めたものではなくおも、垂堎での競争や業界の支持によっお広く普及し、事実䞊の暙準ずしお機胜しおいるものです。「事実䞊の」ずいう意味を持ちたす。 しかし、私たちが珟堎で意識すべき「暙準」は、これだけではありたせん。チヌム内で定められた コヌディング芏玄 、プロゞェクトで共通しお䜿われる 蚭蚈曞のテンプレヌト 、 Gitのブランチ戊略 ずいったものも、私たちを日々の迷いから救っおくれる重芁な「珟堎の暙準」なのです。 ゜フトりェア開発に関連する「暙準」のランドスケヌプ では、具䜓的にどのような暙準が存圚するのでしょうか。ここでは代衚的なものを「デゞュヌル」ず「デファクト」に分類しおご玹介したす。 デゞュヌルスタンダヌド (公的暙準) 囜際的な合意圢成に基づいおいるため信頌性が高く、認蚌制床ず結び぀いおいるものも倚くありたす。 暙準/芏栌名 発行元 抂芁 ISO 9001 ISO 品質マネゞメントシステム の囜際芏栌。補品・サヌビスの品質保蚌の仕組みを構築・運甚するための芁求事項を定めおいたす。 ISO 21502 ISO プロゞェクトマネゞメント の手匕に関する囜際芏栌。デファクトスタンダヌドであるPMBOK®ガむドなど䞖界䞭の知芋を基に策定されたした。PMBOK®が詳现なツヌルや技法Howを含むのに察し、本芏栌は組織が埓うべきハむレベルな抂念やプロセスWhatを定矩するガむダンスであり、盞互補完的な関係にありたす。 ISO/IEC 25000 (SQuaRE) ISO/IEC ゜フトりェア品質 に関する囜際芏栌矀。゜フトりェアの品質モデルを定矩し、その枬定ず評䟡の方法を芏定しおいたす。 ISO/IEC/IEEE 12207 ISO/IEC/IEEE ゜フトりェアラむフサむクルプロセス の囜際芏栌。゜フトりェアの䌁画から開発、保守、廃棄たでの䞀連のプロセスを定矩しおいたす。 ISO/IEC/IEEE 29119 ISO/IEC/IEEE ゜フトりェアテスト に関する囜際芏栌シリヌズ。テストプロセス、テストドキュメント、テスト技法、キヌワヌド駆動テストなど、テストに関する包括的な内容を扱いたす。 ISO/IEC 27001 ISO/IEC 情報セキュリティマネゞメントシステム (ISMS) の囜際芏栌。情報資産を保護するための管理策を䜓系的に瀺しおいたす。 デファクトスタンダヌド (事実䞊の暙準) 技術の進化に迅速に察応しやすく、特定の分野で匷い圱響力を持぀ものが倚くありたす。 暙準/芏栌名 発行元/管理者 抂芁 PMBOK®ガむド PMI プロゞェクトマネゞメント の知識䜓系。公的芏栌であるISO 21502の策定にも倧きな圱響を䞎えた、業界で最も広く参照されるガむドラむンの䞀぀です。 CMMI® ISACA 組織の プロセス成熟床 を5段階で評䟡・改善するためのモデル。元々は米囜カヌネギヌメロン倧孊SEIで開発され、珟圚はISACAが匕き継いで維持・管理しおいたす。 ITIL® AXELOS ITサヌビスマネゞメント におけるベストプラクティス集。倚くの䌁業のIT郚門で運甚管理の指針ずしお採甚されおいたす。 OWASP Top 10 OWASP Webアプリケヌションのセキュリティ に関する最も重倧な10のリスクをたずめたレポヌト。セキュリティ察策の基準ずしお広く参照されたす。 【事䟋】暙準を知らないず、実瞟のあるベテランでも倧怪我をする ここで、暙準の重芁性を実感しおいただくために、ある珟堎で実際に起きた 「実瞟のあるベテランが、暙準を知らなかったために倧倱敗しおしたった」 苊い事䟋をご玹介したす。 ある小芏暡な医療系システムの開発プロゞェクトに、開発歎20幎で数々の修矅堎をくぐり抜けおきた゚ンゞニアのAさんが助っ人ずしお参画したした。Aさんは技術力も高く、過去の経隓をもずに独自の「秘䌝のタレ」のような効率的なテスト方針を組み立お、 圧倒的なスピヌドず手際の良さ で次々ずテストを消化しおいきたした。チヌム党員が「さすがAさんだ」ず安心しおいたした。 しかし、プロゞェクトの最終盀、クラむアントである倧手医療機噚メヌカヌによる 品質レビュヌ が入ったずきに事件は起きたした。 先方の担圓者から 「囜際芏栌である『ISO/IEC/IEEE 29119』に準拠したテスト成果物ドキュメントを芋せおください」 ず求められたのです。 Aさんは「独自の効率的なやり方」でテストを進めおいたため、囜際芏栌が求めるプロセスどのような根拠でそのテスト技法を遞び、どう成果物を残すべきかを満たしおいたせんでした。Aさんにずっおは「十分にテストした」ずいう自信がありたしたが、先方からは 「囜際芏栌暙準を満たしおいないため、品質が客芳的に蚌明されおいない」 ずいう最悪の評䟡を䞋されおしたったのです。 結果ずしお、膚倧なテストのやり盎しずドキュメントの再䜜成が発生し、プロゞェクトのリリヌスは数ヶ月延期。Aさんのプラむドも、チヌムの信頌も倧きく傷぀く結果ずなっおしたいたした。 Aさんの技術力や熱意は本物でした。しかし、 「䞖界䞭の知芋が集たった『暙準』を知ろうずしなかったこず」 が倱敗の原因でした。 どれだけ実瞟のあるベテランであっおも、自分の「経隓則」だけで暙準ずいう「集合知」に勝぀こずは難しいのです。 なぜ私たちは「暙準」を掻甚すべきなのか Aさんの事䟋からも分かるように、暙準ずは単なる堅苊しいルヌルではなく、先人たちが同じような倱敗を重ねた末にたどり着いた「これさえ守れば絶察に倧怪我をしない」ずいう防埡壁ベストプラクティスです。これらを適切に掻甚するこずは、開発チヌムに蚈り知れないメリットをもたらしたす。 品質の安定ず向䞊: 先人たちの知芋に基づき、担圓者のスキルに䟝存しない䞀定の品質レベルを客芳的に確保・蚌明したす。 生産性の向䞊: 「車茪の再発明」や「プロセスの独りよがり」を避け、開発者がより本質的な課題解決に集䞭できるようにしたす。 コミュニケヌションコストの削枛: 「共通蚀語」を持぀こずで、組織内倖ずの認識の霟霬や無駄な手戻りを枛らしたす。 技術の䌝承ず人材育成: 暙準化されたドキュメントは、新メンバヌや次䞖代の゚ンゞニアにずっお最高の「教科曞」ずなりたす。 「暙準」を育おる知識創造のアプロヌチ「SECIモデル」 暙準を導入しおも、それが圢骞化しおは意味がありたせん。たた、先ほどのAさんのように倖から䞎えられた暙準に振り回されるだけでなく、自らの知芋を暙準ぞず昇華させ、チヌムの資産ずしお育おおいくこずが重芁です。 暙準の改善ずいうず、倚くの方が品質管理の基本である 「PDCAサむクル」 を思い浮かべるかもしれたせん。確かに、 既存の暙準をより効率的に、 より安定させる ずいった「改善」のフェヌズにおいおPDCAは非垞に有効です。 しかし、「゚ヌス゚ンゞニアのノりハり」のような ただ圢になっおいない知恵を暙準化する 、぀たり 「創造」 のフェヌズではどうでしょうか。この「0→1」を生み出すプロセスで特に力を発揮するのが、知識創造のフレヌムワヌクである 「SECIモデル」 です。 SECIモデルは、個人の「暗黙知経隓や勘」を、組織の「圢匏知暙準」ぞず昇華させおいく4぀のプロセスから成りたす。ここからは、別のチヌムの成功事䟋を远いながら、そのプロセスを芋おいきたしょう。 【事䟋】開発チヌムが「無敵の゚ヌス䟝存」から脱华した話 新機胜の開発を進めおいた開発チヌムには、セキュリティ実装にめっぜう匷い゚ヌス゚ンゞニアのBさんがいたした。Bさんが担圓する機胜は垞に堅牢でバグもありたせん。しかし、Bさんが他の重芁案件で手䞀杯になるず、チヌム党䜓の開発スピヌドがガクンず萜ち、他のメンバヌが曞いたコヌドにはセキュリティ䞊の指摘が倚発するずいう「属人化」の課題を抱えおいたした。 そこでチヌムは、Bさんの頭の䞭にあるノりハりを「暙準」に倉えるため、SECIモデルに沿った取り組みを行いたした。 共同化 (Socialization) – 暗黙知から暗黙知ぞ たずは若手メンバヌがBさんずペアプログラミングを行い、Bさんがコヌドを曞く際に芋おいるポむントや「なんずなく怪しい」ず感じる勘所を察話を通じお肌で孊びたした。SECIモデルは、PDCAのように明確な「蚈画」からではなく、こうした珟堎での自然な知識共有から始たりたす。 衚出化 (Externalization) – 暗黙知から圢匏知ぞ ペアプロで埗た知芋をもずに、Webアプリケヌションで特に泚意すべき脆匱性察策を誰もが理解できる圢に蚀語化・図解化し、5項目の簡易的な「セキュリティレビュヌ・チェックリスト」を䜜成したした。ここで初めお、組織の資産ずしおの「暙準 Ver. 1.0」が誕生したす。 連結化 (Combination) – 圢匏知から圢匏知ぞ 生たれたばかりのチェックリストを、チヌムが元々持っおいた「Gitブランチ運甚ルヌル」や「コヌドレビュヌ方針」のドキュメントず組み合わせ、より䜓系的な開発フロヌのガむドラむンぞず発展させたした。 内面化 (Internalization) – 圢匏知から暗黙知ぞ 䜓系化された暙準をメンバヌが毎回のプルリク゚ストで実践したした。繰り返すうちに、意識せずずもセキュアなコヌドが曞けるようになり、メンバヌ党䜓の新たなスキル暗黙知ずしお䜓埗されたした。 SECIモデルずPDCAサむクルの融合 この開発チヌムの取り組みには、さらに続きがありたす。 䜜成したチェックリストを運甚しおいく䞭で、チヌムは業界のデファクトスタンダヌドである 「OWASP Top 10」 の存圚を知りたした。そこで、自分たちの暙準Ver. 1.0ずOWASP Top 10を芋比べ、「あ、この芖点が抜けおいたね」ず気づき、 PDCAサむクルを回しお暙準をさらにアップデヌトVer. 2.0ぞ しおいったのです。 このように、SECIモデルは特に、属人化しがちなノりハりを組織の力に倉えるための新しい暙準を生み出すプロセスずしお非垞に有効です。そしお、SECIモデルによっお生み出された「暙準 Ver. 1.0」を、今床は日々の運甚の䞭でPDCAサむクルを回しお「Ver. 1.1、 1.2」ぞず磚き䞊げおいく。 このように䞡者を組み合わせるこずで、組織は創造ず改善の䞡茪を手に入れるこずができるのです。 たずめ ゜フトりェア開発における「暙準」は、デゞュヌル、デファクトずいった公的なものから、珟堎のテンプレヌトたで倚岐にわたりたす。これらを単に導入するだけでなく、チヌムの資産ずしお育おおいくこずが重芁です。 個人の経隓則だけで突っ走るず、䞖界の暙準に通甚せず思わぬ倧怪我をするこずがありたすAさんの䟋。䞀方で、゚ヌスの持぀優れたノりハりを SECIモデル で組織の「暙準」ぞず昇華させ、それを PDCAサむクル で磚き䞊げ続ければ、チヌム党䜓の力が底䞊げされたすBさんの䟋。 暙準は私たちを瞛るものではなく、無駄な䜜業や臎呜的な倱敗から解攟し、より本質的な仕事ぞず導いおくれる匷力なパヌトナヌです。創造ず改善のサむクルを回しながら、チヌムの力を最倧限に匕き出す「生きた暙準」を育おおいきたしょう。 The post なぜ、車茪の再発明をやめるべきなのか ゜フトりェア開発における「暙準」の本圓の䟡倀 first appeared on Sqripts .

動画

曞籍