使ったことないプログラミング言語のお仕事を依頼されたけど、受け入れ要件みたせました。
フリーランスエンジニアの @nabeemichi です。
ちょいちょい、知り合いの方などから個別にお仕事をいただけるようになってきて、直接契約のお仕事が増えてきた。 直接お仕事依頼されるようになってくると、前提条件として言語が指定されたり、最も早く目的達成するためには使ったことない言語を利用しないといけないこともしばしば。
そんなこんなで、今回はGoogle App Scriptを利用するお仕事を依頼された。 一度も使ったことないし、使う必要性もなかったので初見の言語なんだけど、お仕事させていただくことにした。
もちろん納期どうりに要件もみたして、依頼主からはイメージ通り!といっていただけたので、仕事としてはトラブルもなく完了することができた。
仕事を受けるにあたって考慮したこと
全くやったことないことは完成までのプロセスをイメージすることが困難だ。 イメージできないと見積もりもたてれないし、実現可能かもわからないのだけど、それだとなにも進まない。 そのため、イメージするためにある程度考慮した。
似ている言語を知ってるか
Google App Scriptに似ている言語が何かを調べた。 ちょっとサンプルとかを見てみたかんじ、JavaScriptの劣化版みたいな雰囲気だったので、 JavaScriptは使ったことあるので、なんとかなりそうだな。と判断。
それに、Google App Scriptについて調べるとサンプルがたくさん出てくるし、公式ドキュメントもちゃんとあるので言語的な障害はなさそうだ。
実行環境についてすぐにキャッチアップできそうか
言語がどうにかなっても、実際にプログラムが実行される環境について知らないと、実装上の制約条件もわからないまま作ってしまって、実際にユーザー先で実行したら動きませんでしたー!という、終わってる結果になってしう。
そのため、自分のPC環境で、ユーザーが実行する環境と同様のものを用意できるかが判断軸になってくるのだが、Google App ScriptはGmailやスプレッドシートを操作したりするプログラミング言語である。 つまり、毎日自分も利用してるGmailアカウントがあれば、同じ状況が速攻つくれる。 さらに、スプレッドシート上で実行するプログラムだったとしたら、実際に利用するスプレッドシートをお客さんから共有だってしてもらえる。 開発環境問題と実行環境問題は特に障害はなさそうだった。
できなかったときのことを事前に決めておく
使ったことない言語、環境はやっぱり実現可能かどうかは、やってみないとわからない。 やったことある事例の組み合わせでの判断もできない。
だから、最終逃げ道として、要件を満たせないケースについて取り決めを引き受けるときにしておいた。
今回は、以下のように決めておいた ・マックス1日使って実現できないと判断した場合、料金は発生しない ・できないと判断した理由を報告 ・他の案で実現可能かを報告 ・やってみたことを報告
まぁ、できなかったら俺の1日が無になるのだがしょうがない。
実際引き受けてみて
言語については、実際にプログラミングしてみてJavaScriptの劣化版だからどうにかなるし、 実行環境についても特にハマることもない。 何より、Google App Scriptはぐぐるといっぱいネタがでてくるし、だいたいやりたいことみんな同じようなかんじ(Gmailを自動で返信するとか)だから参考になる記事たくさん。 やっぱググって情報でてくるって大事だな。
過去には、WPFとかいうググっても全く情報がでてこないフレームワーク指定でアプリ作らされたけど、それとは大違いだわ。