End-users are questioning the complexity of your algorithm. How will you address their criticism?
Curious about simplifying algorithms? Share your strategies for making tech more user-friendly.
End-users are questioning the complexity of your algorithm. How will you address their criticism?
Curious about simplifying algorithms? Share your strategies for making tech more user-friendly.
-
I would take a structured and transparent approach that combines effective communication, technical explanation, and potential improvements. Here’s how I would respond -> 1. Acknowledge the Feedback - I would start by thanking the users for their feedback 2. Simplify the Explanation - I'd provide a high-level, non-technical explanation of the algorithm. 3. Show Practical Benefits - I would highlight the practical outcomes the complexity achieves. 4. Offer Transparency - If appropriate, I would offer a more detailed technical explanation 5. Provide Examples or Evidence - Where relevant, I could demonstrate the algorithm's value 6. Feedback Loop - Encourage further discussion and feedback to ensure the algorithm meets the requirements.
-
An example I have seen, taught me a way of accepting various perspectives by assuming you can be wrong sometimes giving a space to the customer to express/project their thoughts and doubts. This can end up in two situations. First, they are correct about their concerns so it is an opportunity for you to improve what you missed instead of defending your approach. Second, they are wrong about it so it's an opportunity to reflect the key values that makes your approach stands out by emphasizing with their concerns this will lead more trust in your later discussions by earning it instead of forcing it.
-
To address criticism about the complexity of your algorithm, start by simplifying the explanation using clear language, analogies, or visual aids. Highlight the practical benefits such as improved performance or accuracy that justify the complexity. Share use cases where the algorithm has solved problems that simpler solutions couldn’t. Provide resources like tutorials or documentation to help users overcome the learning curve. Finally, engage with users to gather feedback and make adjustments, ensuring they feel supported and see the value in the algorithm. This approach helps bridge understanding and demonstrates the algorithm’s importance.
-
First understand whether the algorithm's complexity is real or if users are struggling due to limited technical understanding. Conduct a thorough review to identify potential simplifications or optimizations without compromising functionality if the algo is actually complex. Actively listen to user feedback to pinpoint specific pain points. Simplify the user interface or outputs to make interactions more intuitive to enhance user understanding of the algo if there is mis understandings about algo. Provide clear, accessible documentation and tutorials that demystify how the algorithm works. Continuously iterate based on user input to improve usability and satisfaction.
-
Years ago I was contracted by Unilever (then Hindustan Lever) with the job of developing their finished goods warehouse administration software. My end users were the warehouse workers, barely educated and unable to read/write in English, let alone interact with a computer. Wasn't easy doing a requirement study as they paused to shoot uneasy glances at me as they went about their jobs. Understanding their concerns, I turned the apathy into affection by developing a grid, colour and in-your-face product logos based system with simple point-and-shoot operations that could be operated by anyone who could recognise logos and numbers. They loved it! End users care two hoots about algorithms. Keep it simple, and you win.
-
End users and algorithm complexity live in separate universes - if they interact, the process, system or flow are messed up. Criticism by end users could be related to latency or accuracy, which translate to system requirements, and need to be addressed by the engineering team. Algorithm and system complexity are internal matters that external users aren't expected to be aware of.
-
"Criticize, but offer solutions." If the End-user suggests another solution that is more effective than the current one, I see no problem in thanking them and using that solution. If the solution is less effective, we should try to explain to the End-user why one solution is more effective than another, using simple language and taking into account the fact that the End-user may not be very technically versed in the specifics of the topic.
-
If end-uses have any idea what the algorithm is or, esp., its complexity something is terribly wrong. This is true even at the API level, let alone product level.
-
This is one of the most painful things for me that forget about end-users, even developers or the team-leads do not question an algorithm (and they can't). Due to advancements in technology and data processing and even hard-drive access speeds of new hardware, any shitty algorithm just works. Which causes people like us who are mindful about algorithms are no longer required. Because we're costly to them.
-
In my humble opinion: This question seems strange as far as know the users don't care about algorithms and their complexity, they care about the product and if it easy to use, so if the users are complaining about the algorithm they are being exposed to too much information.
Rate this article
More relevant reading
-
AlgorithmsYou're juggling multiple algorithm failures. How do you decide which one to debug first?
-
Data StructuresWhat are some common pitfalls or misconceptions about topological sort?
-
AlgorithmsWhat is the fastest way to find the kth largest element in an array?
-
AlgorithmsHow can you find the best approximation ratio?