アフリカでプログラマとして生きていくには

ガーナ、アクラ――アフリカでソフトウェア開発者として働くのは、なかなか厳しい経験になるだろう。今でも思い出すのは、新しい会社を立ち上げて2か月にも満たないときに、悪名高い「負荷遮断」(節電のため、都市の一部を全面停電にすること)のとばっちりを受けたことだ。食べていくためには仕事が必要で、仕事をするのには電力が必要だということなんて、まったくお構いなしだ。現在では、状況はだいぶよくなっている。何の予告もなしに停電が起きたり、電力が不安定になったりする程度で済んでいるのだから。電力会社の輩は、これを当然のことだと思っているんだ。私たちができることといったら、5分おきにデータを保存する習慣を身に付け、ジャーナル機能を備えたEXT3ファイルシステムを実装して、たとえ1時間に5回停電が起きてもデータが真っ白にならないように努力することぐらいだ。
そんな私からしてみれば、カリフォルニアの 計画停電 に不満を持っている人がいるなんて、信じられない話だ。

先進国では当然とされていることが、ここアフリカでは想像すらできないということはしばしばある。たとえば、労働力の確保に関して言えば、ソフトウェア会社を興そうとしている場合には、3つの選択肢がある。

  1. 有能なプログラマを探す。一度捕まえたら、つなぎとめるためには手段を選ぶな。とはいっても、彼らはみんなビル・ゲイツになるのを夢見ている。あなた自身がゲイツほどの力量と財力を持っていなかったらどうなるか、保証はできない。まあ、幸運を祈る。私だったらこんな方法は選ばないけれど。
  2. 山ほど(文字通り)の履歴書に目を通す。毎月、NIITのトレーニングを修了したばかりの新人プログラマたちが、すばらしい講義要綱や資格を手に、大挙してやってくるだろう。彼らは、Java、C++、COM、Oracle、SQL、HTML、MS Officeなどのスキルを売り物にする。しかし、その講義要綱がいくら立派で、ソフトウェア開発の出発点として優れたものであっても、講師たちは学生に満足に時間を割いて教えていない可能性がある。彼らは学生たちを単にあちらこちらの授業に出席させるだけで、恐らく各資格への需要には追いついていないのだろう。

    つまり、このような自称プログラマたちは、まだ半人前ですらなく、即戦力には程遠い。顧客を失いたくなければ、彼らを即戦力として雇うのはやめておいたほうがいいだろう。それなのに政府は、この類の人々に100万ドルもの投資をするよう、インドのとある企業に交渉している。とんでもない話だ。

  3. 最後の選択肢は、3つのうち一番ばかげていると思われるかもしれない。あなた自身が、コーディングを教えるという方法だ。つまり、賢い人々をどこかで見つけてきて、プログラムの書き方を教えるのだ。ソフトウェア開発で利益を上げようとしているのに、わざわざ給料を払って従業員にプログラミングを教えるなんて、と思うかもしれないが、ビジネスを成立させるためにはこれが必要なのだ。信じられないというなら、 S.O.F.T の話を読んでみてほしい。アプローチとしては、課題を、難易度の高い部分を担当する知恵袋と、単純作業を担当するコード猿に振り分ける方法だ。この方法は確かにうまくいくが、たいしたアプリケーションはできない。設計は非効率的だし、毎回同じ方法しか使えないので、改善もあり得ない。

    何物も、優れたプログラマの代わりにはなりえないのだ。しかし、優秀なプログラマをたくさん見つけられないときにはどうしたらいいのだろう。これは悪循環どころではない。劣悪な環境だ。環境に適応したものが生き残る――ここでは「生き残る」という言葉が重要な意味を持つ。

アフリカのIT産業の状況はなんて悲惨なのだろう。欲求不満が爆発したり、ストレスで心臓発作を起こしたりする前に、ビーチにでも出かけたほうがよさそうだ。

あなたはついに、アフリカでプログラマになった!

おめでとう!あなたは今、数少ない優れたプログラマとなった。自分の能力には自信があるし、コンピュータも好きだ。望んでいた技術屋としての人生を手に入れたのだ。ただ1つ問題なのは、他の技術屋を探してこないといけないということだ。彼らはいつも、コンピュータの後ろに隠れていたり、CRTディスプレイの光を浴びながらどこか薄暗い場所で働いていたりするのだ。

