SEの仕事

1.はじめに

未経験からSEを目指す方が増えています。

未経験の方にとってSEの仕事はイメージが先行してしまい、なかなか具体的な情報を得にくい部分があるようです。
このコーナーがSEの仕事について少しでも理解を深める参考になればと思います。

ここでは、主に ソフトウェアを作る仕事とはどういうことなのか、 どういう流れで行われるのか、 入社していただいたとしたらやっていただきたいのはどういう仕事なのか ということに関して述べていきます。


私 たちはコンピュータのソフトウェアを作っている会社です。最近は、プロフェッショナル志向が高まり、学校で特にプログラミングを学んだというわけではなく ても、いろいろな学部・学科の方が応募して下さるようになりました。女性の応募が特に多くなりました。フレッシュな発想のできる方たちと会えて嬉しいので すが、その反面で問題もあります。 入社後、1から勉強して一人前になり、現在バリバリ仕事をしている人はおりますから、応募する段階での専攻、学部・学科は一切不問です。ただし、入社を決 めるときには、自分がどういう仕事をやろうとしてその会社を選ぼうとしているのか、それははっきり理解しておいていただきたいのです。

そのためには、会社を選ぶ前にまず、仕事を選んでほしい。仕事としてソフトウェアを作るということを選択していただいた上で、会社を選んでいただきたいのです。
近年、パソコンは家電扱いです。新聞に入ってくる折込チラシやテレビのコマーシャルをチェックしてみてください。「初めてでも安心」「らくらくインター ネット」「簡単」「安い」...コンピュータの勉強なんてほとんどしていなくても扱えるようになっています。そしてパソコンを売るターゲットは明らかに仕 事用ではなく、個人用の便利グッズ(それも非常に娯楽性に富んだ)にシフトしています。 けれど、私たちの仕事はパソコンを簡単に使うことではありません。プロである私たちの仕事は、ユーザーがそのように簡単に扱えるようなソフトウェアを提供 することです。いわば、完全に裏方です。もし、明るいオフィスで指一本でメールを送って楽しくお仕事...というイメージのカケラが頭にあったら、それは このさい捨ててください。

コンピュータを使ってする仕事には他にもありますね。

例えば、できあがったソフトウェアをユーザーとして使いこなすオペレータの仕事、または、使い方をお客様に指導するインストラクターと呼ばれる仕事 です。私たちは、自分たちの作ったソフトウェアの使い方をお客様に説明しなければなりませんから、当然オペレーションやインストラクションもしますが、そ れはメインの仕事ではありません。


また、ソフトウェアの開発というと身近なところでゲームを思い浮かべる人もいるかもしれません。しかし、私たちはもっぱら会社の業務を動かしていくためのソ フトを提供している会社です。もちろん、将来もやらないと決めているわけではありませんが、もし、今ゲームを作りたいという希望をお持ちだったら、残念で すがウチではできません。

どんな仕事をしたいのかを考えることがSEを志望する上ではとても大切なのです。その上で、どの会社で働きたいか考えていきましょう。

続けて、ソフトウェアを作る仕事とはどういうことなのか、どういう流れで行われるのか、そして入社したとしたら皆さんにやっていただきたいのはどういう仕事なのか、それをお話していきたいと思います。

ページ上部へ戻る

2.ソフトウェア製造の流れを見てみよう

この章では、一つのコンピュータソフトウェアを作るために必要な作業の流れをご紹介します。わかりやすいように「1軒の家を建てる」という工程になぞらえて説明します。

  1. 要件定義(コンサルテーション)
  2. 基本設計
  3. 詳細設計
  4. プログラム設計
  5. プログラミング
  6. テストおよびメンテナンス

1. 要件定義(コンサルテーション)

お客様が何をほしがっているのか、どういうものを作ってほしいと考えているのかをはっきりさせる段階です。家で考えると、どんな家にしたいのか、お客様が設計技師、または工務店の担当者と相談する段階です。
お客様の希望というものは、どんな場合でもいえることですが漠然としてまとまりがないことが多いものです。また、一番初めに出てきた要望が一番重要だとい うわけでもありません。漠然としているからこそ、出来上がってみたらこんなつもりではなかった、ということが起こりがちです。

この、漠然としたイメージに如何に正しい形を与えていくかが、この段階の最重要ポイントです。

