
「新人SEに学ばせるべき開発手法は、ウオーターフォール開発か、アジャイル開発か」。筆者が最近気になったテーマだ。
日経 xTECHでは先日、IT企業の新人SE研修を取り上げた特集記事を掲載した。人工知能(AI)やクラウドといった新技術の広がりや新人のスキルの多様化、ビジネス環境の変化などに対応すべく、新人SE研修を見直す企業の取り組みを紹介した。
各社が様々な工夫を凝らす研修の中で、筆者が注目した取り組みの1つが、システム開発プロセスの教育に関するものだ。NTTデータは2019年の新人SE研修で、アジャイル開発をウオーターフォール型開発プロセスよりも先に教えるという。
従来国内の多くのIT企業では、ウオーターフォール型の開発プロセスを習得したエンジニアが、アジャイル開発を学んでプロジェクトに入るのが一般的だったと言える。日経BP社が実施しているアジャイル開発の講座でも、中堅やベテランと言える年代の受講者が多い。NTTデータの研修のように、新人SEにアジャイル開発を先に教えるというやり方は、まだ珍しいと言えるだろう。
この取り組みを知り、冒頭に挙げた疑問が浮かんだ。今も企業情報システム開発の主力であるウオーターフォール開発と、最近普及が加速しているアジャイル開発。それぞれに特徴があり、教育という観点からはもちろん両方を知っておくのがよいのは言うまでもない。しかしもし仮にどちらか1つしか選べないとしたら、新人SEにはどちらを学ばせるべきなのだろうか。
新人研修という枠組みでは、「研修後に配属される部署が採用している手法を学ばせるべきだ」というのが1つの答えだろう。日本では現状、多くのIT企業においてウオーターフォール開発のプロジェクトのほうが多い。おのずとウオーターフォール開発を学ばせることが優先されそうだ。
しかし筆者は、配属後にウオーターフォール開発を担当する場合でも、アジャイル開発を学ばせるべきなのではないかと感じている。そこで、新人SEがアジャイル開発を学ぶことの意義を筆者なりに考えてみたい(NTTデータの研修内容を基にしたものではないことはお断りしておく)。
新人にこそ学んでほしい「アジャイルソフトウェア開発宣言」
新人SEがアジャイル開発を学ぶことが良いと思う理由の1つは、「アジャイルソフトウェア開発宣言」の内容を知っておくことは、今の新人SEにとって重要だと思うからだ。
アジャイルソフトウェア開発宣言は、アジャイル開発の基本的な考え方を17人の著名なソフトウエアエンジニアが2001年にまとめたものだ。「プロセスやツールよりも個人との対話を価値とする」「包括的なドキュメントよりも動くソフトウエアを価値とする」といったその内容は、従来のウオーターフォール型開発の問題へのアンチテーゼとも言えるものだ。
私たちは、ソフトウェア開発の実践あるいは実践を手助けをする活動を通じて、よりよい開発方法を見つけだそうとしている。この活動を通して、私たちは以下の価値に至った。
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする。すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく。
この宣言は、この注意書きも含めた形で全文を含めることを条件に自由にコピーしてよい。
出所:http://agilemanifesto.org/iso/ja/manifesto.html
ただしここに書かれていることは、ウオーターフォール開発を手掛けているITエンジニアにとっても異論はないだろう。
今やどの企業にとっても、ITを使って新たなサービスを生み出したり、事業を変革したりする「デジタルトランスフォーメーション(DX)」が重要な課題となっている。ITエンジニアには、システムの開発でその課題に応えることが求められる。それには、ユーザーと一緒に新しいビジネスを実現するシステムの要件を考えたり、システムの開発中や稼働後にも仕様変更や追加開発を求められたりすることが多くなる。
アジャイルソフトウェア開発宣言には、そのための重要な要素が詰まっている。DXの実践にアジャイル開発が向くと言われるのは、この考え方が根底にあるからだと言ってよいだろう。これらのことは、たとえ開発手法がウオーターフォールだとしても、避けては通れなくなっている。新人SEなら、全員が学んでおくべきものだ。