そこで、あなたはひらめいた。「そうだ、仕事を探そう! 食っていけるだけのスキルはあるぞ!」 面白い仕事を探してきてくれる人のもとで働いて、自分はその仕事に専念すればいいではないか。

[1年後]

また1つプログラムを書き終え、あなたはうんざりしている。もらえるはずだったボーナスの話はいったいどうなったのだろう?どうしてあなたはマネージャたちのように、立派な車を乗り回していないのだろう?マネージャたちは金持ちなのに、どうしてあなたにはお金がないのだろう?

月給300ドル以下で生活する羽目になるなんて。

[すると、どこからともなく声が]

現実の世界へようこそ!いま君が置かれている状況について説明してあげよう。よく聞くんだよ。 君は小さな池に住んでいる大きな魚なんだ。動き回るのに十分な水がないから、居心地が悪いかもしれないね。でも、あと何年かすれば、体が慣れて、君は小さな魚になるよ。そうすれば、今の環境も居心地がよくなるはずだ。

忘れちゃいけないのは、この街には池が2つしかないってこと。運がよければ来年あたり、3つ目の池ができるかもしれないけど。聞くところでは、いまは買い手市場らしい。給料を払う側が、選び放題なんだ。 業界が小さいってことは、登場人物も選択肢も少ないということだ。ソフトウェアの開発を依頼しようと考えている人が知っているのは、せいぜい1社か2社だ。自分にもできる、経費が少ないからもっと安くできる、なんて考えないほうがいい。事業を拡大しようなんてことも、考えないほうがいい。もう一度言おう。ここは小さな池で、この街には池が2つしかないんだ。

[ふと我に返ると]

こんなことをしばらく考えた後、あなたは黙って電子メールのバックアップを取り、Webアーカイブに送る。自分は相変わらずここにいる。ここでの仕事は楽しかったが、先はまだ長い。うまくいくはずの物事も、ここにいたらうまくいかないのが目に見えている。

さあ、自分のビジネスを興そう

再び無職の身になったあなたは、起業の決心を固める。もしかしたら、このすごろくゲームの中に、もっと若い、他のアフリカ人IT技術者がいるかもしれない。彼らが「戻る」のマスではなく「進む」のマスに止まれるよう、手助けをするのもいいだろう。

しかし問題は山積みだ。どうやって彼らに給料を払う?クライアントを獲得できるか?業界にはどうやって参入すればいい?

これがアフリカのIT技術者の現実だ。それなら、海外進出を狙うべきかもしれない。年収10万ドル稼げる能力があっても、ここでは年収5000ドルも手にすることができないのだから。プログラマは賢いはずなのに、どうしてこんな状況になってしまったのだろう?

ついに見つけた答えは

いつか、そう、いつかは、海外のクライアントから仕事を受注できるようになるかもしれない。デジタル経済の今、ソフトウェアを出荷するのは簡単だ。そう、これが、アフリカでIT技術者であることによって損をしないための方法だ。

教訓

アフリカでIT技術者として生きるのは、決して簡単ではない。しかし、あきらめないでほしい。アフリカのソフトウェア産業は、あちこちに散らばった、趣味でコーディングをしている大勢のプログラマに活躍の場を与えることから始まるからだ。彼らは好きでプログラミングをやっているのだから、たとえ報酬が得られなくてもコーディングするだろう。このような人々にはチャンスと仕事を与えるべきだし、それを長く続けられるようにしてやるべきだ。プログラマの数が増え、車や家を買えるだけの収入が得られる職業として定着して初めて、ソフトウェア開発は産業として成熟したと言えるだろう。

それまでは、つらく長い道のりになるだろう。

[幕が下り、客席からは拍手]

Guido Sohneは、自分自身を「ソフトウェアにまつわる問題を効率よく解決するために、謎の黒幕(企業や個人)に雇われた 殺し屋。 問題が起きたら、それを殺すのが仕事だ」と言っている。この記事は、多少形式は異なるが、Guido自身のWebサイトで すでに公開されていたもの。