どのようなソフトウェアを作るのかの根幹を決定する段取りです。つまり以下のような点に注意して相談します。

  • 何に使うのか
  • 誰が使うのか
  • どんなアウトプットがほしいのか
  • どんな成果を期待できるのか

この「はじめの1歩」を誤らないようにするためには、ソフトウェア製作者側に、お客様の意図を正しく読み取り、場合によってはより良いや り方を提案できる、高いコンサルテーション能力が必要になります。もちろん、人と人とのコミュニケーション能力も大切です。コンピュータやソフトウェアの 専門知識だけではだめなのです。

また、技術的にできるからといって、今までよりもコストがかかる、今までよりも手間がかかる、間違いが起こる...ようなものを提案したのではお客様の信頼は得られません。

この段階をいきなり新人にやらせることはありませんから安心してください。ただし、SEを目指す以上はコンサルテーションのできる、信頼されるSEを目指していただきたいと思います。

ページ上部へ戻る

2.基本設計

家でいうと、前の段階で出てきた家のイメージを確認する段階です。前から見たらこんな家、後ろから見たら、上から見たら、という図面が登場します。 場合によっては模型を作る場合もあることでしょう。床暖房やバリヤフリー設計にするのかなど必要な機能も確認していきます。また、完成までの大まかな作業 スケジュールも決定します。

ソフトウェア製造では、このような基本設計書をつくります。
そして、必要な機能が洗い出され、確認されます。例えばATMのソフトを作るとすると、機能としてほしいのは以下のような事柄がありますね。

  • 預入・引出・貸付・返済・振込・振替 など
  • 場合によっては日本語の他にも英語版や中国語版も必要でしょう。
  • 音声対応はどうでしょうか。

...そして、これらを作るにはどのくらいの時間と人数が必要なのか。金額的にはどのくらいかかるのか。それらを明示したスケジュール表と見積書を提示します。

3.詳細設計

家の場合は、具体的な間取り図を作る段階です。この部屋は和室6畳、床の間付、ここはフローリング、階段は何段、天井の高さは...きっちりと寸法が決められます。

ではATMの場合はどうでしょうか。基本設計で確認された機能をさらに細分化して規定していきます。

預金の種類、振込のパターン、画面の表示される文字の大きさ、書体、入金したお金の識別方法、個人口座と法人口座の扱いの区別...などなど

4.プログラム設計

間取り図ができてだいぶ家らしくなりましたが、これだけでは大工さんはまだ仕事ができません。なぜでしょう。間取り図には、その部屋がフローリング であることは書かれていても、それがパイン材なのか、寄木合板なのかわかりません。柱の寸法はわかっても、それが杉材なのか黒檀なのかは書かれていないか らです。

プログラム設計書とは、大工さんが仕事ができるようにするためのものです。

ATMで考えてみましょう。当たり前のことですがコンピュータはいちいち人が指定したとおりのことしかできません。人間にとっては自明のことでもコンピュータには自明ではありません。

ATMの前に人が立って現金を下ろす、または振り込み手続きをする。そのためにコンピュータにさせる動作をいちいち細かく規定していきます。

銀行で通帳とカードを使って預金を引き出すときの手順を思い出してみてください。

休止状態の画面に[画面に触れてください]とありますね。
そこで画面にタッチするとセンサーが働いて[初期メニュー]が現れます。
「引出」を選んで見ましょう。[通帳かカードを入れてください]。
カードを入れ間違えると[正しい方向に入れなおしてください]とか[このカードではお取り扱いできません]などとなります。
暗証番号を入力すると、画面では****と表示されますし、3回間違えるとカードが無効にされてしまいます。
無事に引き出す金額を入力すると、ATMが作業中の待ち時間には、[銀行のイラストやマスコットが「少々お待ちください」などと頭を下げて]いたり、ちゃっかりと「定期預金に勧誘するテロップ」が流れたりします。
時には紙(札)詰まりなどでATMが作業を中止してしまい、 [お取り扱いできなくなりました、係員をお呼びください]などとでたりします。

これらの細かい手順を、想定されるアクシデントなどにもいちいち、1段階づつ規定していくものが、プログラム設計書です。
画面に表示されてユーザーの目に触れるのは、プログラムの一番表面にすぎません。最初のメニュー画面が出るまでの間に、そして、画面が切り替わるまでの間 に、実は何十本、何百本のプログラムが動いているのです。そして、その中のどこか1箇所に間違いがあれば、ATM全体が正しく機能しなくなってしまうので す。

