I Applied Developer Thinking to Installing Lightbulbs
I applied developer thinking to something seemingly unrelated: installing lightbulbs in my uncle’s bathroom :)))
Requirements:
My uncle asked me to install three lightbulbs for the entrance, the toilet, and the bathroom.
Option 1:
Many people would choose this approach. Install three separate switches at the entrance, one for each lightbulb.
This option requires more switches and wires, and the user experience (UX) is poor. Every time you go to the toilet or take a shower, you’d need to turn on two switches. Deciding whether to turn on the entrance light depends on whether it’s day or night. It’s not easy to consistently turn on the correct two out of three switches.
Option 2:
To reduce the number of switches and minimize user errors, I found a type of switch and installation method that requires only two switches:
- Switch 1 turns on the entrance and toilet lights.
- Switch 2 turns on the entrance and bathroom lights.
This setup provides a decent UX: switch 1 for the toilet and switch 2 for the bathroom. However, this method requires a special type of switch, which is expensive, and more wires. Users might still press the wrong switch occasionally. The energy savings aren’t significant either, as turning off just one light isn’t a huge difference.
Optimal Solution:
In the end, I chose this option: Install a single switch for all three lights :))
It may sound amusing, but this is actually a great solution, in the spirit of Apple’s design philosophy.
This simple approach delivers excellent UX. With just one switch, you turn it on when you enter and off when you leave—no need to think about which light to turn on or off. There’s no frustration of accidentally flipping the wrong switch and having to fix it.
In terms of cost, this setup saves on switches and wiring. The time spent in the toilet and bathroom is negligible, and the lightbulbs are energy-efficient. Compared to appliances like air conditioners, refrigerators, or washing machines, the energy use of the lights is insignificant. While it might seem wasteful at first, I calculated that it would take years of use to offset the cost savings from fewer switches and less wiring.
Finally, installation is simple, quick, and less prone to errors. Future maintenance is also much easier. A single wire runs to all the lights, and modern energy-efficient bulbs can easily handle three lights on one circuit. The setup was implemented quickly, with my uncle providing snacks as a bonus.
Conclusion:
Sometimes, a grand system or complex architecture isn’t the most effective way to solve user problems.
A developer must not only understand the technical aspects but also grasp the context and goals of the product. Having a holistic view enables the developer to propose effective solutions.
By possessing knowledge in various areas of product development, evaluating options, and making informed decisions, developers can deliver solutions that balance efficiency, cost, and user needs. A developer who empathizes with users can understand their needs and use technical expertise to ensure the product is effective and cost-optimized.