JEITA

<組込み系ソフトウェア・ワークショップ2011:資料室>
日本の組込み系開発におけるアーキテクト
〜開発現場に求められるアーキテクトとは〜

■ 講演の概要 ■
会場の様子
会場の様子

講演

開会の挨拶: ソフトウェア事業基盤専門委員会の活動について、
ワークショップ2011の狙いと課題認識

基調講演: 私の組込アーキテクト像
事例講演1: アーキテクト育成の取組み事例
事例講演2: デジタルカメラEXILIMの開発におけるアーキテクト活動


1. 開会の挨拶:ソフトウェア事業基盤専門委員会の活動について、ワークショップ2011の狙いと課題認識
●ソフトウェア事業基盤専門員会の活動の出発点となった課題認識は、『擦り合わせなるものが日本の開発力の強みと言われているが、急激に増大している開発規模や短納期化の中で、「擦り合わせ」が強みになっているのであろうか。』であった。
●この課題認識に基づいた2005年度からの活動を総括して、2010年度までの活動内容の要点と今年度(2011年度)の活動の狙いについて報告した。2005年度からの3年間は「品質」をメインテーマに、 2008年度からの3年間は「開発スピードアップ」をテーマにしてきた。
●2010年度までの活動での課題やそれを解決するための提言では、「アーキテクチャ設計」が弱く、さらにそのための「アーキテクト」が必要であることが度重なり出てきていた。そこで今年度から始まる3年間の活動では、このアーキテクトそのものをテーマにしている。そしてこのテーマで今回のワークショップを開催した。今回のワークショップでは、「アーキテクトとは何か?」「日本の組込み開発における日本型アーキテクトとは何か?」のようなアーキテクトの定義から始め、その役割などを参加者全員で議論していきたい。
●以上からこのワークショップをスタートし、開発者視点に立脚して、組込み系ソフトウェア開発におけるアーキテクトについて、参加された方々との議論の中から明らかにしたい旨が当専門委員会委員長 五味氏より紹介された。
五味氏
JEITAソフトウェア事業基盤専門委員会委員長 五味氏


2. 基調講演:私の組込アーキテクト像
●ソフトウェアが国力を決める
 ○日本の“ソフトウェア力”方針
 ○日本のソフトウェア戦略「世界に優位に立たなくてはならない」
  ■中級の技術者・管理者を10万人養成する
  ■すりあわせ,未定義でも前進できる精神構造
  ■商品企画力,検証能力
 ○日本のソフトウェア戦略「検証のための社会・産業インフラ整備を国家的規模で進める」
 ○日本のソフトウェア戦略「社会システムを輸出できるようになりたい」
●アーキテクト Architect
 ○構想者・基本設計者
 ○ニーズ・技術・マネジメント
●私の組込アーキテクト
 ○事業をつくる
  ■ニーズ、技術、こころ
 ○技術を使う技術
  ■技術とマネジメント
  ■PDCA, QMS
 ○ついてくるかい(人望)
  ■ひと中心経営
  ■人望、自己変革、エリート、自律
 ○プロフェッションの自覚
  ■専門的職業
  ■重要、正しさ、自治
  ■資格、能力像・属性の明確化、価値観の共有、ガバナンス
飯塚氏
飯塚 悦功 教授(東京大学)

【Q&A】
●アーキテクトはスーパーマンのように思った。スーパーマンは数が多くないはず。今後、若い人がアーキテクトになるためにはどのようにすれば良いか?
 ○誰にでもなれるものではないので、単に人を集めて教育すれば良いというわけではない。アーキテクトというタイプの人種が必要で、それを使ってく体制、足を引っ張らない体制が必要。試験では適当な教育対象者を選べないので、それらしい人を選ぶことになる。アーキテクト育成教育は知識教育でない。組織の中で作っていくもの。 SESSAMEで考えたときには、国内にアーキテクトは1,000人程度で、その下にしっかしした中級技術者が10万人程度いることを想定していた。
●「心をこめて実行する」とあるが、現実にはスケジュール優先など阻害要因があり育たない。アーキテクトはマネジメント(トップ)と、どのように接していくべきか?
 ○自分一人で対処は難しい。上手に我慢すること。価値観の重要性をトップに分かってもらえるように、啓蒙することが必要。例えば今回のような別の場面で言い続けることも必要である。トップマネジメントに直訴し、圧力をかけてマネジメント変わってもらうこともできるが、短期的な効果しかない。ちょっと暴言かもしれないが、マネジメントが変わりそうもなければ、辞めてしまうというのもあり。
●アーキテクトとは一流の技術者と思う。ソフトウェア開発のアーキテクトの場合、建築のアーキテクトのように担当する範囲を特定できない。ソフトウェア開発のアーキテクトには、すべてのことを期待するのか?
 ○当然ながら、狭い領域の専門技術まで一人ではカバーできない。狭い領域の専門技術については、それぞれの領域の専門技術者を集めてくれば良い。どこが重要かという勘がある程度働かないといけないので、その分野の技術の専門家でもないといけない。あとは、マネジメント力として、人を集めてきて組織で対応する能力が必要になる。上手に人を選んで、チームを作り、課題を定義し、進捗を管理できるということである。



