カンボジア人が制作したWEBサイトの保守・修正の愚痴あれこれ
ជំរាបសួរ អ្នកត្រូវបានគេ ពីរបៀប ធ្វើ? ខ្ញុំ ជប៉ុន
彼はカンボジアの有名なコメディアンで...って名倉やないかい!
カンボジアでのWEB制作について
カンボジアでは、日本と違ってITワーカーは割と人気の職種。現地の子と話をしてると、医者とか弁護士よりも、IT関係とかバンカーの方がカッコいいというか、イケてる仕事ってイメージがあるようで。
なぜかって?給料が比較的高いってのもあるけど、デスクワークなのが結構魅力らしい。外は暑いからね。納得の理由。あと、スーツを着れる仕事に就いてるってのも結構ステータスになるらしい。
ちなみに、カンボジアの最低賃金って、月140ドルぐらい。レストランスタッフなら140ドル、マネージャクラスで400ドル、1000ドル貰えばローカル企業の社長クラス。
そんな中、私が知っている事例だと、フリーのカンボジア人プログラマがポータルサイトの制作を請けて、2ヶ月納期で2000ドルの報酬を貰っていた。ITのスキルさえあれば、並のカンボジア人の年収以上を叩き出すことも可能だったりする。夢のある話だ。
さて、私は今、そんなカンボジア人たちが作ったWEBサイトの保守・修正を行っている。カンボジア人のプログラマと一緒に働いたことはないけど、彼らが残したソースコードと戦う毎日だ。
その中で、色々と「このやろー!」と思うことがあったので、ここで愚痴りたいと思う。
事例1:車輪の再開発
とあるサイトでBootstrapというCSSフレームワークを使っていた。
詳しい説明は省くが、このBootstrapの魅力は「PCとスマホの表示切り替えをすっごく楽に実装できる」という点にある。
Bootstrapの記法を理解し正しく運用すれば、HTMLでマークアップするだけでレスポンシブサイトが実現できるのだ。CSSも、 Javascriptも、PHPも、いずれのコードも必要ない。素晴らしい。
が、Bootstrapを採用しているのにも関わらず、PHPの自作関数でレスポンシブ機能が実装されていた。俗に言う「車輪の再開発」である。
さらにソースコードの中身をよくよく見ていると、Bootstrapの記法を完全に無視し、必要なスタイルがCSSで再定義されていた。
どうやら、Bootstrapの基本概念や仕様を理解しないまま、開発を進めてしまっていたらしい。なんてこった。泣いた。
また、このサイトはLaravelというWEBフレームワークで構築されていた。これまた詳しい説明は省くが、共通部品はテンプレートパーツとして再利用できる仕組みがある。
Don't repeat yourself、同じコードを繰り返すな、再利用しろ。プログラマの原則である。
だが悲しいかな、コピペで増殖した似たようなコード群。テンプレートパーツに引数を渡して実装すれば、機能を使いまわせるのに。
それに加え、MVCモデルの恩恵もガン無視である。モデルクラスにロジックを埋め込めば、ビューでもコントローラーでも使いまわせるのに。ファットコントローラーはマジ勘弁。
フレームワークが提供する素晴らしい機能は悉く無視され、残されたのは残念コードだったとさ。なんたる悲劇。
事例2:機能の実装漏れ
「このページに検索機能を付けてくれ」と頼んでいて、そのページには検索ボタンが設置されていた。いざボタンを押してみると、トップページに逆戻り。
私が引き継いだ時はそんな状態だった。単なるリンクの設定ミスかなーと思っていたが、サイトを解析している内に驚愕の事実が。そもそも、そんな機能は実装されてなかった。
泣く泣く私がその機能をイチから再実装するハメに。なんでや。
事例3:点在するバグ
絞り込み検索をすればするほど、検索結果が増えるバグ。解析してみると、SQL文のANDとORの設定が逆だった。おい。
管理画面で情報入力する際、どうも挙動がおかしい。解析してみると、参照するテーブルが間違っていた。ソース上には、バグを直そうと頑張った痕跡があった。どうやら途中で力尽きたようだった。おい。
他にも細かいのがいっぱいあるけど、こういう感じのバグが非常に多い。
日本と違って、70%程度の出来でリリースしてしまって、運用しながらバグ潰し...ってスタイルが海外では一般的なそうなので、これが一概に悪いとは言えないのかもしれないが。
事例4:BRタグ連打
キイイイイイイーーー!!!!
HTMLタグのマークアップをするとき、行間を空けるためにbrタグを多用していた。古き良きテキストサイトかよ。やめてくれ。段落や行間を表現したいなら、pタグ使うなり、spanタグでマージン設定するなりしてくれ。
あーすっきりした
こういう愚痴って、多分カンボジアに限った話じゃなくて、日本でもよくあるんだろうなーとも思う。
コードのリファクタリングは結構良い経験になるそうなので、スキルアップしてるぞ!と前向きに考えるようにしよう、うん。
コラムっつうか愚痴で申し訳ない。カンボジアあんま関係ないし。
コメント
くーろ
とても悲しむべきことに、日本でもそういう会社はあるんですよね。
ベンダーではなく、クライアントにそのまま納品して炎上するのがウチですorz
ksiroi
指導できる人材がいないとまぁそうなるよね、っていう典型例っすな…
日本に限らず、どこの現場でもまま露呈する状況…。ベンチャーとかに多いっすね。
6A1U
> くーろ 様
>> クライアントにそのまま納品して炎上
事後対応で結局利益が出ないんですね、わかります( ´ω´ )
6A1U
> ksiroi 様
>> 指導できる人材がいない
本当にソレが問題なんですよね。育てたら育てたで独立されちゃうってのも泣きどころ。
>> ベンチャーとかに多い
カンボジアは国自体がベンチャーみたいなモンなので、諦めるしか...(絶望