前回の「現場で求められるJavaプログラマ力(前編)」に引き続き、本記事では、実際のプロジェクトの現場でJavaプログラマに求められる能力について、記載いたします。多くの場合、Javaプログラマに限らず他の言語でも共通することですが、Java独特の部分も多々あります。
1. ストレス耐力
一般的に、プロジェクト開始当初は、落ち着いた雰囲気の職場でも、プロジェクトが佳境に入ってくると、レビューによる緊張と、残業による疲れが現れてくるものです。Java開発で一般的なウォーターフォールモデルの場合、Javaプログラマが本来登場するのはコーディングとユニット(単体)テスト工程ですが、企業やプロジェクトの内容によってはその他の工程にもキーパーソンとして参加します
。設計工程で作り込まれたバグであっても、それが次工程以降で露出することが20%は考えられるもので、そうなるとJavaプログラマの範疇で顧客やプロジェクトマネージャの場で説明することになり、最悪設計工程のミスをコーディングでカバーするとはめに陥ります(本来は、工程を戻すべきですが)。
プロジェクトが進むとトラブルや揉め事が発生するわけで、割りを食うのは大抵大人しい人です。大人しくてもストレス耐性に強い人はいますが、押しの強い人には弱い人も多いでしょう。ただし、揉め事は何もしないと解決しないし、ストレス溜めるだけですので、何とかしたいです。以下の本を一読されることをお勧めします。
「開発現場のストレスを減らすアサーティブ会話術 キッチリ上達する7日間講座」 (ISBN-10: 4798115266)
アサーティブ会話のアサーティブネスとは、相手も自分と同じように大切にすると言うことを基本としています。開発現場のストレス解決Q&Aも書かれていますので、オススメです。現実はもっと厳しいとは思いますが、覚えておいて損はないです。
2. 英語力
Java言語は、比較的枯れた、別の言い方をするとあまり今後変化のない言語です。もし、頻繁にバージョンアップする言語(例えば、AppleのiOSで使用されるSwift)のような場合には、最新の言語仕様を英語で入手する必要があります。書籍の発売を待っても良いのですが、タイミングを逸します。Webの日本語の情報を頼っても良いのですが、間違いがあるリスクが怖いです。
Java言語の場合、仕様が大きく変わることはないので、勉強するにしても和書を読めば良いでしょう。問題は、Bug databaseやJava関連フォーラムの情報の多くが英語であることです。それらを理解し、またバグ情報を登録するには英語力が必要です。
また、JavaEEでは、Java Community Process(JCP)の中で、Java Specification Requests (JSRs)として、新たな機能・仕様の追加が行われます。JSRは、英文で提供されますので、もしJSRの実装を開発する必要が生じた場合には、その仕様書を隅から隅まで理解しなければなりません。
プロジェクトで使用する製品が海外製品の場合、さらに英語力の必要性は高まります。国内代理店があれば、翻訳を行ってもらえますが、直接製品を購入している場合には、自分で英語により製品販売元とやりとりする必要が生じる場合があります。たとえ、日本に代理店があっても、トラブル調査に来た人が外国人であることはあります。代理店の場合、管理と営業は日本人、技術は開発国から来た外国人ということがよくあります。
さらにプロジェクトに外国人が参加することは、現在では普通になりました。主にコーディングの一部、または全部を海外に発注するわけですが、一部を発注した場合、日本のJavaプログラマと海外のJavaプログラマの間でコミュニケーションが必要になります。相手企業に日本語を得意とするマネージャが居る場合もありますが、居ない場合もあります。また、どうせならJavaプログラマ同士直接やり取りした方が意思の疎通が早いものです。
あなたの開発した製品が、海外でも使用される場合、トラブルシューティングのために現地に赴き、調査を行うことも考えられます。現地の自社の営業担当がいつも付いていてくれる期待してはいけません。自分一人でも、お客様とコミュニケーションをとって、原因究明を行い、状況説明、解決策の提示を行う必要があります。
よって、英語に自信のない方は、英語力を身につけましょう。Reading、Writing、Listening、Speakingを鍛えましょう。多くのIT企業で、TOEIC Listening & Readingの高得点取得が推奨されていますが、Speaking & Writingも重要ですので、全方位で勉強しましょう。
3. 俯瞰力
Javaプログラマとしてだけでなく、プロジェクト全体を俯瞰し、理解する力です。往々にして、プロジェクトでは、自分の領域を完遂すれば良いと考えます。
しかし、要件定義から納品、運用までの全体を通して、Javaプログラマとして全ての工程の資料に目を通し、Javaや使用するフレームワークやアプリケーションサーバにとって課題を見つけたり、現実的でない設計を発見したりした場合には、プロジェクト内で解決を図るべきです。そうでなければ、とんでもない仕様のコーディングを要求されるかもしれません。自分を守り、かつプロジェクトを守るためにも、自分の範囲にこだわらず、Javaプログラマからプロジェクトマネージャになったぐらいの意識で、プロジェクトに参加してもらいたいと思います。
二回連載で「現場で求められるJavaプログラマ力」をお届けしました。
Javaプログラマの方は参考にしてみてはいかがでしょうか。
ページが見つかりません
指定されたURLのページは存在しません。
サイト更新などによってURLが変更になったか、URLが正しく入力されていない可能性があります。
ブラウザの再読込を行ってもこのページが表示される場合は、サイトマップまたはサイト内検索でお求めのページをお探しください。