ここ最近、プログラマでない人とソフトウェアを作る、という話が三回あった。
一度はその人の為にツールを作る、という奴。もう一つは私のアプリのデザインを一部変
ちゃんと作ったのは最初のツールだけで、残り二つは辞退したけれど、どのケースでもソ
私は結構ソフトウェアを作るのは難しいから、XXXみたいな事が必要だ、というような
例えば、リモートの開発はかなり困難で、メールのみでソフトウェアの振る舞いの話をし
または何が欲しいかをちゃんと記述して、その通りに作ってもらう、というのは非常に難
でもこういう話をしても、毎回信じてもらえない。私が相手をバカにしているのかのよう
俺は自分に必要な物はちゃんと分かってる。だから何をするアプリを作って欲しいかをメ
最初に大きく完成品を目指してもうまく行かないから、まずは小さい所から始めよう、と
どうしてそんな事言うんだ?最初から完成品を作っていけばいいじゃないか。俺が必要な
プログラマなら、この辺の主張は別に相手をバカにしているのでは無く、本質的にソフト
でも、自分はちゃんと仕様を記述する事が出来る、と結構多くの非専門家は信じていたり
そういう相手に対し、何故仕様を最初に記述して、それを受け取った私が延々とコードを
そこを説明出来ないと、何故間のコミュニケーションはかなり頻繁に行わないとうまく行
ソフトウェアの仕様を一発でそれなりに正確に記述する、というのは、ほとんど不可能ご
これはほとんどのプログラマが同意してくれる事と思う。
特に仕様を決めるのが、ソフトウェアを作った事無い人で、自分が何が欲しいのかを良く
でもこの事は、プログラマ内部でしかあまり同意が無いように思う。
ある程度経験を積んだプログラマなら、これはほぼ確実にうまくいかない、という上記の
こりゃダメだ、というのが明白過ぎるほど明白で、じゃあ私は降りる、となる。
どうしてダメかは分かるけれど、それを説明するのは結構大変で、何故降りるのか?と問
ソフトウェア開発は難しい物だからだ、と言った所で、何か言い訳しているだけで本当の
別に何も隠していないのだが、その誤解を解くのも大変なので、あまり関わらないように
こういう感じというのは結構多くのプログラマに通じるんじゃないか。
会社でプロフェッショナル同士で物を作っていると、あまりこういう経験はしないから、
根底にあるのは、ソフトウェア開発というのは結構難しい、という事だ。
もっというと、素人が適当にやるとほぼうまく行かないくらい難しい。
うまく行ってるプロジェクトがたくさんあるように見えるのは、それらには結構高度な技
特に前提条件を定めないと、予想される結末は、特にトラブル無く普通に進むのでは無く
個人的にはプロジェクトをただそこそこちゃんと終わらせる、というのは大した仕事とは
私らの世代でそれが期待出来ない奴は、さすがに居ないだろう。
他人に凄い事だと自慢する気も起こらないし、自分はそんな凄いスキルを持ってるんだ、
でも、非プログラマにも出来るか、というと、そんな事は全く無い。
ソフトウェアを作るというのは凄い難しい事で、やってはいけないたくさんの事があって
それは素人とソフトウェアを作ろう、という時にならないと明らかにならないけれど。