Contents

やぁ「ノンプログラマのみんな!」…って誰のこと?

僕はこのサイトを、よい仕事をするための開発者文化: DevOps をノンプログラマのみんなに知ってもらうために運営しているよ1。 この記事では、僕が誰に向かって話しているのか、つまりノンプログラマの定義を明確にしておきたいな。

/images/np_collaborator.jpg

「ノンプログラマ」って、書籍のタイトルでたまに見かけることもあるけど、いまは一般的な言葉とは言えないよね。 実際の使われ方を見てみると、「本業はプログラマではないが、プログラミングに関心があったり、仕事に自動化を取り入れている人」という文脈で使われているよ2。 でも、僕の定義はちょっと違う。

このサイトにおける定義

本サイトでは「プログラムは書かないけど、仕事にコンピュータを使う機会がある人」という意味で使っているよ。 僕が「ノンプログラマのみんな」というとき、想定しているターゲットはとても広いんだ。 DevOps と聞くと、「ソフトウェア開発者たちの文化だから、プログラムを書かない自分には必要ない」と思われてしまうかもしれない。 いやそもそも、耳に入っていない可能性すらあるよね──けど実は、関係大アリなんだ。

対象範囲が広いわけ

今やコンピュータは、知的生産の道具として当たり前のものになってきているよね。 いろいろなタイプの人がコンピュータを使うようになっているから、ここではまず、その使い方に基づいて人々を分類してみるよ。

プログラミングする人、しない人

「プログラムを書くかどうか」で分類するとどうなるだろう。 プログラムを書く人といえば、もちろん IT 企業でソフトウェアを作る開発者が当てはまる。 休日に趣味のプログラミングを楽しむお父さんもそうだよね。 下の図で言えば、彼らは青いところにいるよ。

Figure 1: プログラムを書くかどうか

Figure 1: プログラムを書くかどうか

もちろん白い領域には、プログラムを書かない人達がみんな入るわけだけど、ここでは具体的に名前で呼びたいから、あえて例を挙げようかな。 「総務部の社員」「経理部の社員」そして「秘密のレシピをメモするお母さん」としよう。 なになに、「自分は総務だけど、仕事でプログラムを書く」…? もちろんあなたは、青いところにいるよ。 上で挙げたのは、あくまでも例だ。

コラボレーションする人、しない人

他の分類軸を考えてみよう。 「コラボレーションするかどうか」っていうのはどうかな。 上で登場した人々について言えば、 プログラミングするかどうかに関わらず、ソフトウェア開発者や総務部・経理部の社員が、同僚とうまく連携する必要があるのは明らかだよね。 コンピュータを「仕事」に使うなら、うまくやらないといけないんだ。 本サイトで「ノンプログラマ」と言っているのは、この青い領域にいる彼らのことだよ。

Figure 2: コラボレーションするかどうか

Figure 2: コラボレーションするかどうか

一方で、コンピュータを趣味に使っているお父さんやお母さんはどうだろう? 特に自分が不自由していないなら、好きに使えばいいんじゃないかな3

DevOps が必要なのは

さて登場人物は出揃った。 DevOps を学ぶ必要があるのは、どの領域に属する人だろうか。

もちろん、DevOps は開発者の文化だから、ここは青くなるよね。

Figure 3: DevOps──「開発者」にはもちろん必要

Figure 3: DevOps──「開発者」にはもちろん必要

「プログラムを書く人」とすれば、青い領域はここまで広がるよ。 でも実は、DevOps を必要としているのは彼らじゃない。

Figure 4: DevOps──「プログラムを書く人」にも必要…?

Figure 4: DevOps──「プログラムを書く人」にも必要…?

DevOps を必要としているのは、「コラボレーションする人」なんだ──プログラムを書くかどうかに関係なくね。 別の表現にすれば、「顧客目線で商品やサービスを作っていかなければならない人」 「趣味ではなく仕事でコンピュータを使う人」 あるいは「知的労働者」といったところだね。

Figure 5: 実は DevOps を必要としている人たち

Figure 5: 実は DevOps を必要としている人たち

「知的労働者」とは言うは易しで、人口としてはプログラムを書く人よりたぶん圧倒的に多いよ。 開発者文化であるはずの DevOps が、このように広範な人々に必要な理由──それは、DevOps の本質は持続的な生産性向上を目的とした取り組みだからなんだ。

プログラミングは DevOps の本質ではないけれど、手段としては避けて通れない運命にある; 仕事、つまり価値づくりを極めていくと、結局のところソフトウェア開発やサービス開発になるからだ。 そのような状況で、我々ノンプログラマはどうしたらいいんだろう? もちろん、すべてを自分たちで開発できる必要はないよ。 本職の開発者にとっても難しいんだから。 でもだからといって「サービス開発を外注して終わり」は手を抜きすぎだ。 そのような DevOps のアンチパターンとも言えるマインドしか持たない組織には、常に変化する顧客のニーズに応えながらよいサービスを提供していくのは不可能だろう。 ノンプログラマは、開発者を仲間に引き入れてともに開発し(内製化)、自分たちも彼らの考え方や技を学びながら少しずつ成長していくことが必要だ。

よい仕事について考えるようになると、コードを全く書かずに──つまり「ノンプログラマ」のままで──組織に貢献するには、サービスの方向づけのような高次の知的労働しか残されていないことがわかってくると思う。 誤解を恐れず言えば、よい仕事をする組織には、ただの作業者としてのノンプログラマの居場所は、残念ながら残されていないんだ。 これはもちろん、開発者を採用するためにノンプログラマは席を空けろ、という意味ではないよ。 でも、持続的なつよい組織づくりは筋力トレーニングのようなもので、間違っても、高機能なロボットアームを買ってきて取り付けるロボトミー手術じゃない。 優秀な開発者を雇ったところで、縦割り、つまり組織内外注の構造をつくってしまっては、よい価値づくりにはつなげることはできないよ。 筋組織が新陳代謝を経て強くなっていくには長い時間がかかるように、ノンプログラマが開発者へと越境していくにも時間が必要なんだ。

よい組織には、内側からの改革、つまりノンプログラマの越境が求められている。 もしこれらの事実が腹落ちしたなら、使う側から作る側へと、既に越境の第一歩を踏み出した証といってもいいと思うな🕺


  1. About this site』の中でも書いたけどね ↩︎

  2. たとえば『いつも隣にITのお仕事』さんや『ど真ん中を生きる』さん、株式会社アイクシーさんの note があるね ↩︎

  3. 今はまだ、研究者もこの白い領域に分類されるかな。コラボレーションがうまくなった方が、ほんとはいいんだけどね ↩︎