依頼主は必見!?webエンジニアへの発注コストを減らす方法

発注者も受注者もメリットかも!?既存WEBサービスの改修をかんたんにする方法

先日イベントでこんな相談を受けました。

相談者Aさん

以前、学生さんに安くwebサービスを作ってもらったのですが、そろそろ新しい機能を追加しようと思っています。

今度は別のwebエンジニアさんに相談しているのですが難航しています。

  • 既存のソースが複雑で解析不可能
  • 使ったことないフレームワークを使っている

という理由でwebエンジニアが仕事を受けてくれません。

どうしたら良いでしょうか?

なんでも最初は学生に安く作ってもらったということですが、ソースが適当だったりして引き継ぎたくないような感じだそうです。(気持ちはわかります^^;

あとフレームワークも使ったことないものだと億劫ですよね。

例え同じフレームワークであっても自分がなれてるバージョンと違うだけでも抵抗感じます。

開発する側はそれだけ環境の些細な違いでもシビアに感じますね。

私はイベントで酔っ払いつつ、いくつか対応方法を教えて差し上げました。

その後帰宅中に「webエンジニア・発注者のいずれかが対応方法を知っていたら解決する話なのかも」と思いまして記事にしました。

この時期では既存アプリケーションを(もしかしたら)簡単に改修できる方法をお伝えします。

webエンジニアへの発注コストを減らす方法

いくつかのケース別にお答えしたいと思います。

既存のソースが汚くて解読したくない

WEBエンジニア

既存のソースって学生がやったみたいですが、適当すぎてたりバグがあったりして読むだけで萎えます。なので引き受けたくないっす

この場合、「最初から作り直してください!」と言ってください。

難解なソースコードを解析しつつ他人のやり方にあわせて改修をする苦労をするくらいなら、一から作り直したほうが断然楽です。

まっさらな環境なので、自分の好きな言語もフレームワークもバージョンも選び放題!

すべて作り直すとかえって大変なのでやりたくない

WEBエンジニア

今回の改修はマイページの機能だけなのに、他の画面まで修正なんてやりたくねーっす

既存のwebサービスの画面数が多かったり、今回の作業範囲が狭い場合だと確かに全部修正するのは辛いかもしれませんね。

こんな場合は「マイページの画面だけ一から作り直してください。webサーバーの機能(apacheならmod_rewrite)でその画面のURLの場合「だけ」新規開発画面へ遷移させてください

どういうことかと言うと、webサーバー側の設定で特定のリクエストを別のディレクトリに振り分けることができるのです。

MEMO
webサーバーは「受け取ったリクエストに対する値を返す」ということだけやっています。なので、例えば画面AからBに遷移する場合、内部的に画面AはPHP、画面BはC#で作られていても問題ありません。

同じサーバー内の別ディレクトリに振る

図にあるように、例えばマイページ画面が今回の機能追加・修正範囲だったとします。

https://hoge.com/mypageというリクエストの「/mypage」という文字列で検知させ、

リクエストを新規開発した側へ流すことができます。

既存と同じ言語・フレームワークを使って内部的に「/newmypage」みたいな画面を新規作成するケースや、

既存とは別に新しい環境(異なる言語・フレームワークなど)でドキュメントルートを「/var/www/newapp」にして構築するケースでも対応できると思います。

別サーバーに振る

上記の例は同じサーバー内で表示してますが、別サーバーでも可能です。

別サーバー

現行サーバーだと使いたいバージョンの言語やフレームワークが使えない場合は別サーバー用意したほうが楽かもしれません。

あと、レンタルサーバーの場合はwebサーバーの設定に制限があるかもしれません。
(ApacheとPHPの組み合わせだとmod_rewriteと.htaccessが使えることが条件になります)。

その場合、webサーバーの設定を自由に使えるサーバーを別途契約して上記の逆(新サーバー側から旧サーバー側へリクエストを流す)という事もできると思います。

リクエストURLを画面単位で振り分ける

また、さらにリクエストURLを解析すれば、/mypageのプロフィール更新画面(/mypage/edit)だけとか、

改修するページを限定することができます。

このように、うまいこと作業工程を減らしてみてください。

MEMO

もしリリース後に問題があった場合、webサーバーの設定だけで旧画面に戻すことができるのもメリットです。

ただし、DBの格納データに変更がなければの場合になります。

DB側にも変化があるようでしたら、改修後も新旧のデータを格納するような仕組みにしておけば切り戻し対応も楽にできると思います。

webサーバーの仕組みをいじりたくない

WEBエンジニア

理屈はわかったけど、webサーバー側の設定をいじるのがかったるいっす

この場合はこのエンジニアに発注しないでくださいw

おそらく断る口実を作っているだけのような気がします。

あなたの発注に魅力を感じていないのかもしれません。諦めましょう。

まとめ

  • WEBサービスの既存改修は一から作り直したほうが断然楽
  • WEBサーバーの設定を利用すればリクエストURL単位で切り出して新規開発することが可能
  • WEBエンジニアが断りたい口実の場合もあるので、ある程度で見極めて諦めましょう

webエンジニアやってみてよかったか???キャリア12年の私が語ります

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です