OSSを信用しすぎる今どきの開発体制についての話

2022年1月26日

学習

eyecatch WEB開発を楽しむ、ユゲタです。 今どきのWEBエンジニアは、フロントエンドエンジニアからバックエンドエンジニアに留まらず、サーバー・インフラエンジニア、ネットワークエンジニアなど、 もう細かく言うと、タスク管理者や、チーム内マネジメント管理者、アジャイルマスターなどなど、もっと細分化されたエンジニア担当者が存在して、組織内で色々な呼ばれ方をしているようです。 そして、プログラミングがわからない人からすると、そうしたエンジニアという技術者を見た時に、創りたいものをを造り出していくクリエーターのように見えて頼もしくも感じるかもしれません。 でも、今どきのWEBエンジニアの実態はと言うと、ライブラリやスニペットを一生懸命探すという事に時間を費やすことが多く、造り出した制作物で自分の技術スキルがアップ出来ることが少ないという、ちょっと残念な感じを味わったという話をしたいと思います。

ライブラリはとにかく便利

Githubが世の中に出てきてから、多くの企業が、これまで優良アプリケーションとして販売していたものを、OSSとして、Githubに公開するという体制に切り替わってきています。 そして、個人で作ったプログラミングで便利なものをインターネットにアップしておくだけで、誰でも気軽に利用できる時代になっていることを考えると、本当に便利な世の中になったものだと感じます。 仮に何かインターネットサービスを開発して、世の中に提供したいと考えた時に、ある程度のITスキルがあれば、ネットに転がっているフレームワークやら、ライブラリをかき集めて、簡易にWEBサービスを作り出すことはできるでしょう。 ほぼ自分でプログラミングしなくても、サービス構築ができてしまうことも内容によっては可能です。 でも、こうしたライブラリやフレームワークに依存したwebサービスはこれまで何個も見てきましたが、数年後に、保守運用の問題が発生して、てんやわんやするという自体が発生してしまいます。 要するに、使っていたフレームワークのバージョンが古くなって、サーバーOSのバージョンや、CGIモジュールのバージョンなどと、リンクしなくなってしまうという事象です。 また、ライブラリに至っては、セキュリティ対応を随時対応してくれていたモノが、いきなり開発ストップになり、保証が無くなったという事で、そのライブラリを使い続けるとリスクになるケースがあります。 お金を払って購入したライブラリにおいても、実は契約終了とか、サポート終了というのは、意外と頻繁に発生しているようで、そのリプレイスをするために新たなライブラリを導入して四苦八苦するという無限ループに陥っている開発がたくさんあることをよく見聞きしています。

今どきの機械学習

もはや、バズワードを通り越して、AIじゃないと、電化製品が物足りなく感じている機械学習サービスですが、 多くのAI製品が、Pythonのライブラリを多様した、AI製品であるため、ライブラリの不具合に振り回されている会社がなんと多いことでしょう。 ちゃんとした機械学習の知識を持っていないと、製品で何がおかしいのかすら分からず、サポートに戸惑うというケースもよく聞く話です。 自分が経営者で、自社製品として創り出したサービスの裏側が、ほとんどライブラリで固まっているとしたら、少し残念な感じがするのは、自分だけなのかと考えてしまいます。

ライブラリが悪いのではなくスキルをライブラリに任せるのが悪い

なんかライブラリを使うのが悪いように聞こえたら非常に申し訳ないのですが、便利なライブラリは本当に助かりますし、ユゲタもいくつも便利に使わせてもらっています。 でも、個人的にはライブラリを使って作り上げたサービスって、自分で作ったような感じもしないし、それで特許技術が取得出来るわけないこともよく理解しています。 特に、WEBサービスを作る時に、そのサービスのコア技術は自分(または会社)としてちゃんとプログラミングして、その技術を担保するという事で、自分が創り出したサービスと胸を張って言える感覚があるため、 その重要な箇所をライブラリを使うというのがどうしても理解できません。 結果的に、そのコア技術がどこかしらの人物が知財を取得していようものなら、法外なライセンス料を要求されるというケースも過去に経験をしたことがあります。 知財の話になると、少し道がそれるので、今回は知財の話は深堀りしません。

スキルの貯まるライブラリ開発

ライブラリを使う使わないという話をすると、必ず「車輪の再発明」という話が出てきて、「無駄」「効率」「精度」という話になり、これらは平行線をたどってしまいますが、 個人的には、便利なライブラリであっても、行き届いていない箇所や、自分が使いたい機能が少し足りていない場合があります。 こういう時に、プルリクを送って機能追加をするという手段もありますが、やはり個人的には、自分の作るものに適応した最適なライブラリは自分で作るというのが必要最低限の機能を持ったライブラリという事で、ムダもなくスマートなのではないかと考えてしまいます。 もちろん、簡単に便利なライブラリを作るというのはできないかもしれませんが、それ相応に技術力が必要になってくるのですが、本来プログラミングってそういうモノなので、「効率的に扱う」という事は参道できても、「誰でも簡単に構築できる」というのは、技術者のレベルが低すぎる話にも感じますね。 なんか、プログラミングのハードルを上げてしまうように聞こえてしまったら申し訳ないのですが、これらの話は、ユゲタがこれまで名刺交換をした会社で、この会社のエンジニアは優秀だなと感じたところが、こうしたモチベーションを持っていて、それ相応のエンジニア技術を持っていたという所を、今回はブログに書いてみたというワケです。 ライブラリだらけのwebページを作るのは、個人事業でちょっとしたホームページを作るときや、ビジネスにおける、サービス開発のプロトタイプ版を造る時ぐらいに留めておくことにオススメしたいと思います。 異論反論もある話かと思いますが、あくまでユゲタの持論という風に受け止めてください。 全く無理強いはしません。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。