より良い開発環境とは

今日は、常駐先の開発環境に対する不満(ぶっちゃけ愚痴です)と、その改善案を提案してみます。

(提案は自分に対してであって常駐先に対してではありません。そんな政治力はありません。)
 
まずは問題点から。 (私のスキルの件は棚の上に置いておきます。)

最重要案件

貸与されているノートPCがクソ遅い。
Eclipse + アプリケーションサーバ + DB開発ソフトの同時起動が出来ないのがつらいです。
様々なツールがメモリ不足で途中で固まってしまいます。
IEも2,3タブ開いたら2,3分待たされる感じです。(システムがIE向けなのでIE使ってます)
これがかなりストレスです。
いまどきメモリ2GBて!
 

 重要案件1

命名規則やコーディングスタイルが統一されていない。決める様子もない。
 わりと大きな会社の基幹システムらしいので、DBの規模とかもそれなりなんだと思いますが、カラム名が日本語なので、コード上でどう表現するか迷います。
英語に訳す?ローマ字表記?決まっていないので毎回迷っています。
先輩は「getKingaku( )」みたいな感じで英語ローマ字混在なのですが、
ローマ字表記って、書き方が数通りあったりするじゃないですか。
(「ん」が「n」か「nn」か、「ちょ」が「cho」か「tyo」かなど)
しかもそこでまた揺れてるんですね。
私はそれが嫌でいちいちGoogle翻訳で英語に訳しています。
絶対に正しい意味になっているとは言えませんけれどね。
実は、そもそも業務ドメイン上の用語が理解出来ていません。問題ですね。
 
また、クラス名が動詞であったり、状態持ちクラス名がUtilだったり、JSP名がID連番だったりしました。
 

 重要案件2

テストがしづらい。 
ソースコードのどれくらいかはわかりませんが、かなりの画面数でJSPにロジックを全て詰め込んであります。2003年とかに書かれたようです。(長いと1万行を超える)
そして全く同じコードがいろいろなJSPで散見されます。(うごごごご)
クラス化されてないということは、JUnitとか使う気は全く無いようです。
また、テスト環境のDBは、本番環境からコピーしたものが2つのみで、完全コピーなのでめったくそデータ量があります。ちょろっとクエリを走らせたいときにも大量にデータが来てしまうので、いちいち絞り込む必要があります。
もちろんテスト時にはモックもテストデータも使わず全てそのDB内のデータで行います。
手動で行ったテストの結果はExcelにぺたり。
 

重要案件3

ソース管理が上手く機能していない。 
SVNを使っているのですが、開発ブランチはSVNで管理されていないため、後になって実はコンフリクトしていた、ということがままあります。
また、DBのストアドプロシージャなどもバージョン管理されていないようです。
開発サーバのソースを更新する際はその都度マージツールを起動して、コンフリクトが無いか事前に調べています。
 

ひとまずこんなところでしょうか。
ここからは改善編です。よく最適解的に耳にするツールや手法を使ってみます。
 

最重要案件

これについてはかなりの政治力が必要になるのでちょっと難しいですので、残念ですが飛ばします。
 

重要案件1

やはり、社内(プロジェクト内)Wikiが有効なのでは無いでしょうか。
コーディングスタイル、基本的な命名規則、業務ドメイン上の用語をどう表すかの対応表やスペリング、意味集などがあるとかなりソースコード上の混乱を抑えられる気がします。
 

重要案件2

まずロジック部のクラス化、データソースなどは外部注入できるようにすべきだと思います。テストデータは、本番DBのクローンに加え、テキスト形式で作成したものを新規に流しこめるような、データが常に空のDB(テストが終わったら全てTRUNCATEされる)ようなDBもあると良いのではないでしょうか。
 

重要案件3

やはりGitを使いたいですね。デファクトスタンダードになりつつありますし。
可能なら社内サーバ上にGithubクローンを置いてバージョン管理できると良いと思います。コードレビューもできるようになりますしね。
問題は学習コストでしょうか。
 
 
いかがでしょうか。これが全て実現できたなら、かなり改善されたと言える気がします。
環境改善に悩んでいて、政治力がある方々の参考になったりしたら嬉しいですね。
 
私はこれから社内政治について考えてみます。
おやすみなさい。