管理者を部下に持つ管理者になりたい。マネジメント・技術両面で会社に貢献していきたい。会社の経営にも貢献していきたい。
社員・エンジニアの自分の役割として求められるものである為。
自分の存在価値を高める為。
年収を上昇させる為。
このプロジェクト詳細は公開されていません
決済代行システムのリプレイスプロジェクト。
リプレイスではあるが、システム構成から大幅に変更して開発。
担当は、input(JSON)をDB(Oracle)に登録/更新するAPI。
※担当機能はゼロからの新規開発。
決済代行システムをリプレイスする。
自チーム:7名程度(PM1名、設計チーム1名、開発チーム3~5名)、他ベンダ:数名程度
開発チームリーダー(テックリード)
・APIの構成検討
・設計の実装取り込み方式検討
・共通機能実装/テスト
・PGレビュー
・テスト方式決定
ほぼ同じ処理内容のAPIを6本開発する必要があった。
また、近い将来にほぼ同じ処理内容のAPIを約20本開発する予定もあった。
⇒共通化を意識し、可読性・保守性に優れたソースコードにする必要がある。
・処理内容がほぼ同一である為、共通化可能な箇所は共通化するように意識した。
・コード値などはEnumや定数クラスで管理し、リテラルを使用しないようにした。
・入力チェックは、うまくパラメータを与えることにより全てのAPIで共通化した。
・開発メンバのスキルが低い為、お手本を作成しある程度コピーで開発できるようにした。
・ソースコード量も少なくなり、かつクラス構成も目的毎に整備できた。
・構成をそのままコピーすれば良い為、開発スキルが低くてもAPIの開発自体が可能になった。
ガスの保安調査に関して、新システムを構築し大きく変更する。
新システムでの保安調査結果は、旧システム側のDBにも登録する必要があり、
これを定時起動バッチにより実現する。
顧客:3名程度、自チーム:(PM1名、設計チーム:3名程度、開発チーム:2~10名程度)
・顧客との仕様調整
・仕様検討、顧客へ提案
・設計書作成、顧客レビュー
・開発チームリーダーと仕様の調整
・PGレビュー
・設計書内部レビュー
・入出力の項目が多く、それぞれの個別の仕様やDBへのCRUDの仕様など、
考慮すべき事項が多数存在する。
・明らかに分かる仕様は顧客確認をスキップし、不明な仕様を重点的に確認する。
・一つ一つ丁寧に整理し、顧客に確認済のものと未確認のものを管理する。
・開発への影響度を考慮し、仕様確認は優先度を付けて行った。
・稼働が高くなった時期もあったが、最終的にはなんとか本番リリースを予定通り終えることができた。
・本番障害も発生させてしまったが、機能ボリュームを考慮すると少なく抑えられた。
・顧客から多数のご指摘を頂き精神的に辛い時期もあったが、最終的には最後までやり切ったことをお褒め頂いた。
開発チーム
・開発者のスキルが向上する状態(新卒1年目もメンバにいた)
・可読性、保守性に優れた成果物を作成できる状態
・進捗に遅れがでない状態
・メンバにうまく担当を割り振り、メンバが可能な範囲で成果を上げられるようにする
・そもそもの開発ボリュームを減らす
・可読性、保守性に優れた成果物を作成する
・開発者のスキルが低く、指示した内容の成果物が作成できない。
・共通化できるものは共通化する。
・お手本を作り、ほぼお手本のコピーでメンバが開発できるようにする。
・メンバに指示する際はメンバがどこまで理解しているのかをヒアリングし、
場合によっては参考になる資料を提供する。
・設計者と調整し、未確定仕様や不要な処理は実装しない。
組織チーム
・退職しないモチベーションである状態
・提出物に遅延がない状態
・高い人事評価を付けられる状態
・メンバのことをよく知る必要がある。
・上長と部下の関係性であるが、そこに拘り過ぎずにコミュニケーションを取る必要がある。
・組織チームを編成したばかりで、メンバのことを良く知らない。
・メンバと毎月1on1で会話する。
・現場での不満をヒアリングし、助言できそうなことがあれば助言する。
・メンバの担当営業とも密にコミュニケーションを取り、情報連携を行う。
・プロジェクト管理
・自社の立ち位置を考慮した上での、顧客との交渉
(NOが言えるか、言っても良いのか)
・データ分析の手法
・機械学習の手法
私が一番パフォーマンスを発揮できる環境は、下記です。
・ある程度質の良いイス
・広い机とモニタ
・自宅ではない作業場所
・何か判断が必要になった場合、自分に判断/決定する権限がある
(自分で判断し物事を進められる)
・要件/仕様/設計のタスクと開発/テストのタスク両方をこなす
(設計と実装を理解することで、システムを深く理解する)