riki.dev
Published on

2年半やってた案件が一定の完了を迎えた

Authors
  • avatar
    Name
    Riki "Remicck" Kawai
    Twitter
    @Ricckn

やっと終わった!🎉🎉🎉

ということで、2年半やっていた案件が全体的に使われるようになったという意味で、一定の完了後迎えました。
継続的な修正というか改善も契約で続けているので、まだまだ終わらないのですが一息つけたような状況です。

うちの会社的には規模がでかすぎる仕事だったためかなり大変な思いをしましたが、それでもやりきれてホッとしています。

自分の成長

ツールの話はあまり書きづらいので、自分のとくに成長した話を書いておこうと思います。

PM

これまでもPMとして案件を回していくことはしていましたが、今回ほど大規模+長期間というのはありませんでした。
それもあって最初はかなり緊張していたし、途中上手く進まないところもあって大変だったのですが、なんとかやりきったという感じです。

チームメンバーも補佐してくれていて、無茶な注文・・・はあまりしていないと思うのですが一緒に設計・実装を考えたりテストをしたりと忙しい中にも楽しさがあるような開発だったと思います。

正直にいうと最初の1年間の開発としては0→1のフェーズが大変で、そこからは付け足していくような1→10(or 100)のフェーズだったこともあり、スクラム的な進め方ができたこともかなり楽になった理由だと思っています。
この頃になるとチームメンバーも成熟してきていて、阿吽でお願いできる良さもありました(実際には入れ替わりが発生していて初期コストがかかっているシーンもありましたが)

まとめると、大規模な案件のスクラム開発を経験できたことは良かったし、チームメンバーの成長といっしょにプロジェクトが進んでいく感じも大変楽しかった。

技術力

上でチームメンバーの成長の話を書きましたが、どうしても期日的に自分でやり切る必要があるシーンも有りました。
そもそも最初からチームメンバーに触れない仕事もあったことから、その部分は自ら手を動かして開発しています。

React関係

ここまでの規模でReactを扱ったことがなかったので、まずその点で勉強になりました。
Reactの設計に関してはこれまでの経験から引き続くかたちでやっていけたので困りませんでしたが、約2年間も開発しているとわけわからん挙動が出てきているため、部分的に深く理解できたという認識です。

バックエンド全般

今回はPHP(自社CRM)+ MySQLな環境でAPIを生やしながらフロントのReactで受け取るアーキテクチャでした。
APIに関してはそれほど変なことはやっていないのですが、とくにDB周りの高速化、最適化の能力はかなり高まった認識です。

Dailyなアクティブユーザー数自体は2000人程度とそれほど大きくないですが、SFAとしてデータを出力する関係上、1テーブルで10億レコード近いデータを保持せざるを得ないシーンがあります。
この辺をどう処理するかや、更新をどうするかといった設計を行えたこと、またそれをMySQLでどのように対応していくかという部分も含めてかなり勉強になった認識です。

また、工夫した点としては基幹システムとの連携があります。
先方の基幹システムがS3へのファイルアップロードを簡単に行う仕組みをもっていたことから

  1. S3へファイルアップロード
  2. Lambdaを発火
  3. SessionManagerを通してEC2のスクリプトを、ファイルパスを引数に入れて叩く

という仕組みでかなり簡素化できたイメージです。

この方式は複数良いことがあって、ひとつはS3でSSMを発火させた後、テスト環境用のS3へコピーする処理も組み込み、テスト環境にも同様の連携を同時に流すことに成功させています。
また、テスト環境のみに流すことも柔軟にできるので、複数回流たときの冪等性さえ確保されていれば、かなり簡単に連携ファイルを受け取ることができました。

大きくまとめるとこの2点に関連する周辺知識から、連携関係だったり泥臭い処理についての知見をためていくことができたという感じです。

ユーザーインサイト

今回、それなりに大きい企業のSFAを開発するというプロジェクトを通して、そのような会社の営業戦略部に相当する部署がどのように考え、またどのようなところに課題を持ち、実際に営業員がどう感じてどうしたいと思っているかという部分がふわっと見えてきている気がします。

この知識は直接的な技術力ではないですが、PMとしてB2Bソフトウェアを作るうえではかなり重要な示唆が含まれています。

結局のところ、明らかに足を引っ張ろうと思っている人は居ないわけです。
我々は営業員が自然と便利に使えて、気になることがわかるツールを作り、気持ちよく商品を売ってもらって顧客を幸せにするという、業務フロー的にはかなり長いスパンに関われる仕事をしているという意識が重要でした。

うちの会社はほぼCRM屋ですが、今後別のアプリケーションを作ったときにも使う人の先まで考えて製品開発ができればと思います。

一歩先を考える

今回の案件で得られたことではないのですが、再確認できたこととして「一歩先を考える」という話が私の中では話題です。

抽象化しているので分かりづらいと思いますが、シンプルに言えば何事も人より一歩進むとなんかすごい感じが得られるという話です。
たとえばお客さんの話を聞いているとき、「一歩先」を考えると課題が見つかったりします。

お客さんの意見を聞き入れて開発をするわけですが、「我々がIT(製品開発)のプロ」という意識を持つと、やはり聞いたことだけをやっているだけでは足りないわけです。
多様性の話も一緒ですが、この小さいチームでも営業+エンジニアがチームを組んでSFAを作っているわけです。
その二者のシナジーをどのように出していくかという意味ではリスペクトを持って接し、より良いものを意見をぶつけ合いながら作っていくことが大事だったと感じています。

2年半を振り返って

始まったときは「失敗したら自分の精神がぶっ壊れる前に会社を辞める」という仕事をしていたのですが、1年後くらいからは結構楽しいことができていたと思います。
途中からはそもそもこの開発自体と、でき上がったもののクオリティが上がっていく感じが面白く、なんだかんだ続けることができました。 ありがたいことに、追加の別案件なども発注いただき、良い関係が気づけていると思います。

さてじゃぁこれからどこのスキルを伸ばせばいいのか、あまり自分の中で方針は定まっていません。
製品開発には関わっていきたいので、また新しい0→1の仕事をやっていきたいし、もっとモダンな開発体験をチームメンバーに提供していき、楽しい職場にしていきたいですね。

まだまだ大変な時期ではありますが2年半を通していろいろな人と関わり最終的に良いものができたことについて、私のチームメンバー全員を褒めてあげたいですし、自分自身にも拍手を送りたいです。
みんなお疲れ様!