In the past, I have tried to rush things that I want, and in doing so, I miss the enjoyment of the journey there.
And even in that statement, I am failing to correctly describe the concept. It is a mistake to assume that I can control the destination.
One of life’s greatest struggles is in accepting that some things are out of our control.
I like control.
You’ve got a problem? I’ve got a solution.
But there are some things we can’t control. In programming we wrap them in “try…catch” blocks.
We only have control over the “try…” part.
I am dedicated to staying sane. Sanity is not an option.
But providing options may save your sanity, if you are a web developer. Clients will rarely ask for the ability to turn something on and off. Instead, they will describe the feature’s settings and appearance, but inevitably they will forget to tell you to create a KILL SWITCH.
If the default is for this feature to be on, set the checkbox to being checked by default. Then you’ve got a kill switch if you ever need to turn it off.
When should you add a checkbox?
Here are some hints that you should have a checkbox for enabling or disabling the new feature you’re building:
- Feature depends on a third-party service. If you have no control over the service, and if the rest of the site does not depend on that service, add a checkbox. This allows you to quickly disable the integration if problems arise or billing agreements change.
- Other similar features have a way to be enabled/disabled. This makes it likely that the client has the same expectations this time. If you’re new to the project, ask around and check out existing code.
- Feature may interfere with other site features. Think about this from both design and functionality standpoints.
- Feature needs to be deployed at an exact time. Your time is valuable. You should take control of your life. Add a checkbox, deploy it ahead of time, tell client they can turn it on whenever they want. Win-win. This assumes that it’s been thoroughly tested on a staging server and you’re not concerned about any immediate issues.
- How static is the website? The more complex and ever-changing it is, the more likely you’ll wish you had that checkbox.