SEという仕事をエンジニアと呼ぶか
SEってなんなの?と思いません? 私は思っています。
何を隠そう、自分ではあんまりSEだっていう自覚はなかったんですが、実際のところ括りとしては実はSEでした。いつからSEだったかっていうのは難しいところですが、まあ盛っても10年弱でしょうか。
今までの経験から、思っているSE像について書きます。
そもそもSEとはなにか
SEってサッと説明できない
「夫(妻)がSEなんだ」
「へー、どういうことやってんの?」
「よくわかんない」
こんな会話、ありがちじゃないですか?
私は一応SEですが、妻にはSEということ以外の仕事の内容を説明したことはほとんどないので、私の仕事について誰かと話すとこんな感じだと思います。
まあ、私もSEについて説明しろと言われてもよく分かりません。(あ、あれ、そもそも私ってほんとにSEだよね……?)
予備知識もたくさん必要だし、それをすべて説明するとなるとかなり面倒。
SEのおおざっぱな定義
SEとは、System Engineer システムエンジニアです。
聞くところによると、どうも日本と海外(アメリカとか)では同じものを指していないようで、System Engineerというと日本のSEとはちょっと違うみたい。
日本でいえば、まあ大雑把に言うと、「ソフトウエアが絡むシステムを作る人」でしょうか。
ソフトが絡まない、回路設計で完結するようなものを作る人をSEと呼んでるのは聞いたことないし、機械っぽいものを設計する人をSEとは呼ばないでしょう。 では、プログラムを書く人はプログラマかな? 検証はテスタ?
作るものが大きく複雑になり分業が進むと、生業も増えます。 大きな括りだとみんなSE?
どこからどこまでがSEなの?
「システム」というと、何かを実現するための仕組みみたいなニュアンスなので範囲が広すぎる。
どこまでがSEなのか私がよく分かっていないのは、ソフトウェアを作る作業はいくつかに分割することができて、分割の仕方が組織によっていろいろあるからです。でかくて複雑なソフトを作る方が分業が細分化されて、どこからどこまでがSEかってのは難しくなります。
という感じで「SEとはなにか」というのは一言では言い表しにくい。 SEっていったいなんなんでしょうね。
SEにもいろいろある
先述の通り、SEと言っても実際のところはいろんな人がいます。
入社してからずっと同じ会社にいるとあまり分からないかもしれませんが、世の中にはさまざまなSEが生息しているのです。
おおよそ、つくるソフトの規模・複雑さ、会社の規模・関わる会社の数、分業の仕方、といったパラメータで、仕事の内容が変わっていきます。
V字モデルにおける例
開発手法にもいろいろありますが、下記の図はV字モデルです。

