非IT企業さんがノーコードやローコード開発ではなく、何らかのプログラムコードを書いて社内で業務システムを開発するとき(以下、内製と呼びます)に、扱いやすいプログラミング言語を紹介します。
扱いやすいプログラミング言語5つ
選定のポイントとしているのは、
- 学習コストが低い
- 言語についての情報が多い
- 知っている人が多い
- 業務システムで必要になる機能が揃っている
Python
昨今、もっとも人気のあるプログラミング言語です。
- プログラムを書く上での文法がシンプル
- 幅広い業務で使える(ウェブアプリケーション、自動化処理、データ処理など)
- 学習資料が不自由しないくらいインターネット上に存在する
- 難しいことを簡単に実現できる「ライブラリ」と呼ばれる機能群がいっぱいある
Pythonは次のような業務に向いています。
- データ処理(データ取得、整形、整理、集計、分析)
- レポート出力
- 社内で使うなら問題のないシンプル簡単なウェブアプリケーション
- Excelと連携して業務を自動化
JavaScript
かなり昔から存在しているプログラミング言語です。最近ではJavaScriptをウェブブラウザ以外で動かすための「Node.js」という動かす環境(ランタイム環境)を一緒に利用することも増えています。
- ウェブシステムとの相性抜群(もともとそういう用途から発生したので)
- 社内アプリやツールをウェブアプリケーション化しやすい
- 今ではフロントエンドからバックエンドの仕組みまで作れる
JavaScript(+ Node.js)は次のような業務に向いています。
- ウェブ上で動く「問い合わせ管理」
- ウェブ上で動く「案件進捗管理」
- ウェブ上で動く「社内ポータル」
大掛かりなシステムよりも、小分けにしたツール寄りなウェブアプリケーション開発に向いています。
VBA(Visual Basic for Applications)
なんだかんだと昔から色々(良いとか使えんとか)言われていますが、今も便利に使われている(特に職場で)プログラミング言語です。
- ExcelとAccessの連携が得意なので社内アプリを作りやすい
- マイクロソフトオフィスの機能を使いながら作れる
- 昔からあるので情報に事欠かない
VBAは次のような業務に向いています。
- データ入力の補助ツール(Excelで入力して、基幹システムへ流し込むとか)
- 基幹システムのデータを使って売上分析レポートを出力
- 経理の月次処理を効率化・自動化
マイクロソフトExcelを使っている会社は多いので、大掛かりなシステム開発でないなら、VBAは扱いやすい言語です。
私のところにご依頼いただく内容も、ExcelのVBAを使った案件が多いです。
Ruby
比較的新しい言語です。そのため、言語の作りがシンプルです。Pythonとどちらにしようか迷う言語だと思います。
Rubyを使うときは、Rubyの動きを定型化する「Ruby On Rails」というフレームワークを一緒に使うことをおすすめします。フレームワークを使うと、「何度も同じことをする」部分を考えなくて良くなります。
- Pythonと同じようにプログラムコードが読みやすい
- プログラムを書く上での文法がシンプル
- ウェブアプリケーション開発に向いている
- 業務システムの原型がフレームワークを使うと作りやすい
Rubyは次のような業務に向いています。
- 顧客管理(これ、めちゃくちゃ得意)
- 在庫管理(カード型で管理するなら作りやすい)
- 勤怠管理
- 案件管理
- 資産管理
最近はPython人気に負けている感もありますが、業務システム開発ならRubyの方が作りやすい気がします。
TypeScript
ちょっとモダンなこと、新しいことをしたい場合に使う人が増えている言語です。
- 厳密なコードを書ける
- JavaScriptの上位互換なので扱える人が多い
- 大規模な業務システム開発にも向いている
TypeScriptは次のような業務に向いています。
- 複雑なルールや処理ルートが存在する社内ウェブアプリケーション開発
- SaaSとの連携が必要な業務アプリケーション開発
内製の規模が大きい案件用だと考えてもらっていいです。または、取引先(親会社)が大規模最新型システムを導入したことで、自社から接続して使わないといけないなど、何らかの理由がある場合でしょうか。
内製する場合のポイント
経験豊富なIT人材が居ない場合、
- できるだけ簡単に扱える
- 情報が多い
- 学習コストが低い
こういった特性のあるプログラミング言語を選ぶことが大切です。今回の5つであれば、
- Python
- VBA
- Ruby
間違っても今回紹介に含んでいない「Java」とか「C#」とかを選んではいけません。学習コストが高く、簡単に扱えず、情報を読み解くにも専門知識が必要になりますので。仮に「Java」「C#」を選んだとしても、扱える人材が最低でも3名は揃っていないと進まないです。さらに他言語の経験者が在籍しているのならまだしも、プログラミングの経験が無い人や浅い人の場合、学習しながら進めることは担当者へ相当な負担を強いることになります(最悪、辞めちゃうと思う)。
内製で検討しておきたいこと
次の3点を検討しておきましょう。
- 社内のIT人材の育成(今の担当者が突然退職しても良いように)
- 外部の支援(どうしても解決できない場合の相談相手や代行依頼など)
- 言語の研修プラン(次の人材を育成しないといけません)
内製での導入ステップ
社内で作る場合の導入ステップを記載します。参考にしてください。
- 業務の課題を洗い出す
- 担当者に課題のヒアリングを実施
- ヒアリング内容から内製できそうな業務領域を選定
- 業務領域の課題解決に見合った言語を選択
- 選んだ言語を扱える人材の確保、または学習の実施
- 内製スタート(必要なら外部サポートを依頼)
- 開発したアプリケーションをテストしてからリリース
- 使いながら改善と保守を実施
- 次の人材の育成を並行して実施
- 次の課題を見つけて「ステップ2」へ
さいごに
非IT企業で内製しようと考えておられるところが少しずつ増えています。内製は社内に技術と知識が蓄積されますので、企業活動における将来性への先行投資と考えるなら正解だと思います。
しかし、ここで問題になってくるのは、それなりに詳しい人材が社内にいるのかということ。次の人材を安定して育成できるのかということです。
また業務システム開発では、「たった一つの方法」しか知らなくても作れるのですが、その「たった一つの方法」が自社の業務のやり方に合っているのかを理解している必要があります。
もし理解していなかった場合、作ったのは良いけれど使えないモノが出来てしまったり、自社にとっては背伸びし過ぎたモノを作ろうとしていたりします(結局使えない)。
内製は「自社にとってちょうどいい」のが理想です。誰かの思い入れとか好みとかではなく、自社の業務に合っているのか十分に検討して進めましょう。