
たまに哀れな「自称プログラマー」に関する話を聞くときがある。例えば「あのさぁ、何をつくってほしいか、きちんと仕様にしてくれないと、システムなんかつくれないじゃん!」とか「何をつくるかを決めるのはビジネスサイドのあんたたちの仕事だろ。俺の仕事じゃないぜ」と言い放って、事業部門の人を怒らせたり涙目にさせたりする愚か者たちだ。
一見とても正しい発言のように思える。というか大概の場合、発言としては正論であったりする。同業者なら「よくぞ言ってくれた!」と喝采する人もいるはずだ。何せ最近は、要件定義が全くできず、「何をつくってほしいのか」まで開発サイドに丸投げしてくるビジネスサイドのアホが多数いる。そんな連中を一言で撃退できる自称プログラマーは称賛すら集めるだろう。
だが、この自称プログラマーが本心からそう思っているなら、やはり愚か者である。まず本質でないほうの理由から説明する。「何をつくるかを決めるのはビジネスサイドの仕事だろ!」と言い放ったが最後、「逆も真なり」となる。システム開発プロジェクトでビジネスサイドからの協力は一切得られなくなるし、力関係次第では無理難題を押しつけられる。「それはむちゃです」と言っても「知らねぇよ、それを何とかするのがITの専門家の仕事だろ!」といった具合だ。
で、本質的なほうの理由だが、そもそもソフトウエアって何だっけ?という話だ。私が思うに、ソフトウエアとは「プログラミング言語で記述された(実装された)何らかの仕組み」である。つまりソフトウエアの本質は、それに実装されている何らかの仕組みにあるわけだ。業務アプリなら、もちろんビジネスの仕組みだ。その仕組みを考えてプログラミング言語を道具として使って実装していくのがプログラマーの仕事である。
なぜ冒頭の愚か者たちを「自称プログラマー」と書いたか、もうお分かりであろう。ここまでで「仕組みを考えるのは当たり前でしょ」と不審に思った人は、パッケージソフトウエアやクラウドサービスの開発に携わるプログラマーなのだろう。一方、人月商売ビジネスにはそのあたりがよく分かっていない自称プログラマーが大勢いる。人月商売ビジネスでよく使われる言葉で言えば、彼ら/彼女らはプログラマーではなく「コーダー」。つまりエンジニアではなく作業員である。
デジタル革命が進展するなかにおいては自称プログラマー、つまりコーダーという作業員はいつ職を失っても不思議ではない。デジタル革命と大げさに言わなくても、これまでも35~40歳あたりからコーダーは徐々に仕事が厳しくなってきていた。自称プログラマーに染みついているのは分業の発想だ。人月商売の多重下請け構造の発想と言い換えてもよい。そうした分業体制がそろそろ成り立たなくなりつつあると気付くべきなのだ。