ページ上部へ戻る

5.プログラミング

さてここからが大工さんの仕事です。つまり、プログラム設計書に基づいて作りこんでいく段階です。

私たちは便宜的にソフトウェア開発技術者という意味合いでSEという言葉を使っていますが、未経験者で採用された方にまずなっていただくのはプログラマ、つまり大工さんです。

まずしっかりと覚えていただきたいのは、仕事の基本となる鋸やカンナの使い方です。つまりマシン操作、フローチャート、開発言語、また開発環境などについてです。

将来コンサルテーションができるSEになっても、基本になるのはこの部分です。

6.テストおよびメンテナンス

家が出来上がると、ドアに隙間はないか、立て付けはちゃんとしているか、ガラスの入れ忘れはないかなど、引渡しの前に全部点検します。

プログラムも同様です。出来上がったプログラムがちゃんと機能するか、設計通りになっているか、この機能とあの機能がちゃんと噛み合っているか、動かしてみて検証します。

テストして、エラーが見つかったらどうするか?

これはもう、間違っているところを突き止めて修正するしかありません。

ところが、このエラーというのは、決してお手軽に探せるものではありません。皆さんは1999年の年末近くにニュースなどで2000年対応のプログ ラム修正の風景をご覧になったのではないかと思います。膨大なプログラムの中から日付を扱ったと思われる箇所を目でチェックして一件づつ洗い出していく。 補正作業そのものは単純な場合が多いのですが、とにかく膨大な作業量になってしまいます。
ATMの最初のメニューが正常に表示されるまでには、何十、何百のプログラムが全部正常に動いている必要があります。そして、最初のメニューが正常に出な いのは、それらのプログラムの中のどこかが正常に機能していない、または他のプログラムとうまく整合していないということです。一つずつ確認して、引っか かっている箇所を突き止めるしかありません。実に地道で根気の要る、しかも手抜きの許されない仕事なのです。

そしてプログラムが完成し納品したあとも、お客様が使いこなせるように運用のサポート、システムの保守、管理の仕事が続きます。そこでもお客様の意図するところを的確に理解し、それに答えるコンサルテーション能力が問われます。

ページ上部へ戻る

3.SEまたはシステムデザイナーへの道 -最初はプログラマ

前章で触れたように未経験者で採用された方にまずなっていただくのはプログラマ、つまり大工さんであり、覚えていただくのはプログラミング、つまり鋸などの道具の使い方です。まずはプログラム設計書のとおりにプログラムが作れるようになっていただきます。

プログラマになるためのカリキュラムは、きっちりしたカリキュラムがあります。専門学校などで多少プログラミングを学んできた方でも、とりあえずは同じカリキュラムです。

では、システム設計のカリキュラムがあるのか、と思われるかもしれませんが、答えはノーです。勉強する機会と材料はいつでもありますが、その勉強をいつからはじめるかは本人しだいなのです。それはどういうことでしょうか。

プログラマがプログラム設計書を渡されたとき、何の疑問も意見もなしに、ただ書いてあることだけをやっているうちは、設計はできません。でも人に よっては、「なぜこのプログラム設計書はこうなっているのだろう」と、このプログラム設計書が出てくる前の段階について考えるようになります。

例えば、会計システムのプログラムを組んでいる人が、興味と想像力を働かせれば、会計システムを設計するためには基本となる簿記の知識が不可欠であ ることに気づくでしょう。自分にその知識があれば、自分が何のプログラムを組んでいるのか、どうしてそうなるのかなど、自分の仕事をより理解しながら進め ることができます。

そうやって周辺知識を広げていくうちにいつか、「自分ならばこういう設計をするのに」とか、「この方が使いやすいのでは」という意見をもつこともできるようになります。設計の勉強はそこから始まるのです。
自分で勉強しようと決意すれば、その後は研修に参加したり、通信教育を受けることも可能です。その点の会社のフォロー体制は万全ですからご安心ください。でも、会社は自分で勉強しようという気になっていない人にまで、等しく機会と資金を投入することはできません。

つまり「やらされている」「言われた事だけやっている」という意識で機械的に作業をしているだけの人は何年経ってもプログラマでしかありません。経験年数だけ増えても、それだけで自動的に設計ができるようになるのではないのです。

