実践!技術的負債の克服テクニック ~ワークショップ形式でマイケル・フェザーズ氏から直接学べる2日間~

「技術的負債」とは、ソフトウェア開発におけるエントロピーを表す用語です。システムが成長するにつれて技術的負債に対応する作業が困難になっていくことに、多くの企業が悩まされています。技術的負債を抱えた状況では、より良い方法があるとは知りながらも、コードの進化をコントロールするための具体的なアクションを取るのは難しいことがあります。

幸いなことに、技術的負債に対しては、従来のリファクタリングやテストから、チームで協力した書き換えや置換まで様々なテクニックがあります。

この2日間のワークショップでは、難解なコードで発生する一般的な変更シナリオを用いて、コード、プロセス、アーキテクチャのレベルで行う介入を通じ、時間をかけて作業を容易にしていく方法を学びます。

複雑化したコードに対する具体的な分析・対処方法を解説し、多くの人に読まれている『レガシーコード改善ガイド』著者のマイケル・フェザーズ氏本人による講義を、日本国内で通訳付きで受講できる貴重な機会です。ご自身のパソコンを持参いただき、マイケル・フェザーズ氏から技術的負債を解消する方法を学べます。

Technical Debt is the term that we use for entropy in software development. As systems grow, they often become difficult to work with. When this happens, we often know that we can do better, but it is hard to take concrete actions which help us get a strong sense of control over the evolution of a code base.

Fortunately, there are many techniques that we can use, from conventional refactoring and testing to team-coordinated rewriting and replacement.

In this 2-day workshop, we’ll explore common change scenarios that occur in difficult code and work through interventions we can make at the code, process, and architecture levels to make work easier over time.

開催概要

開催日程:2024年6月6日(木)-7日(金) (2日間) (申込期日:4/23(火))
講義時間:9:30 – 18:00 (開場 9:00)
開催方法:集合研修のみ
会場:東京都千代田区六番町 1-7 Ohmae@workビル 地下1階(Google Map
講義言語:英語・日本語 ※日本語通訳あり
受講費用:275,000円(税込)
支払方法:クレジットカード決済 または 請求書(銀行振込・当月末締め翌月末払い)

受講前提条件

ソフトウェア開発とソフトウェアアーキテクチャの基本的な知識とスキルがある方を対象としています。
※ 研修では御持参いただくPCの開発環境で、プログラミングを日常的に実施されていることを前提に演習を行います。演習環境のセットアップは当日会場で行いません。事前にご準備のうえご参加ください。

注意事項

  • 演習で使用するPCは、ご自身でご持参ください。
  • 演習での開発言語は、C, C++, C#, JavaScript, Javaをお使いいただけます。
  • 持参するPCには、演習のための開発環境(御自身が使い慣れている、いつもお使いのエディターやコンパイラ)を御自身でインストールした状態でお持ちください。
  • 教材等は当日PDFで配布します。会場ではWi-Fiが使用可能ですが、インターネット接続に制限のあるPC(接続可能ポートが制限されている等)では、接続に支障がある場合がございますのでご注意ください。
  • お申込みいただいたコースが最少催行人員に満たないとき、開催を中止させていただくことがございます。その場合、2024年5月10日(金)までに開催中止のご連絡をし、お客様からお預かりしている代金がある場合は返金させていただきます。その際、弊社より別途ご連絡のうえ、可能な限り他の開催日程をご案内させていただきます。

スケジュール

 

Day 1
  • 講義:技術的負債の歴史と定義
  • 演習/ディスカッション:技術的負債の特定/評価
  • 講義:技術的負債をもたらす要因
  • 講義:システムのトリアージ
  • デモ・演習:スクラッチリファクタリング/リファクタリングプランの作成
  • 講義:テストカバレッジのための依存関係の断ち切り方法
  • 講義:徐々に発見するためのツールとしてのテスト
  • 演習:仕様化テスト
  • Presentation – The History and Definition of Technical Debt
  • Exercise/Discussion – Technical Debt Identification/Assessment
  • Presentation – Forces Leading to Technical Debt
  • Presentation – System Triage
  • Demo/Exercise – Scratch Refactoring / Developing a Refactoring Plan
  • Presentation – Dependency Breaking Practices for Test Coverage
  • Presentation – Testing as a Tool For Progressive Discovery
  • Exercise – Characterization Testing
Day 2
  • 講義:テスト可能性と良い設計の相乗効果
  • 講義:モジュール化の目的
  • 演習:既存のコードでのドメインの発見
  • 講義/演習 – 条件ロジックの削減
  • 講義:コンフィギュレーションが重視されるシステムの戦略
  • 講義:AIガイダンスによる負債の削減
  • 講義/演習:透明性の高い設計品質プラクティス
  • 講義:技術的負債の組織的な要素
  • Presentation – The Synergy Between Testability and Good Design
  • Presentation – Modularity Goals
  • Exercise – Domain Discovery in Existing Code
  • Presentation/Exercise – Conditional Logic Reduction
  • Presentation – Strategies for Configuration Intensive Systems
  • Presentation – Reducing Debt with AI Guidance
  • Presentation/Exercise – Transparent Design Quality Practices
  • Presentation – The Organizational Component of Technical Debt.