ゼロからのスタートは、不安だらけ。
私は大学時代には文系学部でITの専門知識を学んでこなかったために自分でもシステム開発ができるかということが心配でした。
入社から3ヶ月間、Java言語を使用してのシステム構築の研修を受講し、休日も会社で先輩に付き合ってもらいながら、分からなかったところを復習する時間をつくりましたが、研修終了後もシステム開発ができるのか、まだまだ不安なところは残っていました。
自分が作成したプログラムは毎回エラーだらけで動作せず、プログラムコードをとても他人に見せられるものではありませんでした。だから、このまま自分がITエンジニアとして一人前になれるのかが不安でした。
広い視野で自身の課題を見つめ直したら、先輩を頼れるようになった。
Javaの基本はひと通り学んだのにシステム開発ができないということを大変気にしていました。プログラムを書けば、エラーだらけで動くようにするために膨大な時間が掛かってしまい、開発のスケジュールは遅れてしまう。この課題を考え直しました。
先ずはうまくできないときに、自分ひとりでがんばってしまうことを見直してみました。システム開発はチーム全体で行うものなので、先輩たちをもっと頼って、仕事をすることを同じチームの先輩に教えてもらいました。自分では、「自分の問題は、自分で解決しなければいけない」というキーワードを大切にしていたのですが、その責任感がかえって仕事では足枷となっているのかもしれないと感じました。
このように考えた結果、自分用の課題管理表というものを作成して記入していくこととしました。自分がプログラミングをしていくうえで、疑問に思ったことやうまくできないことを一覧表に記入して、1日に1回、先輩と相談し、課題を解決していくことを実施してみようと思い、1日1回のレビューをお願いすることとしました。
ひとつ壁を越えたら、壁は成長の素であると気づいた。
課題表を使用して、自分の中での疑問や不安点が先輩と共有できることになったことで、プログラミングは驚くほどに捗るようになりました。
やり方が開発されると、自分は転がる石としてノンストップ状態となります。
すると、プログラミングが上手くいくようになってくると、設計フェーズも任されるようになってきました。 もともとプログラム設計にあこがれをもっていたので、設計書に作成者の名前のところに自分の名前が入るだけでも、感動しました。 自分の工夫点としては、自分がプログラミングの際に、上手く行かなかったことを設計書にも反映できるようにと、設計書の作成に注意を払っていましたが、ここでもまた問題が発生しました。
問題は、自分が作成した設計の詳細をクライアントに説明できないことでした。
クライアントと自分では、共通認識としてもっているサービス内容やシステムに対する知識が異なるために、お互いの会話がなかなか噛み合わないことが問題となっているようで、これを埋め合わせなければならないことに気付きました。
壁にぶつかることを楽しめるようになり、さらにできることが増えていく。
新しく生まれた課題に対しては、打ち合せ時にクライアントに「イメージ図」を毎回提示することで解決を計りました。
サーバの構成やプログラムのビジネスロジック、また、作成されるファイルがどのシステムに転送されるかなど、システムをあまり理解していない人でも、システム構成が理解でき、新規サービス構築時にどのようにシステムとの連携ができるかなどの意識をして、イメージ図を作成し、打合せに望むことによって、クライアントとの話が進むようになってきました。
こうやってどんどん課題を解決していけば、転がる石に苔はつかない状態になるのだと、また新たな発見をしてしまいました。
後日談
こうして、さまざまな開発工程の課題の発生と解決をひたすら行っていたら、気がつけばウォータフォール型の開発モデルにおける全行程を経験するシステムエンジニアとなっていました。
設計、プログラミング、テストやリリースなどの様々な工程では、常に新しいことの連続で対応しなくてはいけない課題も多く苦労もしましたが、その分、刺激も多く仕事を楽しむことができました。
新しい知識を吸収する度に、あたまの中でレベルアップしている音が聞こえる毎日を送っています。