こんにちは、かわしんです。
最近暑くなってきたので家ではお蕎麦ばっかり食べています。
さて、今回は当社の内製開発の進め方について紹介したいと思います。
一般的な金融機関のおけるシステム開発では、要件定義のみ自社で行い、実際の開発はSIerに任せ、マネジメントが主な業務というパターンが多いのではないかと思います。
ですが当社の場合、こちら のページにも記載している通り、「らしくない銀行」として多くの機能の開発を自社で行っています。
もちろん、自社メンバーだけでは手が回らないので数社の協力会社に協力してもらっていますが、それでも銀行員がシステムを内製しているというのはなかなかユニークではないでしょうか。
①開発対象の決定
まずは何を開発するかを決めます。
開発対象の分類は大きく分けて2つに分けられます。
- 新規商品・新規機能
- 社内からの改修要望、不備改修
当社はまだまだベンチャーの銀行ですので、お客様がより便利に当社を使って頂けるように早く新しい機能や商品を追加することがシステム部門の命題でしょう。
しかし一方で、社内にも内製で作ったシステムやSaaS(SalesForceなど)のシステムが数多くあり、これらシステムを使用している事務部門などの要望を吸い上げ、より使いやすく、生産性を上げることも重要です。
(例:情報検索が遅いから早くしてほしい、お客様からこんな不満が上がっているからシステム的に対応したい等)
この2つの課題に対して、限られたリソースの中でどのタスクが緊急度が高いかを毎月話し合い、開発対象の優先度を決定します。
②開発手法
開発対象が決まったら次はそれをどのように開発しているかです。
開発手法にはウォーターフォールやアジャイル、ハイブリッド型モデルなど多くの手法がありますが、当社では基本的にはウォーターフォール型を採用しています。
(プロジェクトによってアジャイル的に検証を繰り返して進めるケースもありますが)
理由としてはシンプルで、当社は金融機関という特性上、安全性・安定性を最優先にバグを最小限に抑えるためです。
③開発管理の方法
開発時のタスクの管理は、ATLASSIAN社の JIRA でチケットを作成し運用しています。
コード管理レポジトリとしては GitLab 、
仕様書などのドキュメントの管理にはSVN(subversion)を使用しています。
当社のチケット作成においてはタスクの種類に応じたチケットを作成するようになっており、例えば以下のような名称になっています。
- ACP(受付)
- ITR(システムへのリクエスト)
- PBM(問題・障害)
- DEV(開発)
- REL(リリース)
ユーザーから要望が挙がるとACPが作成され、その要望が対応すべき課題だと承認されると要望の内容に応じてITRやPBMになり、開発が必要であればそれらがDEVチケットに紐づけられ、本番環境へのリリースが必要であればRELチケットとITRやPBMが紐づけられるといった具合になります。
(文章だけだとわかりづらいかも・・)
そのため、開発のほとんどはJIRA上で進捗を管理する形になっています。
④進捗確認
チケットで各タスクの管理ができても、定期的な進捗確認は欠かせません。
そのため、週に1度は定例会議(オンサイト or オンライン)を行っています。
自社エンジニアと協力会社のメンバーで各タスクの進捗状況、課題を共有しタスクがチケットの予定通りに進んでいるか確認します。
一般的なシステム開発会社との違い
当社では、上記のような形で開発を進めています。
まとめてみて思いましたが、開発の進め方としては一般的な開発会社と大きな違いはないかと思います。
ですが、決定的に開発会社と違いがあるのは、当社の場合は当社のメンバーとして要件定義の段階からビジネスサイドと関わることができ、アイディアを出しより良い形にしていくことができるという点だと思います。
また、開発するだけでなく、一度リリースをしたら安定稼働のため自社で運用を続ける必要もあります。
まとめ
当社はテックファースト銀行を目指しているというだけあり、開発プロセスは安全性を担保しながらもスピードを意識して日々開発しています。
ベンチャーの銀行でビジネスサイドも含めシステム開発に携わることができるのは当社ぐらい?と思っていますので興味があればぜひエントリー頂ければと思います!