見出し画像

【経歴】信販向けクレジット申し込み管理システム

信販会社向けに、クレジット申し込み管理システムの構築を行っていました。

僕にとって、会社員としての最後の案件でした。(2018年9月からフリーランスに転向)
2020年現在で、システムエンジニア歴は18年弱となりますが、期間は最長の5年11ヶ月でした。

期間:2012年10月〜2018年8月(5年11ヶ月)
契約形態:SES、準委任
サーバーOS:Linux
DB:Oracle

作業内容

開発メインでしたが、要件定義からテスト、保守運用まで全てやりました。

開発は業務系管理画面の開発が多く、マスター管理画面で、入力画面→確認画面→完了画面と、よくあるパターンの画面開発などありました。

一度リリースして保守チームに入ってからは、幅広く全体の改修を行っていました。
ユーザー画面も触っていたのですが、24時間常時稼働のシステムで申し込みを受け付けているものだったので、エラーが起きて機会損失が発生しないように、テストは重点的に行っていました。

使用言語

・Java
・HTML
・CSS
・JavaScript
・jQuery
・JSON
・VBA

基本はJavaでサーバーサイドの開発です。
フロントは画面のテンプレートが決まっているので、新規で作ることはなく、既存部品の使いまわしでした。
HTML、CSSなどフロント側はちょっとした調整がメインといった感じです。

お客さんがバージョンアップのリスクを大きく捉えている会社さんだったので、Java6でずっと開発していました。
2021年1月現在で、初期リリースから7年ほどが経ちましたが、今はどうなったのか気になります。

テストではJUnitによる自動テストを本格的に初めてやりました。
自動テストは便利ですが、テストのためのテストというか、テストが成功することに比重を起きすぎてしまうメンバーもいて、自動テストの組み立て方はすごく考えさせられました。

APIの開発も行っていたため、JSON形式も扱っていました。
既存のWebシステムの機能を流用して、APIを開発するということをやっていました。

開発に役立つツールをVBAで作ったりしていました。
設計書をExcelに作る際に、フォントやレイアウトを整形したり、エビデンスをExcelに貼り付ける際に手間が少なくなるツールなどを作りました。

フレームワーク

Nablarchというフレームワークを使用しました。

ベースはStrutsに似ていました。
機能としては、DIやアノテーションが便利だったので、Springに近いかなという感じです。

使用ツール等

・Subversion
・Tomcat
・JP1
・Redmine

JP1を初めて使ったのですが、運用管理としては、なかなか良さそうでした。
スケジュール定義や、ジョブの起動順序の定義など、視覚化されていて便利だった印象です。
(他のツールを使ったことがないので比較ができませんが)

他のメンバーが設定を行っていましたが、設定作業は大変そうでした。

作業工程

・要件定義
・外部設計
・内部設計
・製造、単体テスト
・結合テスト
・システムテスト
・保守、運用

特記事項

オフショア開発

一部の開発のオフショアに出していましたが、オフショアメンバーが抜けた後、改修や不具合修正などを行いました。
ここで困ったのが、プログラムのコメントの書き方です。
一応、日本語で書いてあったのですが、日本語として意味が理解できなく、結局コードを読んで理解することになりました。
外国人の方は日本語を使えるといっても、人によってレベルが違うので気をつけないといけないなと思った経験でした。

見積もり、要件定義

一度リリースしてから、改修が多いプロジェクトでした。
保守をメインにやっていたので、小さい改修の見積もり、要件定義の資料作成を多く行っていました。

見積もりを行ってから実際に発注になるまで期間が空いた改修があると、見積もり時の内容を忘れてしまうこともあり、どれだけ正確に見積もりができるかというのが大事だなと感じることが多かったです。

システム開発を行っていると、詳細の見積もりもなくプロジェクトが始まることがありますが、これが結構危険で、細かく見積もりできているかがプロジェクトの成功に繋がるかなと思いました。
(これは発注元、発注先ともに)

タブレット用開発

実際は開発までいかなかったのですが、タブレット用にWebシステムの機能をAPIとして移植して、タブレットアプリから呼び出せるようにする、というのを検討していました。

元々、APIなどの想定をせずに作っていたシステムだったので、なんとかAPIとして使えるように色々検討していましたが、無理やり移植となるとコストが増加するなという体験でした。

コスト増加の説明をお客さんにする必要もあり、その資料を作ったりしましたが、システム開発として汎用性が大事だなとすごく感じる経験でした。

設計、検討の作業は多く実施して、アーキテクチャ設計、API設計、IF設計、URL設計、ログ設計など、システムの基盤となる部分の検討ができたことは良い経験でした。

この記事が気に入ったらサポートをしてみませんか?