📕

【キャリア】Webアプリを作るITエンジニアは特殊部隊なので、軍隊の一兵卒志願の若者は一度よく考えた方がいい話

に公開

はじめに

https://zenn.dev/noranuko13/articles/b30c8ed65e8e27

対象

  • Webアプリ開発に転向したいITエンジニア向け。

本記事でのWebアプリ開発の定義

本記事で扱う「Webアプリを作るITエンジニア」とは、主に中小企業やベンチャー企業のWeb開発現場を想定しています。大手SIerのような大規模分業体制ではなく、少数精鋭で要件定義から運用まで幅広く担当する開発環境です。

日本のどこかには一兵卒タイプでも活躍できる分業型の開発現場があるかもしれませんが、少なくとも私が経験した中小企業やベンチャーのWeb開発案件では、一兵卒タイプの方は扱いに困る場面が多く、特殊部隊的なスキルがないと開発が回らないというのが現実でした。

Webアプリ開発は特殊部隊の世界

一兵卒vs特殊部隊の違い

Webアプリ開発の世界を理解するために、軍隊の組織で例えてみましょう。

まず一兵卒タイプ(指示遵守型)について説明します。軍隊の一兵卒は、上官の指示命令に従って行動します。通信兵なら通信業務、輸送兵なら輸送業務というように、各々の役職が決まっていて専業特化しています。

自分で次に何をしたらいいかは考えませんし、そもそも考えて動いてはいけない立場なのです。目の前の自分が特化した仕事だけを確実にこなし、ゴールまでの道筋はほぼ一本道です。

一方で特殊部隊タイプ(自考自動型)は異なります。特殊部隊は一人でなんでもこなさないといけません。一人ひとりが考えて動くタイプで、個々の状況の打開については、各々がある程度自力で判断を求められます。

もちろんマネージャーや会社が旗印とする大きい目標はありますが、出発点からゴールまでの方法は無数にあり、その中から最適なものを選ぶ能力が求められます。

Webアプリ開発に求められるスキル

Webアプリを作るITエンジニアは、まさに特殊部隊的なスキルが必要です。これは設計書が降りてきてそれを実装するだけのプログラマとは根本的に異なります。

Webアプリ開発では、アイデアレベルから本番デプロイまでの全工程を担当する必要があります。「こんな機能があったらいいな」という曖昧なアイデア状態から始まって、本番環境でユーザーが使える状態まで、一連の作業をこなさないといけません。

もちろん最初のうちは部分的な工程だけを担当することもあるでしょう。テストケースの実装や、詳細設計書に基づいたコーディングなど、指示遵守型でも対応できる作業から始まります。しかし、より上位の仕事になればなるほど、自律的に動かないと回らなくなってきます。

またインフラ構成や要件定義について詳しくない開発者もいますが、これらの上流工程を理解していると動き方が全然違います。一緒に働く際の協調性も大きく変わりますし、問題が発生したときの対応力にも差が出ます。

曖昧な状態から作り始めることが多く、仕様書やマニュアルが不完全な状況でも、自分で技術ドキュメントや参考資料を読み込んで実装を進めていく必要があります。

現場で起きる現実的な問題

チケットの粒度問題

特殊部隊タイプと一兵卒タイプの違いは、日々の業務ではチケットの粒度に現れます。

特殊部隊タイプの場合は「○○機能作って」で済みます。仕様をヒアリングし、技術選定を行い、設計から実装まで自力で進めていきます。一方、一兵卒タイプの場合は「○○機能 詳細設計書 DB設計 ...」など、細かく渡さないと違ったものが出てきたり、成果物が出てこなかったりします。

例えば「ユーザー登録機能を作る」というタスクで考えてみましょう。

特殊部隊タイプなら、「ユーザー登録機能お願いします」だけで以下のことを自分で判断できます。入力項目は何が必要か、認証方式、既存ユーザーとの重複チェック、エラーハンドリング、UI設計まで。つまり抽象的な概念から具体的な実装を展開できる思考力が求められるのです。

しかし一兵卒タイプの場合、「メールアドレス・パスワード・確認用パスワードの3項目、フレームワークの認証機能を使用、重複チェック有り、認証メール送信、エラーは日本語でアラート表示、成功時はホームページにリダイレクト」といった具合に、事細かに指定する必要があります。

