Photo by Kyle Murphy
こんにちは。谷口です。
エンジニアのみなさんは、ふだんどのような開発手法(ウォーターフォール、アジャイルなど)で仕事をしていますか? また、現職の開発プロセスに不満はありますか?
BlueMemeが昨年12月に実施したアンケート調査によると
- 見積もった工程と実績に乖離がある
- 仕様工程による手戻りが多い
- テスト工程が削減できない
といった課題を感じているエンジニアが多いようです。現職に対してこうした不満があるエンジニアの方は多いと思いますが、みなさんはいかがでしょうか?
今回は、エンジニアの開発手法に抱えがちな不満やその原因などについてお話しします。
現状採用されている開発手法の種類
「勤務先でおもにどのような開発プロセスを採用しているか」という質問に対して、一番多かった回答が「ウォーターフォール型」で58.2%、次いで「アジャイル型」が12.1%となっています。
(出典)エンジニアの66.3%が「現在の開発プロセスに課題あり」 新規技術を活用した大規模なシステム開発には「アジャイル型」を含んだ開発プロセスに支持集まる
なお簡単に説明すると、ウォーターフォールは要件定義→設計→開発→テスト→リリースといった複数のプロセスで構成されています。上から下へ水が流れるように不可逆な時系列順で進めるため、最初の要件定義や設計で仕様を固めた上で開発やテストにとりかかります。
一方、アジャイル開発では、チームで要件定義→設計→開発→テスト→リリースといったひとまとまりを、小さいサイクルで繰り返していきます。比較的リリースまでの期間短縮や、仕様変更にも対応しやすいスタイルとなっています。
現状の開発手法に対する課題感・不満
現職の開発プロセスに課題を感じた経験がある人に聞いた「具体的な課題内容」としては、一番多かった回答が「見積もった工程と実績に乖離がある」で75.5%、次いで「仕様工程による手戻りが多い」が67.9%、「テスト工程が削減できない」「開発のスピードが遅い」が同率で30.2%でした。
また、「勤務先が採用している開発プロセスを変える必要があると思うか」という質問では、「とても思う」が13.2%、「思う」が66.0%でした。
(出典)エンジニアの66.3%が「現在の開発プロセスに課題あり」 新規技術を活用した大規模なシステム開発には「アジャイル型」を含んだ開発プロセスに支持集まる
なぜこのような不満や課題が出てくるのか?
要件を聞く前から金額と納期だけが決まっている(≒ゴールが決まっていないまま走り出さねばならない)
まず、アンケートでもっとも多かった「見積もった工程と実績に乖離がある」という課題について。
特にウォーターフォールで進めるプロジェクトの場合、「見積もった工程と実績に乖離がある」「仕様工程による手戻りが多い」といった課題を解決するには、最初の段階でどれだけ正確に見積もれるかが非常に重要です。
しかし実際、特に受託で大きなシステムを開発する場合などは、なかなかうまくいきません。
例えば、どこまでの処理をシステムが担当して、どこまで作業は人力でやるのか、最低限の機能を実装すればよいのか、実際の運用が進んだ段階がゴールになるのか……といったことがまったくわからないまま見積もりをして、要件定義や設計にとりかからなければならないケースも多くあります。
進めていくうちに最初の見積もりよりも要件がどんどん膨れ上がっていくことも珍しくないため、まさに「見積もった工程と実績に乖離がある」「仕様工程による手戻りが多い」といった問題が絶えません。
テスト等の自動化が進んでいない
画面のスクリーンショットを撮る、Excelに貼る…といったテスト工程を延々と手作業でやっていた経験のある人もいるのではないでしょうか。
テストは新人の仕事という企業も多いですが、すべてのテストを手動でおこなうのは効率が悪く、人的ミスも発生しやすくなってしまいます。また、テストに人員や時間を割くとなると、どうしてもコストがかさみます。
そこで最近は多くの企業がテストを自動化し、自動化のためのテストツールも広く導入されています。
ただ、前述の課題感の質問に対し「テスト工程が削減できない」と答えている人が多いことからもわかるように、まだまだ技術の導入に積極的でない企業や、自動化が遅れている現場も少なくありません。
組織の開発手法を個人で変えるのは難しい…
「勤務先が採用している開発プロセスを変える必要があると思うか」という質問では、「とても思う」が13.2%、「思う」が66.0%に達しました。
多くのエンジニアが現職の開発手法に疑問を感じているわけですが、現実に大きな組織の仕組みや構造を自分の力だけで変えるのは簡単ではありません。
開発手法ほど大きなものでなく、例えばひとつの自動化ツールを導入するに当たっても、企業や組織によってはまず上層部や発注元のお許しが必要だったりして、ほぼ不可能な現場もあるでしょう。
ただ、組織を変えるのは難しくても、転職や異動を通して自分自身が移動することはできます。
やみくもな転職を勧めているわけではないですが(むしろ考えなしに転職するのは危険です)
- 自分は今後どのようなエンジニアになりたいのか?
- どんなシステムやサービス、技術にかかわっていきたいのか?
- そのためには今の環境に居続けたほうがよいのか? 移動したほうがよいのか?
- 移動するならどのような環境がよいか?
といった項目は一度考えてみるとよいのではないでしょうか。
(参考)エンジニアの66.3%が「現在の開発プロセスに課題あり」 新規技術を活用した大規模なシステム開発には「アジャイル型」を含んだ開発プロセスに支持集まる
まとめ
前述の通り、個人の力で大きな組織を変えるのは非常に難しいことですが、代わりに自分の居場所は自分で決めることができます。
むしろ自分で変えたり改善したりできる部分は、どんどん行動に移していったほうがよいでしょう。
paiza転職では、スキルチェック問題を解いて、スコアが一定基準を超えれば、事前の書類選考なしで求人応募ができます。また、多くの掲載企業が、オンラインで受けられるカジュアル面談を実施していますので、「なるべくオンラインで選考を受けたい」「まだ絶対に転職したいわけじゃないけど話を聞いてみたいな」といった方でも転職活動を始めやすいかと思います。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら