bootcamp
bootcamp copied to clipboard
[退会]休会から三ヶ月後に自動で退会されるようにしてほしい。
https://github.com/fjordllc/bootcamp/issues/6424 この機能と同時にリリースする。
@machida @komagata 本イシューの仕様について質問させてください:bow:
質問1
現状の退会処理では退会と同時に以下の通知を行っています。これらの通知は同様に行うということで問題ないでしょうか?このままでとくに問題なさそうに思いますが、何か変更する必要があればお知らせください。
-
ユーザーへのメール通知
-
メンター/管理者へのメール通知
-
メンター/管理者へのWeb通知
※クリックするとユーザー詳細ページに遷移する
質問2
上記、メンター/管理者へのメール通知では、ユーザーが退会手続き時にフォーム入力した内容を表示しています。また、これはDBのユーザーレコードにも保存されます。ここはどのように表示すべきでしょうか? 案としては、たとえば以下のようにしておくと良いかと思いますが、いかがでしょうか。
- 選択入力の退会理由 → 空欄(この欄は退会手続きフォームに表示する選択肢と連動しているため)
- 自由入力の退会理由 →
(休会後三ヶ月経過したため自動退会)
@ogawa-tomo 確認ありがとうございます!
質問1
通知はこのIssueではこのままでお願いします。 文面を変えるかもですが、それは別Issueで行いたいと思います。
質問2
自由入力の退会理由 → (休会後三ヶ月経過したため自動退会)
提案ありがとうございます👍 こちらでお願いします🙏
承知しました、ありがとうございます! 通知の文面を変える可能性についても承知いたしました。
@machida @komagata 本イシューに関連しまして、追加で質問です:bow:
現状、休会後三ヶ月が経過したユーザーに関しては、管理ページから手動で退会処理を行っていると理解しています。
その際、ユーザーの休会フラグ(usersテーブルのhibernated_at
カラム)を何らかの方法で同時に操作していますか?
といいますのは、管理画面上から退会処理を行ったとき、上記の休会フラグは編集されません。
その結果、休会中のユーザーを管理画面から退会させると、ユーザーの区分として「退会」「休会中」が二重に表示されるようです。
また、管理ページの休会ユーザー一覧のページにも、退会させたはずのユーザーが表示されたままになります。
ですので、現状は上記の状態を許容しているか、何らかの方法で休会フラグを同時に操作しているかのどちらかだと推察しているのですが、どちらでしょうか?
また、後者の場合(あるいは現状は前者でもその状態が好ましくない場合)、退会処理時には同時にユーザーの休会フラグを操作する処理を加えるべきだと思うのですが、いかがでしょうか?
@ogawa-tomo
退会処理時には同時にユーザーの休会フラグを操作する処理を加えるべきだと思うのですが、いかがでしょうか?
退会処理時には同時にユーザーの休会フラグが削除されたいですねー。 今は手動で休会を削除してると思います。この手間はなくしたいです。
退会処理時には同時にユーザーの休会フラグが削除されたいですねー。 今は手動で休会を削除してると思います。この手間はなくしたいです。
承知しました!
@machida @komagata 少し検討したのですが、さらに以下2件相談させてください(何度もすみません)
相談①
「休会フラグ」という言い方をしましたが、正確にはhibernated_at
カラムは真偽値ではなく、休会した日時が入っています。退会時にこの情報を失っていいのかな、と少し気になりました。ユーザーの行動履歴に関するデータなので、後々何かしらの分析に使うこともありうるかな、と思いまして。
つまり、休会状態と退会状態を混在させない対策として、以下の2案が考えられると思います。どちらがよいでしょうか?
案1
退会時にhibernated_at
カラムの値をnilにする
メリット:コードの修正として考慮すべきことが少なく、すぐ実装できる
デメリット:退会すると休会日時の情報が失われる
案2
退会時にhibernated_at
カラムの値はそのままにする。その代わり、退会フラグ(retired_on
)が立っている場合、休会フラグ(hibernated_at
)が立っていても休会中ユーザーとは扱わないよう修正する
メリット:退会しても休会日時の情報が失われない。また、コード全体としての処理はシンプルになる(退会時にいちいち休会フラグを削除する必要がない)
デメリット:修正にあたり、現状の休会/退会判定を行っている箇所に意図しない影響がないか調査してまわる必要がある
ここまで書いてからapp/models/user.rb
のコードを見たのですが、案2のデメリットに書いた対応はけっこう大変そうなのでできれば案1にしたいです。。
現状は削除しているとのことなので案1で問題ないかなと思うのですが、念のためご確認お願いします:bow:
相談②
上記の相談①の対応については本Issueとは別の関心事かなと思いまして、別途Issueを立てたいと思うのですがそれでよいでしょうか? 案1を採用した場合、自動退会の導線については本Issueで対応してしまおうと思うのですが、管理ページから退会させる導線についてはIssueを分けたいです。
@ogawa-tomo
現状、休会後三ヶ月が経過したユーザーに関しては、管理ページから手動で退会処理を行っていると理解しています。
まだ管理者が手動で休会者を退会にしたことはありません。
ですので、現状は上記の状態を許容しているか、何らかの方法で休会フラグを同時に操作しているかのどちらかだと推察しているのですが、どちらでしょうか?
上記なのでどちらでもないです。
今後管理者から手動退会するとき困るので、退会時に休会フラグを操作する処理をしたいですね。(別Issueで)
@ogawa-tomo
以下の2案が考えられると思います。どちらがよいでしょうか?
1でお願いします。
休会した日についてはhibernations
テーブルにあるので気にしなくて大丈夫です。
ありがとうございます!現状の処理と方針について承知いたしました。
休会した日についてはhibernationsテーブルにあるので気にしなくて大丈夫です。
なるほど!見落としておりました、了解です。
@machida こちら、現状では休会から3ヶ月経っても退会させておらず、3ヶ月経ってから復帰をしているユーザーもたくさんいる現状があります。
リリースしてしまうとすぐ反映されて大勢退会になると思うのでどうしようかなと迷っております。どうしますかね〜
@komagata そうですね、ここはルールを優先したいと思います。 その代わりに、退会者がスムーズに復帰できる機能(手作業なく復帰できる機能)の開発をして、一度退会しても、分報やOKになっていなかった途中の提出物は消えてしまうが、学習の再開はできる、ということを明示するようにしたいと思います。
@machida 現状、休会3ヶ月で自動退会してしまうと、「休会から復帰できない」というお問い合わせが多数来そうなのと、その関連で復帰予定だった人が復帰しなくなって結果ユーザーが減ってしまう気がしているのですがそれは大丈夫ですかね。
その辺り、6ヶ月ぐらいに変更したら緩和されるのではないかと思っております。
@komagata ルールを明確にして、そのルールに従った運用を手間なく行えるようにしたいと考えています。 3ヶ月が過ぎてしまい、それでも復帰したい人には、それに対しても手間なく復帰ができるようにシステムの方で対応をしたいと思います。
- 3ヶ月を経過すると自動で退会になる。 - 退会になると、WIPで保存していた日報や提出物が削除される。 - 退会になると、OKになっていない途中までの提出物が削除される。 - 退会になると、分報が消える。
しかし、退会後も復帰(復帰ではない再入会など別の言葉にしたい)をすることはできる。現在は、復帰するにあたって手動の作業が必要なので、その作業なく退会したユーザーが復帰できる機能を実装したい。それまでは手動で対応する。
これとは別に、休会期間を3ヶ月から6ヶ月に変更することで、ユーザーが減らない(ユーザーにとって嬉しい & こちらの負担にもならない)ので、あれば、3ヶ月から6ヶ月に変更することには賛成です。
ただ、ユーザーには3ヶ月というルールを伝えているが、裏側では6ヶ月まで許容しているという形ではなく、休会のルール自体を3ヶ月から6ヶ月に変更し、それをユーザーにも認識してもらう形にしたいです。
:memo: こちらに直接ビデオチャットで話しました。
- 基本仕組みは大きく変えない
- 退会からの復帰を楽にする仕組みをシステムで用意する。
- 3ヶ月を6ヶ月に変えるかどうか(ちょっと明確に覚えてない)
@machida ちょっと正確に覚えてないのですが、僕の理解ですと上記のような話だったかなと思います。こちら問題ないでしょうか。また3番目はどうでしたでしょうか。
@komagata @ogawa-tomo
退会者を復帰させるのに人力の手間が発生するという問題が発生します。 退会から復帰をさせるより、休会から復帰する方が手間は少ないです。
休会3ヶ月経過後に復帰をしたいユーザーがいます。 現在は、休会3ヶ月経過後もまだ休会ユーザー扱いなので、復帰する手間が少なくて済んでいます。
休会3ヶ月経過後に自動で退会をする機能を入れると、休会3ヶ月経過後に復帰をしたいユーザーを復帰させる手間が発生することが予想できます。
なので、
- 手間なく退会者が復帰できる仕組みを実装する。これを休会からの復帰機能とは別扱いにするために、再入会機能とします。
- 再入会機能を実装するまでは(下記 再入会に関する Issue 一覧参照)、休会3ヶ月経過後に復帰をしたいユーザーを復帰させる手間を減らすために、一旦システム上は自動で退会する機能を3ヶ月ではなく6ヶ月にします( @ogawa-tomo すいません、ここだけPRに修正をお願いします🙇♂️ )。
- 再入会機能が実装されたら、自動で退会する機能を6ヶ月から3ヶ月にします。
再入会に関する Issue 一覧
- https://github.com/fjordllc/bootcamp/issues/6768
- https://github.com/fjordllc/bootcamp/issues/6767
- https://github.com/fjordllc/bootcamp/issues/6775
- https://github.com/fjordllc/bootcamp/issues/6775
- https://github.com/fjordllc/bootcamp/issues/6776
こちら、休会期間を三ヶ月から六ヶ月に修正しました! https://github.com/fjordllc/bootcamp/pull/6490#issuecomment-1665526137
@sochi419 上記の議論の通り、自動退会までの休会期間をいったん三ヶ月から六ヶ月にすることになりました。sochiさんのこちらのPRに影響するかと思いますので、一応メンションしておきます:pray: https://github.com/fjordllc/bootcamp/pull/6659
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
こちら動作確認とれたのでクローズします。 https://github.com/fjordllc/bootcamp/pull/6490#issuecomment-2187120382