You do have another solution that can lower the amount of conditions: Null Objects. These don’t fit every use cases, but they can allow you to express what’s missing, or not defined, or empty, and avoid nil pointers dereference or conditions to check the state.
As Sandy Metz is used to say « Nothing is Something »[0]
Doist Inc. with Twist (https://twist.com). A sane replacement for slack that focus on making your life easier, and get actual job done by levering the concept of "threads" to make them first-class citizens that bridge the gap between instant chat where direct communication is needed and task manager where you need to declare a discussion to be open or closed.
They side with the "Deep Work" philoshopy, and encourage (written) async collaboration.
Twist is much nicer than Slack in my opinion. The signal to noise ratio tends to be much better, and I find myself distracted by it far less because information I need is much easier to find when I need it.
As Sandy Metz is used to say « Nothing is Something »[0]
0: https://youtu.be/OMPfEXIlTVE?si=qmizH1OvqV7eLKNK