では、こういう疑問をもつ人がいるかもしれません。


「プログラマは言ってみれば大工だといったが、一級建築士は大工仕事はしない。鋸もカンナもつかえない設計技師は大勢いる。むしろその方が普通だ。自分は設計者になりたいのであって、プログラマになりたいわけではない。」

会社によっては設計者の育成とプログラマの育成をはっきり分けているところもあるようですが、私たちの場合は、プログラミングの技術をもたない人に設計をさせることはありません。

基本設計のところでお話したように、設計段階で全体の作業スケジュールを作りますが、プログラミングの工程を理解していない人にはどのくらいの作業 量がありどのくらいの時間がかかるのかを見積もることはできません。実際の作業実例を見ても、プログラミングの実情を知らずに頭の中だけで組み立てた設計 は混乱の元となることが多いようです。

もう一度家を建てる例を引くと、図面の上ではきちんと立っている家が、建築してみたら重さに耐え切れずに潰れてしまうようなものです。

怖いのは、ソフトウェアは家と違って、完成して引き渡すまでの作業工程が外から見えにくいということです。どのくらい遅れているのか、順調なのか、 混乱しているのかわかりにくいのです。ユーザーであるお客様は○月○日納品といわれたら、その日からそのシステムを使えるもとのして自社の作業予定を組む はずです。それが土壇場になって期日通りに納品できないとなったら、お客様に与える迷惑がどれほどのものかお分かりでしょう。

もちろん受注する仕事によっては、設計だけを担当する場合や、他社が作った設計に基づいてプログラミングだけを担当するという場合もありますが、どちらかしかできない、やらない、ということではありません。

勉強したいという人に、会社は機会や出費の面で援助はしますが、○○の勉強が必要だと思うかどうかは、あくまでも本人の熱意とセンスの問題です。自分で必要だと感じていないものを社命で勉強しても、本当には身に付きません。

繰り返しますが、プログラマーとしてスタートした人が設計者になれるか、それも良い設計者になれるかどうかは本人しだいなのです。

ページ上部へ戻る

4.SEの寿命

一時、コンピュータ職の35歳定年説ということが言われていた時期がありました。

これは、コンピュータ業界自体が比較的若かった為、中高年になっても現役でやっているSEが少なかったせいもあるでしょう。

時間に不規則な面があるのは事実で、つまり、徹夜・深夜作業が当たり前のように言われており、年取ってからでは体力的に持たないだろう、と思われていたせいもあるでしょう。

また、基本的に技術者ですから、ある程度力をつけると会社をスピンアウトしてフリーになったり、自分の会社を興すということもあります。

ただし、35歳定年説を地で行くように、プログラマまたはSEをやめてしまう人もいます。なぜでしょう。それは、その人が自分から進んで設計のほうには興味を持たず、ただ機械的にプログラミングするだけで良しとして35歳まで過ごしてしまった場合です。

年齢がいくつになっても、プログラミングしかできない人は、当然自分より後輩が書いた設計に基づいてプログラミングする立場になります。これはあまり面白いことではないでしょう。

それに、会社は年齢に対して給料を払うのではありません。その人の生み出した価値、やった仕事に対して給料を払うのです。今年の仕事が去年と同じだったら当然昇給もあまり望めません。

そんなこんなで、自分はこの仕事を続けても未来が無いと、自分で見切りをつけてやめてしまうのかもしれません。しかし、本当はあくまでも自分自身の問題なのです。

現実の仕事現場では、ユーザーであるお客様は自分より若い場合も、年配の方の場合もあります。皆さんそれなりの経験と専門知識を持った方です。そう いった方々と対等に話し、きちんと理解する。さらに場合によってはその方が気づいていないニーズを掘り起こして提案する、無理な要望に対しては単に「でき ない」と拒絶するのではなく、できない理由をきちんと説明して代替案を提示するなどして、納得していただけるように折衝する...そういうコンサルが出来 る様になるには、とても20代や30代では足りないことはお分かりいただけると思います。

 ページ上部へ戻る

5.アテネコンピュータシステム内でのキャリア・アップの道

今、私共が募集しているのはSE(を目指す人)です。部門でいえばソフトウェア開発部門です。そして、この部門に入っていただいた場合、よほどの事情がない限り、まず他部門への配置変えはありません。

