回想
結局、プロジェクトのような集団開発における私の非正規社員時代は辛いだけの日々でした、では、どうすれば良かったのか、冷静に自己分析を行い、何らかの結論に至るまでには多大な時間を必要としました、ちょっぴり嬉しいのは、この経験を新人社員研修に活かすことができたことです、新人社員は成功談より失敗談の方が喜びます、いつのまにか、失敗力は私の武器になっていました
これは致命的
プログラミングにおいて機能分割ができない、あるいは、それさえ気が付いていない、そんなプログラマーがまだまだ数多くいるのかもしれない、プログラムを機能に分割する、その機能をさらに分割する、各機能を日本語でも良いので箇条書きでフリーハンドにて一度書いてみる、この程度の柔軟性を持たずに、いきなりコーディングしても何度もつまずき後戻りするだけです、そして、時間だけが無駄に過ぎて行くのです、Java言語ならば機能ごとの必要メソッドを洗い出してみましょう、優秀な技術者は経験上、この程度は頭の中で出来上がっています、ですが、混乱すると優秀な技術者だってフリーハンドで書いて頭を整理する姿は決して珍しくありません、もし、あなたが機能分割できなっかたら、作成すべきプログラムの意味を理解していない証拠です、仕様を再確認し何をするプログラムなのかを今一度見直すことをおすすめします
IT系の専門学校では言語教育を行う場合、文法は教えてくれますが、機能分割、引数、戻りの話はあまり重要視されていないのが現実なんです、ですから、いきなり開発現場に配属されると戸惑いが起きるのです、人が作ったプログラムを利用する経験が極端に少なく、卒業研究で複数人数での開発作業を行ってみたら、担当者全員に’public static void main’が存在していたなんて、笑い話が現実に起きるのです
機能の取捨選択を行う必要性
プロジェクトには既存のプログラムが存在しています
ここには、鉄則となる心得が存在しています、それは、’同じ機能を持つプログラム(Javaならメソッド)が存在してはいけない’のです、必要とする機能が既に存在しているのなら必ず利用すべきであり、存在しなければ新規作成なのですが、もっと厳秘に言えば、Java言語が既存で持つライブラリーに存在するか否かもチェックすべきですね、経験を積むとこの辺の嗅覚を感じるようになります、’この程度の機能ならどこかに存在しているはず’と、この嗅覚、とても重要です、ここまで考慮して存在しない機能は新規作成になるのですが、今の時代の開発って、とにかく、新規作成はしたくない、新規作成は時間がかかりバグの宝庫、そんな時代になっているはずです
機能分割の徹底
私が担当した新人社員研修では機能分割を徹底的に行いました、例えば、キーボードから入力した文字列を画面表示するだけのプログラムであっても、キーボード入力するメソッド、画面表示を行うメソッドに分割するのです、新人社員達にメソッド、引数、戻り値を身近に感じさせていたのです


コメント