ここでは、受託開発の現場で、
開発者が未経験のプログラミング言語を扱う際に注意すべきことを記載します。
プロマネの観点と開発者の観点、それぞれで注意すべきことも併せて説明します。
僕は現在、プロマネを中心に仕事をしており、開発現場で日々発生する課題やリスクの対応を行っています。実際に、開発現場が技術的なトラブルで進捗が止まっている場合、僕自身がプログラミングをすることも度々あります。(プログラミングが好きということもありますが)
その経験をここで共有できればと思います。
なお、純粋に効率的なプログラミングの始め方について知りたい方は、こちらが参考になります:
プログラミングを始めたいけど、始め方が分からないあなたへ
受託開発における、経験者不在のプログラミング言語で開発する危険性
受託開発では、開発案件を受注する前に、開発規模を見積もります。
この見積もりに基づき、スケジュールが組み立てられ、いつまでに納品できるかが決まります。
この方法がうまくいくのは、開発経験のあるプログラミング言語が見積もりのベースにある場合です。
開発経験のないプログラミング言語をベースにした見積もりやスケジューリングの場合、経験上、うまくいかないことが多い様に感じます。(過去には、見積もり額の10倍のコストがかかったことも・・・笑)
開発が始まる前に取れる行動
ではどうするのか。
使い慣れたプログラミング言語をベースとした見積もり根拠の場合、プロジェクトが炎上するのは、ほぼ間違いなしです(涙)。
見積もりがお客様に飛んでいく前に、プロマネ側と開発者側、それぞれで取れる行動があると思います。
プロマネ側で取れる行動
-
開発言語を変える
そもそも、経験者が多いプログラミング言語での開発にできないか調整する。
お客様からのリクエストであれば、お客様・開発・営業・品質管理などを巻き込む。
また、お客様に、このまま受注した場合のリスクを説明する。
また、リスクが顕在化した場合の追加費用の負担元を予め調整しておく。 -
見積もり工数を増やす
開発工数を見積もる時、必ずリスク分を上乗せします。
このリスク分を見積もり総工数の1.5倍や2倍にする。期間も2倍に延長できるのであれば、延ばす。 -
経験者にプロジェクト参画してもらう
協力会社様に経験者を派遣してもらうか、期間に余裕があれば、経験者を採用して、プロジェクトに参画してもらう。
開発者側で取れる行動
-
開発言語を変える
プロマネ側同様、開発側も、開発言語を変える様に動く。
お客様からのリクエストであれば、お客様との調整にも積極的に参画する。 -
プログラミング言語を短期間で習得する
会社の予算で、プログラミング言語を学べるスクールに通う、また、
書籍を購入して、独学。 -
該当のプログラミング言語で組まれたオープンソース製品をまねる
既に該当のプログラミング言語で組まれたアプリのソースが公開されているのであれば、
そこから学ぶ。
それでも開発が始まる場合(涙)
残念ながら、未経験のプログラミング言語で開発が始まる場合、
プロマネ側・開発側の双方でリスクを明確にしておき、ステークホルダ(特にお客様)に
リスクを十分に理解しておいてもらいましょう。
また、定期的にお客様との定例会でリスクの分析状況を報告し、リスクが顕在化した場合は、ステークホルダと調整できる様にしておきます(要は、開発側だけで抱え込まない様にする、責任の所在を明確にしておく)
以上、受託開発の現場で、開発者が未経験のプログラミング言語を扱う際に注意すべきことを記載しました。少しでも同じ状況に遭遇する方の手助けになればと思います。
なお、繰り返しになりますが、純粋に効率的なプログラミングの始め方について知りたい方は、こちらが参考になります:
プログラミングを始めたいけど、始め方が分からないあなたへ