- ベストアンサー
SEの仕事とキャリアについての質問
- SEの仕事とコーダーの違い、スキルの違いについて教えてください
- SEの設計内容が技術的な要素がない場合のスキル伸びについて心配です
- SEの将来的なキャリアについて具体的に教えてください
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんわ。一応現役のSEです。 SEと一口にいっても色々なSEがありますが、書かれている内容からすると、顧客のある要求を実現するためのシステムの設計を行うのがSE、そのシステムの実装を行うのがコーダー(プログラマ)と定義されているようなので、その前提で話を進めます。 たとえば私が勤めている会社であれば、かなり昔に開発部門を子会社として切り離してしまっているので、基本的に自社内で開発をすることはありません。そのような会社であれば、SEの仕事はお客様の要件を仕様に落とすところまでで、仕様に落とした後の実装(プログラミング)は、外部の会社に仕様書を渡して依頼することになります。 逆に、子会社として切り出す前は、自社内ですべてを解決していました。とはいっても、システムの設計を行う部門とプログラミングを行う部門とは別なので、敷居の高さを除けば仕事のやり方自体はあまり変わらなかったと思います。ただし、小規模の会社であれば、小さいチームですべてを賄う場合もままあると思います。 ハードウェア設計やネットワーク設計、利用言語の決定については、お客さまからの指定があればそれに従いますが、ない場合は自社で決定することになります。そこがSEの力量が問われるところで、プログラミングを含めた人通りを抑えている人であれば、どのような言語でどのように実現するのかをある程度踏まえたうえで、適切な冗長性や処理能力を持ったシステムを設計することができます。 逆のそこの”勘”がない人が同じレベルで設計してしまった結果、プログラマなどにそのしわ寄せが行って、最終的にデスマーチになることも少なくありません。 #私も、システムをよく知らないYesマンの営業が取ってきたシステムの開発で死にそうな目に会ったことがあります。 プログラミングを外注する場合であれば、システムの設計は基本的に発注元になりますが、受注確度が高い案件や大規模システムであれば、提案段階からプログラミングを受ける会社が入ることもあります。その場合、実装という観点から見た助言をすることになります。 プログラマとして最低限求められるのは、与えられた仕様書の挙動を実現するプログラムの開発になりますが、その範囲内でどれだけ性能を出せるか、どれだけ保守性が高いコードが書けるか、どれだけセキュリティを意識したプログラミングができるかなどが、プラス要素になります。 ただ、特に日本では専業プログラマの価値が認められていない節があるので(オープンソース界では天才プログラマが活躍していますが)、一生プログラマというのは夢を描きにくいかもしれません。 プログラマの立場であれば、プログラミングの経験を持ったSEにシステムを設計してもらいたいと思うでしょう。それは、実現不可能な客の要求を飲んできたり、無茶な工数での開発を請け負ったりしないという意味からですが、個人的にはいいSEになるためにはプログラミングは知るべきだと思います。少なくとも、プログラマとして仕事をした経験は持たずとも、開発しようとしているシステムがプログラムレベルでどのように動いているのかを理解できるのが、最低条件でしょう。 ということで、個人的にSEの理想的なキャリアとしては、下流から上流に上ってゆくのがいいと思っています。最終的には開発プロジェクトのマネージャ(PM)になりますが、技術にこだわるのであれば、特定の分野に特に強いSEという立場にあえて留まることもできるかもしれません(周囲がそれを許さない場合のほうが多いと思いますが)。 ちなみに、技術的なスキルがないとつぶしがきかないかというと決してそんなことはなく、PMに求められる”大勢のSEを従え、顧客の要求を実現するシステムの開発を定められたスケジュールと予算で実現するよう、プロジェクトを導く”というスキルはある意味最強のスキルで、もし本当にこれをどのような状況でも実現できるスキルがあれば、一生食い扶持には困らないでしょう。
お礼
とても詳しく書いていただいてありがとうございます。 具体的な仕様はSEが書いてそれを外注先に提出するということなのですね。 私はスキルと聞いて、クリエーター的なスキルの事だけを考えていたけれど、確かに人を従えるのは大変なスキルでしょうね。