【デコのDX日記 #10】season1:導入編の最終回!Dynamics-Salesforce連携システム、開発からリリースまで!!!
こんにちは!お久しぶりです!
つい先日まで過ごしやすい気候が続いていましたが、最近冬らしい空気になってきましたね!セーターやブーツを楽しめるので冬も好きです♪
8月の前回からかなりあいだが空いてしまいました(^^;)
開発が始まってからバタバタで、夏真っ盛りからイッキに冬へワープした気分です。。。
・Dynamicsの開発ベンダーさんがY社さんに決定
・SalesforceとDynamicsをつなぐ連携ツールにAzure Data Factoryを採用!
というところまでお伝えして止まってましたが、その後開発が進んでリリースし、現在は本番運用を開始しています!
開発からリリースまでもとてつもなく苦労しましたが、本番運用に入ってからも輪をかけてバタバタしています。。。
今回はseason1:導入編(初耳って言わないでください笑)の最終回!
締めくくりとして開発から本番運用開始時点までのバタバタな様子をご紹介します!
開発手法はAgile開発で、機能ごとに詳細設計・開発・テスト・リリースを繰り返すやり方でした。
機能ごとのテストはプロジェクトメンバで行い、一通り機能が揃ったら利用者から何名か運用テストメンバを選抜して全体テスト、ざっくり運用に乗せられることが確認でき次第、全体リリース、という流れで進めました。
さらーーーっと書きましたが、これがまぁーーー大変!
開発
当社がAgile開発に慣れていないというのもありますが、基本設計をほぼA社さん任せにしていたので、Y社さんと詳細設計を進める際に疑問点が満載。。。とはいえ、進める必要があるので当社の希望で詳細設計と開発を進めるも、別機能との整合性が合わず手戻り。。。というのを何度も繰り返すことに。。。どんどん予定が遅延。。。
さらにAgile開発なので、ウォーターフォール方式のように順番に進めるわけではなく、機能ごとに詳細設計と開発が並行して進んでいるため、もはやどの機能がどこまで進んでいて、1つの機能で手戻りが発生した場合にはどこまで影響するか、などの全体把握がなかなか難しいことが判明!ほぼ全員が大混乱(;;)
いやー、Agile開発ってこんな感じなんですね。機能ごとの進捗がわかるように管理をしないといけないことはわかっていたものの、それを開発ベンダーさんがやってくれるもんだと思い込んでましたが、そこは役割を事前に明確にしておく必要があったな、と反省しました。設計書まわりのドキュメントも作成しながら開発していただいていたものの、一体どの時点での要望で設計・開発が進んでいるのかをプロジェクトメンバが把握しきれず。。。
このプロジェクトで、Agile開発の場合は取り掛かる前に機能一覧にある機能ごとの進捗を管理するようなWBSをまず準備し、それを使って関係者全員の頭の中を同じ進捗状況にしておく必要があることや、機能ごとに設計・開発を進めつつ、仕様変更が発生した場合はその他すべての機能への影響を確認しながら進める必要があること、などさまざまなことを学びました!
今後はAgile開発でもどんとこい!!(ホントか!?笑)
現場選抜メンバによる運用テスト
なんだかんだで当初の予定からは約3ヶ月ほど遅れながらも、どうにかこうにか一通りの開発を終え、9月から現場選抜メンバによる運用テスト開始。
選抜メンバはこの時点で初めてDynamicsに触る人がほとんどで、ざっくりした操作手順書は準備していたものの、画面操作に慣れていないことや、既存システムでの運用からがらーっと変わった部分もあり、開発時プロジェクトメンバが大混乱したのを大幅に上回る大大大混乱ーーー!
まだ早い段階で大大大混乱が表面化していればよかったですが、初めのうちはそもそもテスト動線を把握しきれず手をつけられていないメンバが多数で、嵐の前の静けさがしばらく続いていたのでした。。。
現場選抜メンバ全体へ問いかけても、何がわからないかわからないという状況。そこで、こまめにMTGを開催してプロジェクトメンバがテスト環境で操作を説明することに。しかし、プロジェクトメンバが想定していたとおりに画面操作が進まない。。。進むはずのステップでエラーが出たり、画面が切り替わらなかったりで、結局現場メンバはさらに混乱。。。
このタイミングで発覚した操作制限や不具合を開発ベンダーのY社さんに確認したり修正してもらったり。それが1つや2つならまだしも大量過ぎてなかなか進まず。。。本来運用テストでは、どうしても必要な機能の追加要望に対応することをメインとするはずが、なかなかそこにたどり着けない。。。
この運用テストフェーズでもかなり学びがありました!現場選抜メンバによる運用テストに入ったばかり頃はサイレント混乱期アリ!!とにかく頻繁にMTGを開催することが重要。その前にプロジェクトメンバで各業務フローごとに一連の動作確認を数パターンずつ開発ベンダーさんと一緒にやっておいて進まない箇所を潰しておく。これが大事だなと。
そしてどうにか一通り業務が流れるかな、という状態までもっていったところで、今度は必須機能の追加要望対応。
これは機能追加なので仕様さえ決まればスムーズにいくかと思いきや、ここで出ました、連携のワナ!笑
単独で動くシステムだったり、Dynamics側だけにあればいい機能の場合、さほど苦労しないのですが、Salesforce側にもデータを持つ必要がある場合、Azure Data Factoryの連携部分も追加で実装が必要になります。ここでまた苦労大会開催。
連携仕様は、項目ごとに片方向連携か双方向連携か、どのくらいのスパンで連携するかを定めています。もともとは全項目を双方向にリアルタイム連携したかったのですが、それだと通信量や処理量の関係でリソース的に難しそうということになり、個々に設定。
片方向で済むものはできるだけ片方向、頻繁に更新しなくてよいものは間隔を広めにとる、などの調整をしてます。
そういう状況なので、項目追加はそれそのものについては簡単なのですが、連携のことを考慮するとプロジェクトメンバや開発ベンダーさんはゲッソリ(ーー;)
そうは言っても、必要なもんは必要!!省くと現場が回らないとあらばやるしかない!!
そんな感じで何度か炎上が勃発しつつも、ここまでなんとか、開発、プロジェクトメンバによる機能ごとのテスト、現場選抜メンバによる全体運用テスト、と進めてきて、ついに、ようやく、やーーーっと、10月頭には全体リリースし、本番運用に入ろう!という目途が見えてきました。
ついに本番運用開始!ところが。。。
ついに、10月に入ってすぐほぼ無理やりに近い状態で全体リリースをして、本番運用に突入しました!!
突入はしたんですが。。。これまた、ソフトクリエイト史に残る大波乱の幕開けとなったのでした!
さて、season1:導入編はここまで!!今日で最終回です!
これまでの長い間、season1:導入編にお付き合いいただき、誠にありがとうございました!!
season2:運用編はそのうち始まるのか?どうなのか??デコが書くのか???どうなのか・・・!?笑
では、またお会いできる日を楽しみにしています♡
この記事が気に入ったらサポートをしてみませんか?