Yuigo・ん・・・湿っぽい

モルック、システムエンジニア、その他趣味。大学生のころから使っているので、昔の記事は恥ずかしいし今の思想とは異なっていることが多いです。

2年目に入るということ

2年目に入るということ

こんにちは。SEとして社会人になって1年が経ち、2年目に入るので簡単に書けることを書いていこうと思います。

1年目は何があったか

1年目は何をしてきたんだっけ、ということを振り返ります。

研修

外部研修

未経験からスタートしたので、初心者用の外部研修を受けました。 「JavaでWebアプリケーションを作成する」ということを目標にして、Javaは基本となる言語使用とオブジェクト指向プログラミング、MVC設計を、それに加え、必ず必要になるデータベース(MySQL)、HTML5&CSS(実際にはJSPでViewを作成した)、技術的なのはこの辺を勉強しました。

とりあえずソフトウェアプログラミングが出来ること、という範囲で研修カリキュラムが出来ていた、ということが分かったのはだいぶ後になってからだったので、このときはインフラまわりに関するものは存在さえ知っていたか怪しい、と言うくらいでした。今も存在を知っているとも言い難い状態ですが。

研修の最後はプロジェクト演習ということで簡単なWebアプリケーションを作成しました。チームで行い、一応ウォーターフォール型開発(WF)にのっとっていたのですが、実際の現場はほぼWFで行われているにも関わらず研修の講師が「(スパイラルやアジャイルなども含めた)どの形で開発してもいいよ」とかいう寝言を言ってしまったがために、実際にどのような開発工程を辿ったのか、ということを思い出すことが出来ないくらいぐちゃぐちゃになりました。

また、研修においてチーム開発のためのツールや高機能エディタなどは紹介されることはほとんどなく、この世界には便利なツールや手段が沢山ある、ということを知り始めるのは7月くらいまでお預けになりました。演習もソース管理が(リーダーを務めた)私の端末をファイルサーバにする、というお粗末な形でした。まあ、エンジニア研修というよりもパソコンを触るのも怪しいくらい、という人向けの研修に突っ込まれたので仕方ないと言ってしまうことも出来るのですが・・・

内部研修

外部研修を2か月間受けるまでは、現場に出るまでの間は自社内で研修を続けていました。

研修とは言っても研修を担当してくれるトレーナーやメンターが決まっている訳でもないので、あってないような課題をこなした後は、ひたすら自分が必要だと感じる勉強を続けていました。

具体的には、現場で使うことが決まっているOracleの基本操作、テスト実施方法やテスト仕様の作成方法といったもの、(現場で使うかもと聞いたので)Springフレームワークの勉強を行っていました。ここで初めてソース管理、とはいってもSVNにはなりますが、チーム管理っぽいツールを使用することができました。ただローカルの開発環境からビルド→デプロイを経験できなかったのは悔やまれます。

自由な時間が長かったので、モラトリアムの延長線上のような期間だったように感じていました。

最後の2週間くらいはSpring Bootの勉強をしていました。xmlファイルや様々な機能が複雑にからむレガシーなSpringのフレームワーク仕様を未経験からスタートしたような人間に理解することはかなり難しく、それよりもBootのようなJavaソースやアノテーションで多くの内容が完結しているようなフレームワークの方がずっと理解しやすく、そこから現場で使用するSpringに掘り下げよう、という意図があったからです。

これはなかなか効果的であり、短い期間でぐっと理解が進んだような気がしています。

どういう風にしたらエンジニアとして成長することができるんだろう?と本格的に考え始めたのもこのタイミングで(外部研修の時期はあまりにも視野が広がらなかった)、色々と情報収集を始める間に、言われたことや現場で使うだろう、という分野以外にも勉強をどんどんしなければ、あっという間にどうしようもない状況になってしまう、という危機感が芽生えました。

同時に、時代の流れに追いつこうとせずとも、やっていこうと思えばやっていけてしまう手段もあるんだろうな、ということも何となく感じました。そのうえで、自分がどうなりたいのか、ということを考えていかなければならない、決断をしなければならない。

初現場(OJT

OJTという名目ですが、初の現場での開発業務を開始しました。

分かってはいましたが、開発業務全体の中でプログラミングやソースコードを読む、ということに掛けられる時間は半分もなく、もしかしたら4分の1もない、ということはこの現場でも同じことでした。こういう開発手法を取っている以上、これに関しては受け入れるしかないかな、という印象です。

実際にウォータ―フォール開発が実現されているのか、ということに関しては最初に聴いたときから疑問があり、作業の大半が手戻りへの対応、という文面を見たときはやはりそうか、という印象でした。その状況下で手戻りを無くそう、ということがテーマとしてよく掲げられているようですが、手戻りを無くすよりは手戻りをしても良いような開発手法ではダメなのか、という意見を隠し持つようになりました。今のところ、WFは手戻りという存在によって、開発者にかかるプレッシャーが大きくなっているのではないか、と思います。

(多分ですが)いずれ新しい現場に移り、更に違う所に行き、という風になっていくと思うのですが、大事にしたいのは腐らないこと、その場その場をしのぐだけで精一杯にならないことだと考えています。

結局どうなりたいのか

自分は結局どうなりたいのか、ということを考えることが多くなりました。技術を身につけ知識を蓄えることで結局どういう状態を目指していくの?ということを自問自答し続けていたような1年間だと思います。就活をガッツリ経験しているとこんなことはとっくに終わっているのかもしれませんが、真面目でなかった自分はここでそのタイミングが来た、と言うだけのことかもしれません。

考えた結果として、今のところの答えは、自己評価を上げていくことに落ち着いています。お金を得るわけでもなく、名誉的な部分で満足したいわけでもなく、自分は(仕事や趣味や生活全部をひっくるめて)善く生きている、という自覚を得たい、ということを目標としています。

知識を追いかけ技術を自分のものにする、ということも、善く在る、ということへの道筋に他なりません。

モチベーションを維持するためにコミュニティを増やしていく

ただ、がんばるとか我慢するとかではどうにもならないのが自分が凡人であることの裏付けでもあります。現在も、仕事の重さを言い訳にして、資格の勉強や勉強会、イベントへ出向くことからどんどん遠ざかっている、あまりよくない状態です。それでも、善く在ることを目指すのであれば、普通の状態を保つだけでは到達できない、と言う自覚を持たなければならないのですが、自分の感情や怠惰といったものには常に負け越しています。

その対策として、コミュニティを増やしていくことで、同じように成長を目指している人がいること、自分だけの問題を自分だけのものではなくしてしまう、ということをすれば、がんばる以外にもモチベーションを保つための手立てが出来てくるのでは、と考えています。だから、色んな所に行ってみる、簡単そうに見えて自分の内向性では厳しいことは自覚していますが、行けばきっといい経験になることは、これまでの事例から分かっていることなので、なんとか背中を自分で押していきたい。

循環することの重要さ

色んな事をこの1年で考えることになりましたが、その結果、循環と言う言葉に集約されるようになりました。例えばどんなものがあるか、以下の通りです。

  • 具体的な方法論⇔抽象的な知恵
  • 仕事⇔生活
  • 冷静に分析すること⇔時に感情的に挑戦すること
  • 勉強する⇔時に身体を動かしリフレッシュすること
  • 俗世⇔芸術
  • ・・・

要はバランスを取ること、対立する二項について片方だけに執着をせず、偶には対極から眺めてみることが価値に繋がる、ということを自分に対して言い聞かせていこうと考えています。

もうすこし書けるかな、と思いましたが、とりあえず投稿してから考えよう、ということで一旦ここまでにします。