僕は発展途上技術者

システムやアプリは内製が一番、では職業プログラマは不要なのか?




システムは内製が一番なんじゃないか、と何となく感じたのは、まだ社会人なりたての頃。

「弁当の買い出し」でPCの面白さに目覚めた にあるように僕がプログラムと呼べるようなものを書き始めたのは社会人になってからなのだが、業務を改善するためのちょっとしたシステムをノーツや Perl の CGI などを使って作るのが楽しかった。

ベンダーに投げてそこそこの開発費で作ったであろう社内システムよりも、僕が作った「ちょこっとシステム」の方が、自分含め現場で使う人たちの要望をすぐに反映させて修正できずっと使いやすかった。

使う人自身がつくってしまうのが結局一番いいんじゃないかとおぼろげながら感じ、そしてちょっと勉強すればそれが可能なソフトウェアこそ、その理想形に近い分野なんじゃないかと思ったのが20年近く前、まだ Netscape が有料だった頃だ。

そして現在、やる気さえあればプログラミングを学ぶことは当時に比べて格段に簡単になっていると思うし、例えば Ruby on Rails のようなフレームワークを使えば、ユーザー登録のような以前だったらそこそこ面倒な機能も、あっという間に実装できる。サーバーだって、クラウドのサービスを使ったりすれば、月数百円〜数千円でとりあえず始められる。Heroku とか使えば無料だ。

iPhone アプリのようなスマートフォン向けアプリは Web アプリほど簡単とは言わないまでも、頑張って書籍とかで Objective C を勉強したり、あるいは Titanium などを使えば、そこそこのものを作り上げ App Store で公開するところまではいけると思う。

そういう時代では、旅行好きな人が旅行好きが欲しいと思うアプリを作ればいいし、自転車好きが自転車好きのためのアプリを作ればいい。歴史や城が好きでたまらない友人に Rails をやってみたらと勧めたら城フォトというウェブサービスを作ってしまった。

では職業プログラマは不要になるのか?というとそうではないと思う。

僕はどちらかというと、作りたいものありきでプログラマーになった、アプリ側に近い人間なのでよく分かるのだが、〇〇好きが自分のためにシステムやアプリを作ると、最初の動くところまでは何とか完成し、数人〜数百人が使うレベルまではいくのだが、その後色々な壁にぶち当たる。たとえば、サーバーのことがよくわかっていないのでパフォーマンスが思うように出ないとか、コードが汚かったりテストコードを書いていないのでメンテナンスが難しくなってきたり、などだ。

職業プログラマ、いわゆるプロと呼ばれる人たちは、そういうところで的確にアドバイスしたり、ヘルプに入ったりする役割が求められているんじゃないかと思う。

例えば、サーバーの構成の見直しをアドバイスしたりパフォーマンスチューニングを提供するインフラエンジニア、定期的にコードレビューをしたりペアプロして、効率的なコードの書き方をアドバイスするプログラマー、使いやすい UI/UX をアドバイスするデザイナー、などなど。

大学のとき僕は機械科で、旋盤などの工作機械が並ぶ工作室というものがあったのだが、そこには機械の使い方を教えてくれたりいろいろアドバイスをしてくださる技官の方がいた。技官の方はコツなどを教えてくれるけれど、代わりに作ってくれるわけではなく、あくまでも旋盤を実際にいじってものを作るのは自分自身だ。魚を代わりに獲ってくれるのではなく、魚の釣り方を教えてくれたわけだ。

ソフトウェアも、つくりたいものをプロが全部代わりに作ってあげる、というのではなく、高度な専門知識や経験を活かしたアドバイスをしたり、さわりの部分や難しい部分は手伝って作るけれども、あとはそれを欲しいと思っている人自身にまかせる、という形がもっとあったほうがいい。そうすれば、もっと使えるシステムやアプリが増えるんじゃないかと思っている。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Raspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Twitter @jishiha

最近のエントリー

アーカイブ