ITシステムの開発における大切な事(前編)
こんにちは、ITコンシェルジュ兼CEOの宇都です。
コンピューターが世の中に出だして、はや30年以上がたちます。その間に、スマホが登場し、クラウド化も進み、現在はAIやIOT、データサイエンスといった新たなITの時代が到来しています。そんな中、ITシステムの開発においてどのように変化してきたのか?本質的な課題は何か?についてまとめてみたいと思います。
まず、ITシステムの開発について考えてみましょう。技術や環境がどのように変化してきたかを整理しましょう。
●1990年代:汎用機、オフコン時代 ・・・ 専用端末で黒バックで緑の文字でプログラム開発を行っていた時代。言語はCobolなどが多く利用されていた。
●2000年代:オープン系(クラサバ)時代・・・Windows95が発売されて以降パソコンが普及し、それに伴いシステムもPC化が進んでいった時代。言語は、VisualBasic(VB)やAccessなどのVBAとサーバにSQLServerやOracleなどのリレーショナルデータベースが活用された。
●2003年頃以降:Webシステム時代・・・Webブラウザをクライアントとして活用した業務システムの構築が始まった時代。言語は、Java、PHP、perlなどでシステムの構築がされた。データベースは同様にリレーショナルデータベースが主流となった。オープンソースでMySQLやpostgreSQLが活用されるようになった。
●2005年頃以降:フレームワークの活用が活発になった時代・・・JavaのStrutsやJSP、springなどのフレームワークが開発された。ほかにPHPのCake、symfony、ZendFrameworkなどが開発され、それぞれの開発現場で採用されていった。
●2010年代:ASPサービスやSaasサービスの利用が始まった時代。自社開発だけでなくWeb上で必要な製品を選択し活用する時代。例えば、SalesForceの活用でCRMや各種ツールの利用と、専用のスクリプトでカスタマイズができるようになる。
●2015年以降:クラウドサービスの時代。GCP、AWS、アジュールなどサーバレスでクラウド上にサーバやシステムを管理する時代。コードレスな開発も進められた。
●2020年以降:AIに関するAPIがクラウドで提供される時代。GCPやAWS、IBMワトソンなどが中心となってAIのエンジンをAPIで提供し、それを活用したシステムを構築する。画像認識や音声認識はすでに活用されている。
次に、ITシステムの技術や環境は以上のような経緯で進化しています。
そんな中、実際のシステム開発はどのように進化しているのでしょうか?
システム開発のやり方としては、主に2通りで進められています。
1)ウォーターフォール型
・・・システム開発に必要な工程を上から順番に実施していくやり方。
要件定義 ⇒ 基本設計 ⇒ 詳細設計 ⇒ 開発 ⇒ テスト ⇒ ユーザテスト ⇒ 本番リリース ⇒ 運用 の順番で工程を進めていきます。
2)アジャイル型
・・・はじめの要件定義と基本設計あたりまでは同じだがそれ以降の工程はまず開発をしてシステムをある程度構築し、そのベータ版に対して動作確認やテストをして詳細な仕様を決めて、システムを変更してまた動作確認を行うという流れで進めていきます。
企業の業務システムではほとんどが1)ウォーターフォール型の開発がほとんどではないかと思います。2020年現在においてもアジャイル型がそこまで浸透しているイメージは少ない。
どちらのやり方が良いかは作るシステムの内容とお客様の体制や状況により決めることになります。
そんな中、私自身は元々はエンジニアからスタートして会社起業を経て、受託開発を受けるようになり、現在ではITコンシェルジュとしてお客様側で活動しています。そこにも理由があり、現状のシステム開発業界の課題が影響していると考えています。
次回は、その課題についてお届けしたいと思います^^