この違いはプロジェクトのスピードや品質に大きな影響を与えることになります。

炎上プロジェクトでの教育コスト問題

この問題が最も深刻になるのは、炎上気味のプロジェクトに一兵卒タイプが入ってきた場合です。

特殊部隊のように動けないといけない環境に、一兵卒タイプが入ってきて指示がなくて慌てている状況です。指示を出す人も教える人も、そんなコストも時間もないので、「余計なことをしないようにだけして放置」みたいな状況になったりします。

こうなると特殊部隊タイプの開発者が苦労することになります。最初に一通り教えた後、特殊部隊的な動き方ができればよいのですが、どうしても一兵卒が抜けない方もいます。教育時間自体も短いですからね。

実際の現場では、こうした状況がチーム全体の士気にも影響します。一兵卒タイプの方は「指示が曖昧すぎる」「サポートが足りない」と感じ、特殊部隊タイプの方は「なぜこんな基本的なことも自分で判断できないのか」と感じる。

双方にとって不幸な状況が生まれ、最終的にはプロジェクトの品質低下や離職につながることも少なくありません。

転向を考える人へのアドバイス

自分がどちらのタイプか見極める方法

Webアプリ開発への転向を考えているなら、まずは自分がどちらのタイプかを見極める必要があります。

特殊部隊タイプの方は、料理やバイト先での作業順序など、効率的な進め方をすっと思いつくことができます。定型業務ではないので、毎回微妙に状況が違いますが、それに合わせて臨機応変に対応できます。

一方、一兵卒タイプの方は明確な指示や手順がある状態を良しとします。専門特化した領域でのスキルを深めたいと考え、自分で判断しながら進めるより、決められたルールに従って作業したいと思う傾向があります。どうしても作業マニュアルが必要になるのです。

簡単な判定方法としては、エラーが発生したときの対応を振り返ってみることです。

エラーメッセージを読んで原因を推測し、ログを調べたり検索したりして自分で解決策を探せるタイプか、それともエラーメッセージ自体が理解できずに「エラーが出ました。どうすればいいですか」となってしまうタイプか。

この違いが実際の開発現場でのパフォーマンスに直結します。特殊部隊タイプはエラーから情報を読み取って次のアクションを自分で判断でき、一兵卒タイプはそもそもエラーから何をすべきかを判断する能力が不足している場合が多いのです。

特殊部隊的スキルを身につけるには

Webアプリ開発に転向したいなら、自分のタイプに関わらず、以下のようなアプローチで特殊部隊的スキルを身につけることが重要です。

まずは小さなプロジェクトを一人で完結させることから始めましょう。チュートリアルをやって終わりではなく、自分で企画した小さなWebアプリを一から作ってみることです。要件定義からデプロイまで、全て自分でやりきることが重要です。

次に技術ドキュメントを読む習慣をつけましょう。新しいライブラリやフレームワークを使うときは、気軽に人に聞くのではなく、まずは公式ドキュメントを読んで自分で理解しようとする習慣をつけることが大切です。

そして問題解決能力を鍛えることも必要です。エラーが出たとき直ぐに人に聞くのではなく、エラーメッセージを読んで原因を推測し、検索エンジンやAIツールを活用して解決策を探すことから始めましょう。

https://zenn.dev/noranuko13/articles/baf337f4e57aa2

おわりに

Webアプリ開発は決して万人にできる仕事ではありません。手とり足とり教えられるような環境もないですし、そんな余裕もないのが現状です。しかしだからこそ特殊部隊的なスキルを持ったITエンジニアにとって非常にやりがいのある分野であり、高い価値を提供できる仕事でもあります。

重要なのは自分の向き不向きを正しく理解して、適切なキャリア選択をすることです。一兵卒タイプの方には、それに適した分業型の開発現場や、明確な役割分担がある大規模プロジェクトの方が向いているかもしれません。

Webアプリ開発への転向を考えているなら、特殊部隊的なスキルが必要だということを理解し、それに対する覚悟を持って臨んでいただきたいと思います。

Discussion