HOME > ソフテックだより > 第96号(2009年8月19日発行) 現場の声編「ソフテックの新入社員研修」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第96号(2009年8月19日発行)
現場の声編

「ソフテックの新入社員研修」

1. はじめに

私は今年2009年4月に入社した新入社員です。
ソフテックに入社した動機は、「社員教育に力をいれている」という所に魅力を感じたことです。技術者として社会に出るからには高い技術力を身につけたいと思っていました。ソフテックの説明会で社員の研修や自己啓発に関する話を聞き「勉強しやすい環境が整っているんだな」と感じ、ここで働きたいと強く思いました。
幸い入社することができ、研修や実際の仕事を通して先輩や上司の方々から親切に指導していただき、未熟ながらも技術力が高まってきていると感じています。
今回は、私が研修で学んだことや、それが実際にどのような形で活きているのかを、失敗談も交えながらご紹介させていただこうと思います。

2. 入社前研修

名前の通り入社前に受ける研修で、指定された参考書を読み、与えられた問題を解答していき、入社前に不足している知識を補うことが目的となっています。私は情報工学系の学部出身ではなかったので、事前に知識をつけられる機会を得ることができてありがたかったです。また、基本情報技術者という資格試験の勉強にもとても役立ちました。

2-1. 使用した参考書について

入社前研修で使用した参考書は下記の4冊です。
「ソフトウェア開発」(小泉寿男、辻秀一、吉田幸二、中島毅、オーム社)
「コンピュータアーキテクチャ」(馬場敬信、オーム社)
「プログラムはなぜ動くのか」(矢沢久雄、日経BP社)
「C言語」(B.W.Kernighan、D.M.Ritchie、共立出版)

「ソフトウェア開発」と「プログラムはなぜ動くのか」の2冊は図や文章が簡易的でわかりやすく、知識がゼロの状態からでも問題なく読めると思いました。逆に「コンピュータアーキテクチャ」と「C言語」は事前にある程度の知識がないとわかりづらいと感じました。

2-2. 問題の解答はNotes上で

問題はLotus Notes (ロータス ノーツ)(※1)上に用意されていて、解答もNotes上で行います。(図1)
問題を解く上でわからないことや疑問に感じたところがあればNotesやeメールなどで研修担当の先輩に質問することができ、また、問題の解答が正解でも不正解でもヒントや補足事項などのコメントをいただけるので、勉強する環境が整っていると感じました。

問題一覧の画面です。各参考書に沿った内容の問題が出題されています。
図1. 入社前研修の画面

2-3. 研修時の失敗

入社前研修は入社前に終わらせなければならなかったのですが、私は研修を終わらせるのに入社後までかかってしまいました。卒業研究との兼ね合いでうまく研修を進められていなかったのですが、卒業研究が終われば1ヶ月半ほどたっぷりと時間を取って勉強できるので、一気に研修を進められると甘い考え方をしていました。
実際には、在学中入居していた下宿の部屋の片付けや、卒業式の準備、入社に向けての準備や引越し作業など、卒業研究後もやらなければならないことが多く、思っていたほど時間を取ることができませんでした。そのため、C言語の問題を解き終えることができず、研修を終わらせるのに入社後までかかってしまい、研修担当の先輩にもご迷惑をおかけすることになってしまいました。
今は時間が少なくても後で時間を多く取れそうだから大丈夫だろうなどと甘い考え方をしてはいけないと反省しました。

2-4. 資格試験への効果

ソフテックでは自己啓発の一環として技術系資格の取得推進を行っています。合格すれば受験費用や報奨金を会社から支給していただけます。新入社員が最初に受けることになる資格試験は「基本情報技術者試験」になると思います。社会人になると学生時代とは異なり勉強時間の確保が難しくなり、思うように勉強を進められないということがあります。
私は、今年の4月19日、つまり入社してすぐにこの資格試験を受けたのですが、やはり勉強時間をあまり取れず、もっと後に受験するべきだったかなと感じました。ただ、入社前研修で学んだ内容が全て基本情報技術者試験の出題範囲に入っており、これに随分助けられました。研修を終えたばかりだったので、学んだ内容も色濃く頭に残っており、そのおかげで解けた問題も多く、無事合格することができました。

