Webサービスをフロントエンド~バックエンド~インフラまで総合的に改善し、事業にコミットできるエンジニア
部分最適ではなく、アプリケーション全体を通して、より良いものにできるようになりたいため。
また、ビジネスとして価値のあるものを提供することを大切にしたい。
#担当
全体設計、画面系、バッチ系という大きく3つのベンダーの画面系の開発リーダーとして、参画。
サービスの運営、全体設計、バッチ系と共に打ち合わせ、進捗の報告、詳細設計~結合テストを担当。
画面系としてはマネージャー1名、メンバー2~4名。
作業見積もりとスケジュール化、メンバーのタスク管理や技術的なサポートやPull Requestに対するレビューやソース管理、自らも開発業務を担当。
リリース後の追加開発にも関わり、保守的な対応や、リリース作業も担当。
# 課題と取り組み
全体設計担当の一部の設計が、データ数やフレームワークと合わせて効率的な詳細設計が必要であった。
よりよい設計を提示し、検討していただき、採用していただくこととなった。
元々の実装での実行時間と、私が考えた実装で実行時間を計測して、後者が良かったことも後押しとなった。
画面系とバッチ系で共有するべきモジュールがあり、その共有化の方法を考え、実施
共有するjar用のリポジトリを作成し、Entityと暗号化に関わるモジュールを共通化。
その作業を率先して対応して、自らが考える方式で対応することができた。
また、管理としてもそれほど煩雑ではなく、一番問題となりそうであった暗号化の部分を共有できたことで、ボトルネックを生まずに済ませることができた。
一覧系の画面で性能問題が発生。初期表示でタイムアウトする状態に。
サービス開始からデータが増え始め、クエリがタイムアウトしている状態であった。
その調査の為、ORマッパーが出力するクエリを検証したリ、実行計画の参照を行ったが、なかなか対処しきれず、DBのプランをあげて、性能を上げることで対応を続けることになった。
原因は数値と文字列の暗黙の型変換が発生していたことであったが、2週間程度時間がかかってしまったが、対処することができた。
・自サブ画面25本、バッチ(Java、PL/SQL)17本
・Junit環境の構築と先行してテストクラスの作成
・性能試験仕様書とテストデータの作成(1テーブル、1憶レコード)
・最大6名チームの進捗管理とタスク管理
【ポイントやエピソード】
・約500人が関わる大規模システム
・負荷試験、性能試験の経験。クエリチューニング、大量テストデータの作成
・ドキュメント管理の細かさ、内容とも今まで経験した中で一番しっかりしていたプロジェクト
・品質問題への対応と、ライブラリアンとしてソース管理
このプロジェクト詳細は公開されていません
最大5名のタスクマネージメント。
タスクの完遂とタスク内容の指示、確認
目的と、行うべきこと、どうなれば終わりか、いつまでにどのような状態になっていればよいか。
AWSやAzureを利用した、全体最適化されたアプリケーションの構築術
マネージメントと開発の間
初期開発、追加開発