ここまでしつこく「仕事」の話をしているのは、たとえ私たちの会社の経営理念や営業姿勢を気に入っていただけたとしても、仕事そのものを気に入っていただけなかったら、お互いに不幸だからです。

では、ずーっと技術職で、ひたすら自分の技術だけを磨いていけば良いのかというとそういうわけにはいきません。

一つのソフトウェアをつくり上げるためには、実に多くの「人間」が関わっています。そして、多額の「お金」が動きます。また、多くの「ツール」が使 用されます。どんな業界でも変わらない「ヒト・モノ・カネ」の管理が必要になってきます。優秀な技術者が最大限にその技術を発揮するためには「ヒト・モ ノ・カネ」の憂いがないことが望ましいことはいうまでもないでしょう。そこで、SEの中から管理職となって部下やコストやプロジェクト全体を統括する人が 必要になります。
当然この人の仕事は技術面だけではなく、営業的な面や部下の内の誰をどの仕事に振り分けるか、といった人事管理などにウェイトがかかってきます。また、管 理職は技術面のトレンドや業界の方向性に敏感な目と耳をもって、会社の進む方向の決定に手を貸す参謀でもあります。部下をどの方向に育てるか、その方針を 決めていくのも管理職の役割です。

ですが、人にはそれぞれの性格やキャラクターがあり、当然向き不向きがあります。人によっては、部下の面倒を見なければならないことに大きなストレ スを感じる人もいます。5年後、10年後の事業のことを考えるよりも、今手がけているソフトウェアを最高のものにすることにエネルギーを使いたいと感じる 人もいます。そういう人の力もきちんと認め、管理職とならなくても専門職としてキャリアアップしていく道も用意されています。

もちろん、入社のときに自分がどの方向に進みたいか、決めておく必要はありません。私共は総合職・一般職という区別をしていませんから、管理職を目 指すか、専門職を目指すかで、初任給が変わってくるという事はありません。まずは一人前のSEを目指してください。そして、実務経験を積んでいくなかで自 分の適性が判ってきたら、自分が管理職になる日のための勉強、専門職になる日のための勉強をはじめるのも悪くないでしょう。自分で勉強しようという人に対 しては、会社は機会と費用の援助をする用意は出来ています。

ページ上部へ戻る

6.おわりに - SEを目指すあなたへ

SEの仕事はルーティンワークではありません。

あるお客様のために作ったソフトを、そっくりそのまま他のお客様のために流用することはほとんどの場合できません。今日やった仕事がそのまま、明日 もつかえるとは限りません。周りの進歩によって、今日完璧だったものも、明日は80%でしかないかもしれないからです。ですから私たちにはいつも現状に甘 んじない厳しい姿勢が求められます。

ソフトウェアを作る仕事は本来はプロセスではなく、結果を求める仕事です。お客様にしてみれば、徹夜で必死に作ったプログラムでも、鼻歌を歌いなが ら作ったプログラムでも出来が良ければ構わないのです。ですが、この仕事をはじめるならば、入門者としてはまずはプロセスを大事にしてください。


正しいプロセスを踏んでいても、失敗する場合もあります。ですが、その失敗は次回には正すことが出来ます。一方で、結果オーライでたまたまうまくいった事 は、次回の成功のためには参考になりません。その場凌ぎのやっつけ仕事を毎回やれるほど、仕事もお客様も甘くはないからです。

これからSEを目指すのならば、まずは正しいプロセスを踏襲した学習を心がけてください。一発逆転を狙うのではなく、確実にホームに戻る道を考えてください。そのためには、まずは確実に一塁に出ることから始めてください。

そして、SEの仕事を私たちと一緒にやりたいと思ったら、ぜひ入社試験を受けてみてください。

仕事内容、しごと、SE、se、システムエンジニア、システムエンジニア、アテネコンピュータシステム、

会社情報

会社案内

(株)アテネコンピュータシステム
■本社・東京
〒104-0061
東京都中央区銀座3-10-7
ヒューリック銀座三丁目ビル9F
(旧銀座東和ビル)
TEL:03-3543-3811
FAX:03-3543-3815

■仙台
〒980-0021
宮城県仙台市青葉区中央2-9-27
プライムスクエア広瀬通10F
TEL:022-261-9861
FAX:022-261-3675

Copyright (C) 株式会社アテネコンピュータシステム All Rights Reserved.