3. フレッシュマンセミナー

入社後の最初の研修は、外部の施設で開催される2泊3日のフレッシュマンセミナーに参加してくることでした。受講する前は、ビジネスマナーを徹底的に練習して身につける場なのかなと考えていました。実際には、そういった演習だけではなく、講義で社会人としての道徳や人生観についてなどを教わったり、グループワーキングで他の参加者との共同作業を体験したりと、多くのことを学べる場でした。

セミナーには新入社員だけではなく引率の先輩も一緒に参加されており、食事中や1日の講義が終わったあとなどに、今後の仕事のことでアドバイスをいただいたり、談笑などしたり楽しい時間を過ごすことができました。また、グループワーキングではグループリーダーを務め発表を行ったのですが、その時の発表の仕方が良かったと先輩から褒めていただき、とてもうれしかったのを覚えています。
フレッシュマンセミナーでは、道徳やビジネスマナーについて学べ、新入社員同士や先輩とコミュニケーションを取ることもでき、貴重な時間を過ごせる機会でした。

4. 入社後研修

4-1. 研修内容

入社後の研修では、所属するグループの先輩エンジニアの下で行います。私はVisual C++でWindowsソフトウェアを作成するという課題を行いました。作成したソフトウェアは2つあり、1つ目のソフトウェア作成ではVisual C++のコーディングに慣れることを目的とし、2つ目のソフトウェア作成では実際のソフトウェア開発の手順に沿って作業を進め、開発作業に慣れることを目的として研修を行いました。
1つ目のソフトウェア作成では、下記の図2のようなソフトウェアを作成しました。まず、メイン画面(図2の左側の画面)のボタンを押したら、ボタンに対応するポップアップウィンドウ(図2の右側の画面)が表示されるという簡単な機能の作成から始めました。そこから、ポップアップウィンドウに1つずつ機能を追加していくという流れで課題を行っていきました。

自作ソフトウェアの操作画面です。簡単な機能紹介もしています。
図2. 自作ソフトウェアの操作画面

最初は、動けば問題ないと考えてコーディングを行っており、似た内容の処理がソースコード上で複数の場所に散らばっていても気にしていませんでした。しかし、その後、新しい機能を追加したり既存の機能を修正しようとしたときに問題が生じました。似たような処理が複数の場所に散らばっていたため、機能の追加や修正を行うとき色々な場所を見なければならず、どこに手を加えなければならないのか、手を加えたことによる影響範囲がどこまであるのかがとてもわかりづらくなっていました。それにより、作業に時間がかかるだけではなく、修正漏れによるバグの原因ともなり、苦労しました。先輩に、似た内容の処理を一箇所にまとめるなどメンテナンス性を意識したコーディングを行わなければならないと教えていただき、それを実感しました。

2つ目のソフトウェア作成では、Xancia(ザンシア)というコントローラに組み込むソフトウェアを作成しました。Xanciaとは、各種端末やサービス機器など(ビルの空調制御、自動販売機等)の制御を行うためのコントローラで、これにVisual C++で作成したソフトウェアを組み込むことにより様々な機器の制御を行うことが可能になります。Xanciaを用いた開発はソフテックではまだ行われたことがなく、このXancia用のソフトウェア開発はソフテックにとって新技術開発という位置付けにもなっていました。そのため、Xancia用のソフトウェア開発に関して、先輩に頼るだけではなく自分で説明書やサンプルプログラムを用いて調べなければならないことも多く大変でしたが、ソフテックでは新入社員でもこういった新技術開発に携わることができるので、色々な技術を学ぶことができる面白い環境だなと感じました。
作成したソフトウェアは、Xanciaで接点出力制御を行うもので、最大4chの接点出力を設定された内容に沿ってON/OFF制御します。

接点出力イメージです。
図3. Xanciaでの接点出力イメージ