3. アーキテクト育成の取組み事例
●アーキテクトの必要性
 ○本当に再利用?流用開発の弊害
 ○全体が把握できていないことに起因する問題
 ○解決策:コードレベルの擦り合わせから,全体構造(アーキテクチャ)を明確にした開発へ
 ○表現することの重要性
●アーキテクトの人材像
●アーキテクト育成研修とスキル認定
 ○ソフトウェア・アーキテクチャ設計のレベル定義
 ○アーキテクチャ設計書記載項目の規定
 ○設計ビューと表記法の統一
 ○スキルレベルに応じた研修とスキル認定
 ○全社推進体制
 ○施策普及のポイント
春名氏
春名 修介 氏(パナソニック株式会社)

【Q&A】
●オープンソースなど、設計書がないソフトを利用する場合が多い。オープンソースが再利用されている事実からすると、設計書が必要なコンテンツは再利用できないのではないか?ドキュメントがないプログラムを使うことを前提に何か施策やアーキテクト育成することを考えていないでしょうか?
 ○今回の発表ではホワイトボックスの設計の話はしていない。それらを利用するアーキテクチャレベルの話をしている。もちろん、中身の設計を書くかどうかの議論は別に必要だと思う。
●ルールを単純にして制度を回すのは良いと思う。表記法を3つの図に絞った経緯は?少なくとも3つということか?
 ○昔からやってきたとおり、静的な構造と動的な構造がある。その中で静的構造図、タスク関連図、状態遷移図の3つの図を選択した。誰にでもできるようにまずは少なくとも3つの図は作るようにした。それ以外に必要なものは、必要に応じて作りなさいという方針にした。
●設計意図を残すのは、その3つの図で残すのか?文書で残すのか?
 ○なぜそういう構造にしたかは残す必要がある。そのため構造の設計の前に、要求や目論見が必要である。アーキテクチャ設計のインプットとして要求、目論見、商品戦略があり、それらを部品との関係を示す図や文章を使って残している。
●アーキテクチャ設計レベルの定義の中で、アーキテクトのレベル定義ではないと考えていいのか?
 ○アーキテクチャ設計レベルと同じである。毎年変わっていくアーキテクチャを維持することも必要なスキルである。
●アーキテクチャが既に存在している場合に、アーキテクチャを維持するだけのレベル定義はあるのか?
 ○崩れたアーキテクチャを維持することは想定していない。ソフトウェア構造が可視化できていないと、アーキテクチャが崩れているかどうかが分からない。
●教育内容について教えてほしい。応用研修の前に何か習得すべき前提はある?
 ○応用研修の前に、設計手法は知っていることが前提である。応用研修では、2日間かけて、3つの図を書けるようになる。実践研修では、3日間かけて、大きな製品を想定した演習を行う。最後は自業務の設計書を書いて発表をしている。



4. デジタルカメラEXILIMの開発におけるアーキテクト活動
●デジタルカメラの開発の特徴
 ○年間10機種程度、100万行超
 ○新機能追加や不具合検討に多くの?が関わるようになってきた
 ○画素数や画質処理が増加し、だんだんと処理速度が遅くなっていた
●アーキテクトの事例紹介
 ○開発体制とアーキテクト(組織内外のアーキテクト、複数のアーキテクト、改善施策推進チーム)
 ○アーキテクトとエンジニアの連携
 ○アーキテクチャ設計と並列にリファクタリング
 ○アーキテクチャ文書(目論見、設計方針)
 ○アーキテクトの活動事例
  ■マルチコアのソフト設計
  ■高速起動の設計
  ■グレイボックステスト
●苦労したこと,良かったこと〜アーキテクトの声〜
細田氏
細田 潤 氏(カシオ計算機株式会社)

【Q&A】
●リファクタリングしているが、マネージャーや品質管理部は品質に不安があるので実施がなかなかできない。変更に不安を持つ人をどう説得するのか?
 ○結果を見せてしまうのが早い。結果を見ると自発的に直そうということになった。 3つの推進チームにすることで、あるチームがここを治すなら、別のチームはあそこを治すというようにお互いに牽制しながら進められていた。また、全て直すのではなく、枯れていて直さなくていいなど必要な部分だけに対応するという逃げ道も用意している。
●リファクタリングによる品質(信頼性)への担保の仕方の工夫は?
 ○確かに、積極的な人はどんどん直してしまい、不具合を出してしまう。だから、今は事前にチームでレビューして、適度にブレーキをかけながら実施している。
●アーキテクトへどれだけの権限の与えるかポイントだと思う。アーキテクトはプロジェクトチームの中に置くべきか、外(品質保証)に置くべきか?
 ○どんな製品を作るかを自ら考えるのがアーキテクトだと思うので、外から力ずくというのはないと思う。
●リファクタリングとアーキテクト活動を同時進行させたのがみそだと思う。上位方針と現場改善要望との調整の工夫は?
 ○アーキテクトと改善チームの関係としては、アーキテクトが上位という感じではない。以前は10個ぐらいの改善施策がありアップアップしていた。今回はその反省を踏まえて3つのチームに分けて活動するようにした。チームごとにアーキテクトがバックアップ(支援)して、チームの中にいて一体の活動とした。


©JEITA,2011