【導入事例】ソフトウェア開発の全工程を体験~開発現場で必要な基礎力を養う~昨今のシステム開発は大規模・複雑化しているため分業化が進み、業務プロセス全体が見えづらい状況にあります。開発者を取り巻く環境が広く複雑になったことで、新人が覚えることも多様化してきている一方、新人教育にかけられる時間は限られています。EV3」(以下、マインドストーム)を使い、ものづくりの楽しさを実感しながら開発の全工程を体験できる新入社員研修を2004年から提供し続けています。現在では409社がこの研修を採用し、12,000人を超える受講者がいます。実際にマインドストームを用いた研修を導入している3社に、導入の経緯やその効果についてインタビューしました。技術者として、そしてチームの一員としての自覚を持つものづくりの楽しさを早期に経験させ、新入社員研修への意欲を高めたいと思い、新入社員向けに「システム開発体験コース(UML-EV3ソフトウェア)」を実施しています。技術的な知識が乏しくてもソフトウェア開発プロセスを体験できるコンテンツとして、マインドストームに着目しました。「ものづくり導入研修」として開講しています。UMLやV字工程など後段の研修と繋がることもあり、入社直後のカリキュラムとして、重要な役割を担っています。弊社はキヤノンの企業DNAである進取の気性、キヤノングループ共通の行動指針である三自の精神を踏まえ、「独創性を持ちながらチームワークを発揮できる人材」を求めています。早期育成により、一人の技術者として、そしてチームの一員として活躍できる人材の育成に取り組んでいます。研修では受講者全員が楽しみながらソフトウェア開発工程の一連を学び、ものづくりの楽しさを実感できました。自分が設計・実装した内容がそのままロボットの動きとなって表れるところに醍醐味があり、研修意欲の向上につながっていると感じます。本研修を皮切りに新入社員研修が半年間続きますが、以降の研修においても、上流工程の成果物が下流工程にも影響を及ぼすことを早い段階から意識して取り組む姿勢が見られました。本研修のグループワークを通じて協力しながら作業を進められるようになり、新人同士の結束も高まりました。・マインドストームを通じて、楽しみながらソフトウェア開発の流れを学ぶことができた。・プログラミングはあくまで要件を実現するための手段であり、その前工程である設計の重要性を理解できた。・ソフトウェア開発は実装よりも設計の方が重要で、設計の良し悪しが後工程に大きく影響することを学んだ。・チームで開発する際には、チーム内での情報共有がとても大切であることを学んだ。・開発者都合ではなく、お客様目線で考えることが重要であることを理解できた。・プログラムは思った通りに動かない、書いた通りに動く、ということを実感した。開発プロセス全体の把握から品質向上へスムーズな業務進行のために、開発プロセスの全工程を体験できる研修が必要でした。理解を含め、ソフトウェア開発工程全体を見る目を養うことで、長い目で見てソフトウェアの品質の向上につなげたい。」という声が上がっていました。それらを受け検討した結果、アフレルの研修「オブジェクト指向開発実践コース(UML-Java)」が最適だと考え、導入に至りました。実際には、オブジェクト指向による設計から実装、テストまでのソフトウェア開発の工程全体が体験できる実践的な講座を行っています。設計はUMLを使用して記述、各々の工程では「何を表すかによってどの図を用いるべきか」「残すべき情報は何であるか」を、疑似開発を通じて学習します。設計からソースコードを起こす方法を知ることで、設計側の意図を反映したソースコードの作り方を学びます。研修で開発プロセスの全工程を体験することで、受講者の視野が広くなりました。実際の業務では、アウトソーシングも含めて業務が分担され、担当者はその一部として業務を行うため、一連の開発業務を経験することは難しいです。研修とはいえ、それを経験できたことは受講者の糧になったと思います。自分の担当している技術への理解・習熟度が向上し、以前より自分の意見を述べるようになり、また他者の意見をよく聞くようになりました。研修を通じて他部署メンバーとのコミュニケーションの機会が増えており、良い副次効果と考えます。・これまでは、講義でそれぞれの工程についてINPUTとOUTPUTで繋がっていることを学んでいたが、体感はできていなかった。図示化(UML)記述を書くことはよくあるが、工程間で結びつけがなく、記述の理解も今一歩だった。今回の研修で、開発の一連の工程がINPUTとOUTPUTで結び付けられることを実際の作業を通して学べ、理解できた。設計と実装についても1対1で見通しがよくなり、レビューの向上、メンテナンス性やテストの向上が図れると感じた。・要求分析から完成物を動かすところまで開発工程の全体を体験できたことは、良い経験になった。UMLの概要は本で読んだことはあったが、今回の研修を通じて実際に使う感覚を体験できて良かった。私はプログラミングの経験が浅いので、プログラミングが得意な方たちと一緒に作業できたのは、とても刺激になった。・UML等の手法をもちいて開発を行えば、完成度の高いソフトウェアになる。なによりも、ソフトウェアの仕様が開発に携わっていない人にもはっきりと分かるようになり、メンテナンス等に大変有益である。・オフショア開発する際にUMLで記述した設計書を使用すれば、日本語の記述の曖昧さを回避できそうだと感じた。・マインドストームを使ったシステム課題は初心者と開発経験がある人のどちらにも合っていて、よいテーマだった。自ら発見し、周囲を説得していく人材を育てるこれまでの新人研修は、配属後の即戦力を育成するという面が強く、より高度な知識や技術を獲得できる基盤を作るという視点が少なかった為、「組込み機器の開発に必要な基礎スキルを身に着けること」という、本来のあるべき姿への第一歩として見直しました。そこで採用になったのが、アフレルの「組込みシステム開発実践コース(UML-C++)反復開発版」でした。新入社員のソフトウェア基礎教育の集大成として総合演習に活用しています。年々早くなる市場のニーズの変化に素早く対応する開発技法を学ぶため、例年実施していたウォータフォール型の開発演習から反復開発型の演習に内容を変更しました。「設計⇒実装⇒テスト」を繰り返し、前後の繋がりが強く意識できるようになった結果、設計で品質を作りこむ意識も高まりました。今後、新たな製品やサービスを生みだすことのできる人や、自ら関心事を発見し、それを周囲に説得力を持って広げていくことのできるリーダーやメンバーが鍵を握ると考えています。私たちは、そうした人材を育成していきたいです。開発に関わる全工程を体験し、各々の段階で重要なことを認識するので、配属先でのOJTに効果的につなげることが出来ました。見える化を実施したので、メンバー間のコミュニケーションが増え、理解の共有ができたと同時に、研修内容が実用的なので受講者がとても興味を持っていることが感じ取れました。・要求分析から内部設計まで綿密に行うことでプログラムの構造が明確になり、実装時や人に説明する時などで大いに役立った。実際に作業することで身に染みた。・大学の講義では設計か実装かどちらかしかやったことがなかったので、今回の研修ではドキュメントとプログラミングの関係性をしっかり学べてとてもためになった。相手と相談しあい、レビューしてもらうことにより、新しい考え方、プログラミングのスタイルも身についたので非常に満足している。・ユースケース図は重要だと感じた。どの部分がシステムであるかの境界の探し方やアクターの判断等はしっかり考えて決定する必要があると思った。今回のコースを通して、ステートマシン図とクラス図の記述は特に今後生かしていきたいと思った。開発中に問題が発生した場合、コードをひたすら眺めるより、図を見た方が問題部分の発見が圧倒的に早いことがあったので、利用したい。・今回学んだことは各設計工程の意味と範囲だった。ユースケースはそのシステムの機能と考えていたが、「そのシステムを受けるアクターへのサービス」であるということを学んだ。外部設計と内部設計の違いがあいまいだったが、理解度が増した。