開発者はインフラを軽視してはいけない

外注の上げてくるアプリの出来が相変わらず悪い。
特に、インタフェースが統一されていなかったり、帳票の完成度が低かったりなどユーザから見ても明らかに不具合だとわかるNGを平気で連発してくるのがすごい。しかもちっとも直らないから手に負えない。
なんでこんなことになってしまうんだろう。
PM「帳票単位、画面単位で作業分割するからでしょ。厳密に言うと、ファイルベースで作業分割してんだよ」
僕らの開発したアプリはこうなっていない。インタフェースまわりはきちんと統一されている。
僕らのプロジェクトは1週間でアプリを作り直さなければならないレベルで、スタート時点から既に燃えていた。
だから外観に統一感を持たせるためにフレームワークを作るなどといった時間はかけられなかった。
スタート時のメンバーはいくつもの修羅場をくぐり抜けてきたPM、windowsアプリの開発経験があるPGさん、プログラミング経験が少ないNEさん、コードがほぼまったく書けない僕の4人。
さて、どうしたか。
まずSubversionを導入し、それぞれがDB設計/SQL担当、ロジック担当、ユーザインタフェース担当、Excel帳票/結合テスト担当となるよう作業を分担した。
バージョン管理システムを導入することで、ロジック部分とUI部分のコーディングを平行して行える。
エンジニアとして意識が高く、デザインセンスもあるNEさんがUI部分専属となることで外観が統一され、それ以前に外注が製作したものと比べて格段に見栄えが向上した。
同様に帳票はレベルが低いながらも僕が独りで担当することで外観にばらつきが少ないものができた。
見た目が関係する部分を1人で担当することにより、ユーザがぱっと見ておかしいと感じさせる部分を減らすことができたというわけ。
これがバージョン管理システムのない開発環境だとどうなるかというと、ロジック部分とUI部分で担当分けすると、ファイルのコンフリクトが起きてしまう。せっかく作業したのに上書きされちゃったとか、目も当てられない。
それを避けようと思うと、ファイル単位で作業を分担せざるをえない。
めいめいが帳票をつくり、画面をつくり、機能を実装すると、よほどレベルの高い開発部隊でないかぎりは各画面に統一性がなくなってしまう。しっかりした開発資料を作成したり的確な指示を出したり個々の意識が統一され、メンバー全員の意思の疎通が十分にはかれてるチームなんてのはよっぽどの勇者たちが集わない限り難しいだろう。
PM「だからバージョン管理システムのない開発会社に委託すんなってこと」
インフラ整備は大事だ。

IT,work

Posted by CINDY