うめぞーコラム

思ったことを書き綴るだけの内容。IT業界ネタ中心。

常駐開発者の開放(表に出よ!アプリケーションの開発者)

世の中には「業務アプリケーション」なるものがあって、企業の活動を支援しています。携帯電話の契約の受付、月次の料金の計算、販売代理店へのコミッションの計算、製造計画、医療会計での点数計算など、それがないと業務が成り立たないアプリケーションって、結構な種類・数があると思います。

 

ところが、OSを提供しているような赤い帽子の会社に私が在籍しているということもあるのか、「アプリケーションの開発」に携わっている人があまり周りにいないんですよね。もっというと、「アプリケーションのアーキテクチャ」とか、「どういう仕組で動いている」ということに共感を持っていただける人が少ない感じです。さらに、ミドルウェアに係わっている人は、更に少ない感じなのです。

 

興味の対象

国内外を問わずいろいろな方と話す機会があるのですが、私の周りの皆さん、興味があるのは「アプリケーションをどこで動かしているか」で、「どういう仕組で動いているか」ではないようです。

「どこで動かしているか」という意味は、アプリケーションがベアメタルなサーバの上のどんなOSで動いているのか、何台動かしているのか、メモリやCPUはどれくらい使用しているのか というような意味です。彼らの興味の視点は、Virtual MachineでもContainerでも何でも良いんですが、「アプリケーションの箱」がどこにあるか だけなのです。アプリケーションの中身とか、業務に対してどのように使われているか ということに関して、意識がすごく希薄な気がします。

つまり、アプリケーションはドラえもんのポケットから出てきて、そこに置けば動くんでしょ?的な感じなのですかね。

「どういう仕組で動いているか」というのは、アーキテクチャであったり実装方法であったり、ロジックの考え方、データの流れであったりという意味です。ロジックというと、if-then-else とか SQLでのストアドプロシジャーを思い浮かべる方が多いと思いますが、ロジックの書き方はそれだけではないのです。もっと楽に、もっと楽しく書いて動かせる「ルールエンジン」なんてものがあったりします。そういうものを使ってみることで視野が広がり、アプリケーションの中身についての理解が進みます。そうすると、アプリケーションがどういう仕組みで動くから、最適なプラットフォームはこうなんだ という視点がうまれ、色々な使い方や考えなくても良かった制約などが出てきますよ。

 

開発者の姿

推測でしかないのですが、アプリケーションの開発者ってこんな状況なのではないかと思ってます。

  • 開発者は実は日本にはあまりいないのではないか?「面倒」「キツイ」「怒られる」「徹夜当たり前」... 等などの理由から開発を受けたがらない。
  • 企業側が「オフショア」と称して安いところに丸投げしているので、国内ではなく海外で開発されている。
  • 国内で設計・実装されている方々も、とにかく忙しくて、新しい情報を取りに行けない。忙しい理由は、テスト段階で発見される仕様の不具合を仕様を変えずに無理やり作り込んでいたり、必要以上のテストを行っていたり、有意義に感じられないエンドレスな会議に出ていたり。
  • 開発者の多くで「客先常駐」が標準スタイルになっていて、外部のネットワークへのアクセスができないので、新しい情報を見に行けない。
  • 一旦開発が始まると、プロジェクトを途中で抜け出す事ができず、「運用開発」と称して何年も同じアプリケーションを拡張・バクフィックスを繰り返し、そのまま定年退職...

 

COVID-19がディジタルトランスフォーメーションを邁進させている!なんていうブラックな話もあながち間違っていないのですが、アプリケーション開発における現場の改善がとても必要なのではないかと思ってしまいます。特に、典型的な3密の「常駐」という文化。

企業秘密を守らなければならない、情報漏えいを防がなければならないというのはもちろんわかるのですが、オフショアだってできているのですから、常駐をしなければならない理由はそこではないはず。もっと根本的なところから見直せると思うのです。

 

COVID-19でのリモートワークでわかったことの一つに、「皆が同じ場所にいなくてもある程度仕事ができるじゃないか」だと思います。「あれ?常駐していなくても気軽に聞けるツール(チャットとかweb会議システムとか)さえあれば、なんとかなるんじゃない?」と感じた方も多いハズ。

もちろん、リモートワークは、ひとりひとりの常識やコンプライアンスを徹底して成り立つものなのですが、これができるのであれば、開発者は常駐せず、そしてリーダーやマネージャも常駐せず、お客様の業務部門とのホットラインをチャット等で行い、モノはクラウド上で開発・実行して、いつでも進捗がわかるようにすることで、Waterfall開発ではなくイテレーション開発のほうが、品質良くモノは作れると思うのですがいかがでしょうか。

 

そして、積極的に新しい知識や方式、情報の共有に接する時間を持てるようになることで、個人の能力を高め、生産性(あまり使いたくない言葉ですが)を高め、関係者全員がスパイラルに良い方向に向かうと思います。

アプリケーション開発者を常駐という呪縛から解き放ち、節度を持った自由を持ってもらうことで、もっと良い社会できると思うのは私だけでしょうか。COVID-19の自粛後は世界が変わる(元の世界には戻らない)と言われていますが、アプリケーション開発者の作業場所が変わるっことで、アプリケーションの開発手法・品質も変わると思うんですよね。事実、赤い帽子社の製品開発者は、ずっと前から自宅で仕事をしている人が沢山います。

皆さんはどう思われますか?

 

技術のお話

今日のお話の中で、レッドハットでご用意している技術・製品は下記のとおりです。

ルールエンジン:Red Hat Decision Manager
データ連携:Red Hat Integration (AMQ, Kafka, Data Virtualization)
クラウド環境:Red Hat OpenShift Container Platform