不動産仲介会社のチャットシステムを含む接客&顧客管理WEBサービスの開発をPHPにて開発しました。
JAVAエンジニアに求められる能力
私は2012年度に新卒で独立系IT企業に入社し、6年間JAVAエンジニアとして働いてきました。
これからJAVAエンジニアとなる方や、JAVAエンジニアへの転職を考えている方向けに私の体験談を記述します。私はJAVAエンジニアに必要な能力としては以下の3つの能力を挙げます。
まず、物事をロジカルに考えられる能力です。
プログラムの動作は必ず決まった法則に従って動作します。そのため、同じ状況でプログラムを動作させたなら、必ず同じ実行結果が得られます。「たまたまこうなった」「なぜかこうなった」ということは有り得ず、そうなるための要因が存在します。わからないことがあったとして、とりあえず動作させてみて、たまたまうまくいったとしても、そこにはリスクが存在します。何故そうなるかを理解しながらシステムを構築することが求められます。バグの解析なども、どの処理の結果が作用してバグを引き起こしているか探り当てるために、物事を論理的に考えることが必要です。
新規開発の際にも、何故そのような構成でプログラムを構築したか説明できるように作成しなくては責任ある作成物とは言えません。プログラムは気分によって動作が変わるようなことはなく、必ず与えられた条件に従って動作します。そのため、プログラムの構造を基本から理解し、想定通りの実行結果を得るために正しくプログラムを組み上げることができる人材が必要となります。
二つ目に、環境への適応能力です。
プログラムを開発する環境は現場によって様々です。あらかじめ指定された環境で開発する現場もあれば、自分で開発環境を作り上げる場合もあります。現場が変わった際に、今までとは違う環境で開発することもありますが、できるだけ早く新しい環
境に適応しなければ開発能力が疑われてしまいます。また、今までの自分の経験を新しい現場に活かすことができる人材も求められます。現場ごとのやり方をいち早く理解し、適応することができると、大きな強みとなります。
また、その現場の悪い点を見つけ出し、改善することができるような能力も求められます。上記では開発環境について記述しましたが、JAVAプログラムの開発ではJAVAバージョンの互換性についても理解しておく必要があります。
JAVAのバージョン6ではできないが7からできるようになったことや、バージョン8から導入された事などは突き詰めていくと複雑です。
現場で使用しているJAVAのバージョンを把握し、どのようなことができるかを理解しておくことは強みとなります。
他に、プログラムの静的チェックツールの導入や、コンパイルツールの適用など、現場によって開発の仕方は思っている以上に多種多様です。
上記でも触れましたが、それぞれのやり方の特性を理解したうえで使いこなすことができると、非常に魅力的な人材となれます。
最後に、コミュニケーション能力です。
私は、今の仕事に就く前は、JAVAエンジニアは人とはあまり話すことなく、黙々と自分の仕事をするイメージでした。
しかし、いざ現場に配属されてみると、人との会話なくては仕事が成り立たないことに気が付きました。
まず、自身の進捗報告のためにリーダーと会話する必要があります。
このとき、リーダーの時間を多く割いてしまってはチームがまわらないため、短時間で的確に報告する必要があります。
他に、わからないところがあった際に、自分で調べるよりも、わかる人に聞いた方が早いため、人に質問することが増えます。
リーダーへの進捗報告と同じく、質問に多くの時間を割いてしまうと、その人の作業時間を奪うことになってしまうため、短時間で解決する必要があります。
また、質問だけでなく知識の共有のため、チーム内に情報連携することが多くあります。このとき、だらだらと文を書いてしまうと、情報を連携された側も頭に入りません。
簡潔に的確に情報を載せたものを連携する必要があります。
上記したように、人と話したり、メールなどのやり取りをする機会が多く、一人で黙々と作業するようなケースは稀です。
そのため、コミュニケーション能力が必要と言えます。
上記で、コミュニケーション能力と書きましたが、ここでは「人と円滑にやり取りする能力」という意味で記載しました。
確かにその能力も必要ですが、本当に必要なのは「短時間で正確に人と認識を合わせることができる能力」です。
というのも、口頭でやり取りしているだけでは「わかったつもり」になってしまうことが多いのが現実です。
実際に作り終え、実物を見せると「こうじゃない、こういうつもりで話していた」となることが多々あります。
その結果、作り直しなどの手戻り作業が発生することもあります。
これは物を作成する前の認識合わせが不十分だったために起こりうる現象です。
図や表を用いて想定の完成図を見せるなどをすれば回避できる事象でもあります。
こうならないためにも、物を作成する前にあらかじめ十分に認識合わせを行う必要があります。
そして、その十分な認識合わせをするために必要な能力こそがコミュニケーション能力です。
より少ない時間で、正確に、認識を合わせられる人材が求められます。