この図で言うと、ざっくりこんな感じ。
要求分析 | お客さんとやりあう |
基本設計、機能設計、詳細設計 | 仕様書つくる |
コーディング | プログラムつくる |
単体テスト、結合テスト、システムテスト、受け入れテスト | 検証する |
ここで、SEって言ったらどこだ?って思うんですよ。
「システム = 仕様書をつくる」であれば設計のところかな。 でもテスト内容を設計するのは誰?設計のところも、コーディング直前の詳細までSEが設計する?そうすると、プログラマ・テスタってのは、SEが作ったものをコーディング・テストするだけ?
責任区の決め方って、けっこうパターンがあると思いません?
で、そうすると、どこからどこまでがSEか?実施だけじゃなくテストを設計するテスターはSE? プログラミングだけじゃなく詳細設計するプログラマはSE?
システムって言ってもいろいろある
また、作るものによって必要なものも変わってきます。
純粋にソフトだけなのか、回路・機械が絡む組み込みっぽいものなのか、世の中に必要なシステムは多種多様です。そうするとさらにSEってなんなんだ!って感じ。
まあしかし……この辺までいくと、SEに限らず他の仕事でもそうかも。一言で「私はなにがしです」というのは難しいこともあります。
例えば、「ハイパーメディアクリエイター」ってなんだよ!ってなりますよね?そんな感じで、SEだって同じようなもんです。なんだよシステムって!
以上が私の、SEいろいろある論です。
エンジニアはどうあるべきか
ここからは、私が思うソフトエンジニアの理想的な姿を紹介します。 よく分かんないからあえてSEではなく、ソフトエンジニア!
これは、今までの経験上、こういう経験を積んできたかったな という内容を多分に含みます。
正しいエンジニアの育ち方
始めは諸先輩方が作りたもうた怪しいソフトを検証。
検証しつつソフトの動作、さらには開発フロー、果てはこっそりコードを覗き見る。
ちょっと慣れてくると調子こく。
慣れたらコーディング。
諸先輩方が作りたもうた変な仕様からソフトを作る。
そうすると「この仕様、ここがこうだったらいいのにナァ」みたいな感情が芽生え、時を待たずして怒りに変わっていく。
なんとなく仕事ができるようになってきた証である。
さらに進むと、お客さんとの要件定義と仕様書作成。
やりたいことが分からないアホな客を相手に仕様を提案し続ける。
後輩に対し「プログラム書いてりゃいいんだからいいよナァ」なんて思っちゃったりする。
偉くなってきたら、椅子にふんぞり返って仕事は部下へ。
不具合が起きたらごめんなさいする係。
「なにかっつーとすぐ不具合おこしやがって・・・」と思うようになる。
でもいっぱいお金もらってるから余裕。
なんとすばらしい! 別にモデルがいるわけじゃないですよ!羨ましいです。 実際にこんなキャリアパスを歩むことができるのは幸運だと思います。
エンジニアとしての体力がつき、堅実な感じがします。
経験は自分では選びにくい
しかし上述の感じでSEになっていく人は少ないんじゃなかろうか。私見ですが、若者ほどここから外れる気がします。
ソフトウエアそのものが時代とともに大きく複雑に成長し、働き方も変化しておる。会社が人を育てる時代じゃないんですなぁ。 のんびり教育してる場合じゃないんです。
意識して経験を積まないと、いつまで経っても分業の檻の中です。
SEという職業の問題点
ここからは、私が思うSEという職業の「変だな」と思うところ。
パソコン苦手なSE
まずは本質的ではないところから……
SEっていうとソフト界隈の職業なので一見すると理系・パソコン玄人の仕事のような感じもありますが、そうでもないです。ていうかパソコン苦手な人がめっちゃいます。IPアドレス設定できないとかね。エンジニアなのに!
もともとそういうのが好きじゃなくても出来る仕事ってことですねえ。私はそもそもここから、おやおや変だなと思うんですよね。
コードの読み書きができないSE
SEっていってもコードが読めない・書けない人ってすごくたくさんいます。それは、ちらほら散見されるSEの定義が「上流工程」だからなんだと思います。
上流っていうと、お客さんとの要件定義からコーディングの手前くらい? (これも諸説ありそう)コードが読めなくても書けなくても、仕事で必要なければ別に困らないんですよね。
上流しか知らないSE
なにが問題かって、下流工程を知らないで仕様つくるのがですよ!
自分の設計が、ソフトなり装置なりになるまでの過程が分からないってことですよね。 やばくね?「全部詳細まで詰めてから仕様を作るぞ!」なんてやってては時間がかかりすぎますが (もしやそういうのもある?)、ある程度は分かってないとダメと思う。
少なくとも、どういう仕様だとソフト作るのが大変か、検証が大変か、というのが分かってないと。「上流にいる自分がやるわけじゃないし、よくね?」じゃないんだよ!
いつの日か、「お前がクソみたいな仕様つくってた犯人か!」つって下流の人にアタックされます。
あなおそろしやソフトウェア業界!
それに、下流工程を知ってた方が、見積もりも立てやすいし、下流工程の嘘も見破れるってもんです。
「これ作るのにどのくらいかかる?」と聞かれて、ギリギリを答えるなんてアマチュアもいいところです。見積もりをお願いする立場になったとき、もりもり盛られた見積もりに対して「ダウト!」できるかどうかは大切だと思います。
ある程度は盛るでしょうが、もりもり見積もりに対して「うーんよく分かんないけど、そう言うんならそうかな」じゃ、ダメだよねえ。これはもう嘘のつきあい、騙しあいです。
あなおそろしやソフトウェア業界!
さらにさらに、お客さんからの御用聞きと社内外の日程整合がメインのSEだっています。
必要な仕事だしシンパシーも感じますが、それってエンジニアじゃないんでは……上流まで上り詰めた結果だ!と言えばそうなのかもしれないですけどね。
そうするとやっぱり、先に書いた「正しいエンジニアの育ち方」を無視して新人がいきなり仕様設計するようなSEの形もあるわけで、変じゃないかい?ってことです。
SEが変なら会社も変だ
さらに会社として「誰でもできるようなことは外注だ!」という方針があったりした場合の話。
最初はコーディング作業だけ外注。
あ、なんか詳細設計もお任せしたくなってきちゃった。
あーもう設計ぜんぶ投げちゃえ。客先と外注先のパイプだけやってりゃいいや。
みたいになるでしょ? いやだよもう。さらに外注先が海外だったりするでしょう? どうすんだよ技術のニッポン!ソフトの会社だと思って入ったら誰もコード書いてなかった的な。 笑えねー
しかもそういう会社が大企業で給料いっぱいだったりしがち。 いやだよもう。だからなんか変だなと思うわけですよ私は。
がんばれ闇属性
そもそも「プログラム楽しいフヒヒ」って言ってるパソコンおたくがそういう調整業務ができないから、こういうよく分からないSEが生まれるわけで。ソフトに詳しくて、人とのコミュニケーションが上手な人が多くないのが現状じゃないでしょうか。
私もフヒヒ側ですが……フヒヒ
パソコンとではなく、人と仕事をしましょうってことでしょうねえ。
パソコンと会話してしまう闇属性エンジニアがコミュニケーション(調整)も仕事と認識し頑張れば、そんなよく分からんSEも減り、上流・下流の紛争もなくなるのではないでしょうか。
そしたらエンジニアはエンジニアとして評価、エンジニアじゃない人はまた違う仕事をすればいいじゃないですか!
まとめ
SEについて私が前から思っていたことを長々と書いてみました。
時代が変われば変わっていくものだとは思いますが、読んで「がんばるぞニッポン! (?)」と思ってくれると嬉しいです。
がんばるぞニッポン!