エンジニアの種類は、一般的にプロジェクトにおける立場や担当する分野などで分けることが出来る。
プロジェクトにおける立場での分類は、システム開発の全体的な統括を行うプロジェクトマネージャ、現場レベルでの進捗管理や調整、レビューなどを担当するプロジェクトリーダ、実際の設計や開発、テストを行うシステムエンジニア、設計に基づいてプログラムを実装するプログラマなどがある。これらは、プロジェクトの調整や顧客との折衝、システムの設計を行う上流工程と、実際のシステム開発、テストを行う下流工程の2つに大別される。そして上流工程を担当する者と下流工程を担当する者で求められるスキルが異なることが特徴だ。上流工程を担当する者は、顧客や社内の人員との折衝を行うために、専門知識の他にコミュニケーション能力も必要とされる事が多い。
一方、担当する分野での分類としては、サーバの設計や運用、保守を行うサーバエンジニア、システムに対して情報セキュリティ対策を行うセキュリティエンジニア、システムの運用・補修を行い、バグや障害、異常があった場合には対応を行う運用保守システムエンジニア、企業が開発したシステムの品質が基準を満たしているかチェックする品質管理者、社内システムの運用、管理、保守を行う社内SE、社内SEの病院版ともいえる院内SEなどがある。これらは、それぞれの職種に合った専門知識やスキルを要求される他、「自分の職種に関わるスキルや知識がビジネスにどのように関係するか」というような、ビジネス全体を見渡す視点も必要となってくる。