作業は、仕様決定→設計→コーディング→テストという流れで進めました。仕様に関しては先輩が考えてくださったので、実際の作業は仕様をもとに設計書の作成を行う作業からになりました。
設計では、ソフトウェアの画面構成や機能を1つずつ考えていき設計書としてまとめ、仕様をどのようにシステムとして形作っていくかを決めます。設計はソフトウェアの品質を決める重要な作業なのですが、私は設計の段階で必要になる機能を全てまとめきることができておらず、コーディングの段階になってから足りていなかった機能に気づき設計書を修正するという後戻りが発生してしまいました。具体的なイメージを持てずに設計作業が進まなかったこともあり、設計はコーディングよりもずっと難しいと感じました。
一通りコーディングが終わったら、動作テストを行い、問題がないかを調べます。テストの際には、数値を入力する場所で文字を入力するなどの異常処理のケースも漏れなくテストしなければならないため、それら全ての動作パターンを確認できるテスト内容を考えるのに非常に苦労しました。プログラミング以外にも学ばなければならないことがたくさんあり、しっかりと勉強していく必要があると感じました。

4-2. 相談することの大切さ

Visual C++は、オブジェクト指向やMFC(※2)といったC言語には無い概念があり、最初は文法が全然わからず、そのためVisual C++の本を読んでも全然意味がわからず、1人で悩んでいてばかりで作業を進めることができませんでした。先輩から声をかけられ、その時になって初めて文法がわからないことを相談しました。その後、文法のことなどを教えていただき、ようやくプログラミングを行えるようになりました。
その時先輩から、わからないことがあればすぐに相談して欲しいと注意されました。相談しなければ自分がどこでつまづいているかを先輩に伝えることができなく、また、1人で悩み続けていると時間も無駄になってしまいます。相談すれば丁寧に教えていただけ、作業も進むようになるので、相談することの大切さを実感しました。

Visual C++のプログラミングに慣れてくると、わからないことがあっても自分で調べて解決できることも多くなってきました。しかし、それが原因で犯してしまった失敗もあります。コンパイルエラーが起こったので、その原因をインターネットで調べていました。そして解決法を見つけ自力で解決することができたのですが、それだけの作業にかなりの時間を使ってしまいました。
技術的なことに関する調べものなら、時間がかかっても相応のものを得ることができます。しかし、単にコンパイルエラーの原因を調べるだけなら、先輩に相談すれば数分で解決するようなことも多く、それに時間をかけるのは効率が良くありません。自分で調べることも大切ではありますが、それ以上に、調べる時間を決め、時間がかかりそうであったら先輩に相談して、時間を無駄にしないことが大切だと感じました。

4-3. 財産になる

この研修で作成したソフトウェアは、Visual C++のソフトウェア開発でよく使われる機能が組み込まれているので、それらの機能と似た内容のものを実際のソフトウェア開発のときに作成することがあります。そういうときにソースコードを見直して参考にすることができるので、辞書のように使うことができ、今でも役に立っています。
入社したばかりの頃に作ったものなので、コメントの記述がしっかりとできていなかったり、ソースコードにも荒い部分がありますが、自分の作ったものが財産となりその後にも活きているというのはうれしく感じます。

5. 最後に

入社してから4ヶ月経ち、先輩からのご指導のおかげで、未熟ながらも技術力が身についてきていると感じています。技術力だけではなく、社会人としての一般常識や行動規範など、学ぶべきものが多いので大変ですが、それらをしっかりと身につけていき、会社や社会に貢献できる人間になれるよう頑張っていきたいです。

拙い文章ですが、最後までお読みいただき、ありがとうございました。

(R.K.)

[注釈]
※1
ソフテック社員が情報を共有するために使用しているグループウェアです。
※2
Microsoft Foundation Classの略です。Visual C++用に開発されたWindows用のアプリケーション構築のためのクラスライブラリで、アプリケーション開発によく使われる機能が備わっています。

関連ページへのリンク

関連するソフテックだより

ページTOPへ