プログラム開発視点から論じていくfintechとは?

プログラム開発視点から論じていくfintechとは?

今回はfintechを学ぶ上で必須事項と言っても過言ではないプラグラミング開発におけるメソッドと開発技術の変化の全容をお伝えしていきます。

プログラム開発と開発技術の変化

プログラム言語と開発手法の変化

ウォーターフォール型からアジャイル型への変化

システム開発は、大きく要件定義、外部設計、内部設計、開発、テスト、リリースといった工程に分けられます。金融機関のシステム開発では、当初は既存業務のシステム化が一般的であり、また開発規模が大きかったことから、工程ごとに関係者が承認し、次の工程に進むウォーターフォール型の開発が広く採用されていました。これは手戻りを防ぐ技法として大規模システムの開発に適しているー方、前工程の完了後に後工程に着手するため待ち時間が発生しがちです。また、基本的には完了した工程には立ち戻らないため、開発期間中の要件の変更や環境変化には柔軟に対応できません。一方、近年金融サービスでも、ビジネス環境や顧客ニーズの急速な変化への対応が求められています。このため、スピードと柔軟性を重視したアジャイル型の開発も利用されています。アジャイル型では、依頼主とエンジニアが共同でチームとなり、イテレーションと呼ばれる短期間の開発サイクルを繰り返します。各サイクルでは優先度の高い機能から順番に実装、リリースし、その時点で依頼主·利用者などの関係者に「最大の価値がある」製品提供を目指します。実際に稼働するものを早期に提供しそれを依頼主が利用するため、仕様の誤りや要件漏れ、要件の変化に見期に気付きやすくなり、その結果、手戻りを減らすことが狙いです。また、利用時の実際の評価を受け、仕様を修正できるという特徴もあります。

・ウォーターフォール型

・アジャイル型

図解:ウォーターフォール型とアジャイル型について

UI/UXを重視した開発

現在開発において注目されている考え方に、製品を利用する過程に注目するUX(User Experience)が挙げられます。 UX改善に向け、使い勝手や信頼性などを重視した設計を行うというものです。利用者のUXは画面表示やキーボード入力などのUI(User Interface)を通じて提供されるため、UI改善こそがUX改善の中心的な問題になります。セルフサービス型の利用増に伴い、金融機関のサービス提供でもUI/UXは近年一層重視されてきています。システム利用者層が拡大し、誰でも簡単·快適にシステムを利用できる必要が出てきているためです。さらに、スマートフォンやAIスピーカー、各種センサーなどのデバイスが普及し、Pcに比べ直感的で多様な入出力方法が広がったことも注目が集まる一因です。一方、UI/UXを重視することは利用者の増加につながるだけでなく、コスト削減が期待できます。作業時間やトレーニングの削減、オペレーションミスの軽減などにつながるためです。UIUXを重視した開発を行うためには、利用者の声をプロダクトに反映させる必要があります。このため、前述のアジャイル開発に加え、システム開発と運用の連携を深め、実際の利用状況からニーズを洗い出し、システムを修正する DevOps (Development とOperations の組合せ)と呼ばれる手法も利用されてきています。

開発技法の変化に伴う開発言語の変化

開発技法が変化していく中、金融機関で開発に使用される言語や手法も変化しています。1950年代のシステム導入当初は、コンピュータが最も処理しやすい数字の羅列で記述する機械語、さらにこれに名前(ニーモック)を付けてプログラミングしやすくしたアセンブラ言語が利用されました。1960年代以降にはCOBOLやC言語など、①人間に理解しやすい数式や英語表現を利用、②コンピュータの機種に依存せず共通して利用できる文法体系、③どのように処理するかの手順を記述(手続き空言語)、④特徴を持つ第三世代言語の利用が広がりました。その後、Java に代表されるオブジェクト指向言語が出現し、現在では広く使用されています。オブジェクト指向とは、必要なデータと処理す順をオブジェクトとして部品化し、それらを組み合わせてプログラム構築する方法です。手続き型言語と異なり、個々のオブジェクトの振る舞いを記述する一方、処理方法はコンピュータに任せます。部品化と再利用が有用であることは、システム開発初期から認識されており、オブジエクト指向では効率的な利用方法が提供されています。主な方法として、ある部品のベースに詳細な機能(メソッド)を変更(オーバーライド)、または追加して新たな部品を構成する継承(インへリタンス)が挙げられます。抽象的なオブジェクトから具体的なオブジエクトを構成するといった、部品の再利用が行いやすくなっています。これはさまざまなオブジェクトの同じメソッドを利用する場合、呼び出し方法を変更しなくとも適切な動きをする(多相性、ポリモーフィズム)点でもメリットがあります。

・継承

・多相性

図解:オブジェクト指向における継承と多相性

スクリプト言語の広がり

これまではプログラムを機械語に変換する「コンパイル」が必要な言語が大半でしたが、最近ではこれが不要なスクリプト言語の利用も広がっています。プログラムの実行が簡単なため、テストと修正を繰り返す用途に向いています。文法がシンプルで学習しやすい場合も多くあります。一方、実行速度が遅くなりがちなこと、実行時の処理が実行環境に依存しやすく複雑な処理の記載が難しいことなどがデメリットです。金融サービスでも、アジャイルなUI/UXを重視する開発の広がりに合わせ、この分野に適したスクリプト言語の利用が広がっています。現在最も広く利用されているのは、Web画面のインタラクティブな処理やサーバー側処理に適用されるJavaScript、システム管理やAIのプログラムで利用されるPythonなどが主な例です。

EUCとオフショア開発の広がり

システム開発規模の拡大により、開発形態も多様化しています。たとえば、業務上必要な簡単な集計処理や帳票の軽微な修正などの簡易で細かな要件に対し、ユーザ自らが開発を行うEUC(End User Computing)も広がっています。EUCは、エンドユーザのPC上で稼働することが一般的です。オフィスツールのマクロや簡易的な言語で開発される例が多く、Microsoft のWindowsやOffice 上で稼働するVisual Basic 言語とExcel マクロが幅広く利用されています。ボタンなどのパーツをマウス操作で配置して画面デザインを行えるなど、簡易なアプリケーションやツールなら短時間で作成可能です。一方、大規模なシステム開発では、技術者確保に加えコスト削減の要請も強く、海外企業にシステム開発を委託するオフショア開発が増加しています。国内で要件定義や基本的な設計を行い、人件費が安く技術者が多い国の企業に詳細設計やプログラム、テストを委託することが一般的です。反面、コミュニケーションの問題が発生しやすいという課題もあり、開発手順や設計書·成果物の標準化や、テレビ会議の利用などの対策がとられています。

 

【広告】Librus Tech Communityのお知らせ

Librus株式会社が運営する、システムエンジニアやプロジェクトマネージャーの方向けに展開するコミュニティにぜひご参加ください。「互いに助け合い、学び合う空間」をコンセプトに、システム開発に関するセミナーや勉強会をはじめ、案件や転職先のご紹介、相談対応も行います。エンジニア初心者の方や起業、現在フリーランスをされている方、フリーランスを目指している方も大歓迎です。

▼Slackコミュニティ入会フォーム
https://forms.gle/1D5duKwVJhm1vFb18

 

フィンテックカテゴリの最新記事