Books, boards, sets:
It is the program of choice for anyone who loves the game and wants to know more about it.
€299.90 €249.90
Former World Champion Vladimir Kramnik discovered a unique way to combat the Nimzo-Indian through an alternative move order: 1.Nf3 Nf6 2.c4 e6 3.Nc3 Bb4 4.g3/Qb3
This approach is perfect for players who thrive on deep planning and subtle tactics, especially when facing aggressive or impatient opponents.
The Sicilian Paulsen Powerbase 2024 is a database and contains a total of 8020 games, 754 of which are annotated.
Most of the material on which the Sicilian Paulsen Powerbook 2024 is based comes from the engine room: 439,000 games. An impressive number to which 51,000 games from correspondence chess and the Mega were added.
Looking for a realistic way to play for a win with Black against 1.e4 without taking unnecessary risks? The Taimanov Sicilian is a reliable system, and hence one of the best options out there!
€49.90
Have you always wanted to play the Sicilian as Black, but been discouraged by the abundance of options for White? Here is the solution to becoming a lifelong successful Sicilian player!
€39.90
€69.90
We use cookies and comparable technologies to provide certain functions, to improve the user experience and to offer interest-oriented content. Depending on their intended use, cookies may be used in addition to technically required cookies, analysis cookies and marketing cookies. You can decide which cookies to use by selecting the appropriate options below. Please note that your selection may affect the functionality of the service. Further information can be found in our privacy policy .
Natural problem solvers possess a unique set of traits that make them highly effective at tackling challenges. From resilience to effective communication, these individuals exhibit qualities that set them apart in problem-solving endeavors. Here’s 15 remarkable traits that define natural problem solvers and help them excel in finding solutions to complex issues.
Natural problem solvers are resilient people . They bounce back from setbacks with determination and a positive attitude, seeing challenges as opportunities to learn and grow. This resilience not only helps them but also inspires those around them to stay persistent and optimistic in the face of difficulties.
These individuals excel at clear communication. They express their ideas in a way that everyone can understand and actively listen to others, making sure everyone’s voice is heard. Their open and productive communication style fosters collaboration and a free flow of ideas within their problem-solving teams.
Sweetn is a new research-based startup that shows you how to call love into your life with the power of your mind. Take our quiz, and try our tools —they can transform your energy and your love life in a few weeks. Just click here .
Patience is their virtue. They tackle complex problems step by step, maintaining a calm and composed demeanor even in tough situations. They work well with others, allowing colleagues to share their thoughts without pressure. Their patience creates an environment where everyone feels comfortable contributing.
Resourcefulness is their strength. They make the most of available resources and find creative solutions when needed. They’re like problem-solving wizards, always finding a way, no matter the constraints. This resourcefulness not only helps them solve problems effectively but also encourages innovative thinking within their teams.
Empathy is a key part of their approach. They understand others’ perspectives and needs, making them great team players. They consider the human side of problems, fostering compassionate and effective solutions. Their empathy creates a collaborative and understanding problem-solving environment.
Organization is their secret weapon. They keep details, timelines, and tasks in order, ensuring a structured problem-solving process. They break down complex problems into manageable steps, making their approach efficient and effective. Their organizational skills streamline the entire problem-solving journey.
They’re not afraid to take well-thought-out risks. They carefully consider potential benefits and drawbacks, fostering a culture of innovation and experimentation. Their calculated risk-taking encourages creative thinking and exploration of new ideas within their problem-solving teams.
Humble and open to feedback, they admit when they don’t have all the answers. They seek input from others and collaborate effectively, creating a cooperative problem-solving environment. Their humility and willingness to learn from others strengthen the collective problem-solving effort.
Learning is a lifelong journey for them. They stay updated on industry trends and new approaches, enriching their problem-solving skills and staying ahead in their field. Their commitment to continuous learning ensures that they remain at the forefront of problem-solving challenges.
Natural problem solvers exhibit decisiveness in their approach. They are quick to make well-informed decisions, even in complex and uncertain situations. This trait ensures that they maintain momentum and progress steadily toward effective solutions.
Innovation is at the core of their problem-solving style. They constantly seek new approaches and technologies, thinking outside the box to solve challenges creatively. This innovative mindset often leads to groundbreaking solutions that push the boundaries of what’s possible.
Attention to detail is a hallmark of natural problem solvers. They meticulously examine every aspect of a problem, leaving no stone unturned. This keen eye for detail ensures that their solutions are comprehensive and error-free.
Confidence is a defining trait that empowers them to tackle even the most daunting challenges. They believe in their abilities and trust their judgment, inspiring confidence in those around them. This self-assuredness is a driving force behind their problem-solving success.
Proactivity is a key characteristic that sets them apart. They don’t wait for problems to escalate; instead, they take the initiative to identify and address issues before they become significant. This proactive approach ensures that they stay ahead of challenges and maintain a proactive problem-solving environment.
15 reasons why some people are happier than others, my life is a mess and there’s no room for a boyfriend in it right now, 15 signs you’re a control freak and it’s getting out of hand, why you get overwhelmed so easily (and what to do about it), 15 tiny behaviors that indicate someone is secretly holding a grudge against you, things confident introverts never waste their time on.
Universality, emotional impact, originality, sporadicity, make your occasion unforgettable .
Discover unique ideas to add a special touch to your events.
Access a collection of comforting phrases and messages crafted for challenging moments.
Your knack for problem-solving is truly remarkable! You have an exceptional ability to analyze complex situations and find efficient solutions. Your dedication and resourcefulness make you a valuable asset in any problem-solving team.
Your dedication and resourcefulness make you an invaluable problem-solver.
"Your knack for problem-solving is truly remarkable. You efficiently analyze complex situations and find solutions."
This compliment praises someone's exceptional ability to solve complex problems efficiently. It acknowledges their dedication, resourcefulness, and value on any problem-solving team.
From Today's Compliment, we believe this compliment deserves high praise for recognizing someone's exceptional problem-solving abilities in a thoughtful and uplifting way. Let's take a closer look at why it stands out.
On key metrics, we rate this compliment as follows:
Overall, the compliment scores very highly, especially for friendliness, clarity, positivity and universality. It strikes a nice balance between being original yet easy to grasp. The personalized details also add thoughtful depth.
This compliment would be perfectly suited for:
Recognizing problem-solving excellence in the workplace, such as during a performance review. It praises professional skills in a motivational way.
Acknowledging someone's creative solution to a difficult personal, household or family issue. It shows gratitude for their resourcefulness.
Praising problem-solving in both formal ceremonies and casual conversations. Its warm tone applies well to various settings.
Encouraging children and students by highlighting their developing ability to analyze and overcome challenges. It builds confidence.
The compliment affirms strengths useful in almost any context - dedication, analysis, efficiency and creativity. It acknowledges the effort it takes to solve tricky problems, making it meaningful praise.
The affirmation, "Your dedication and resourcefulness make you an invaluable problem-solver," is uplifting and empowering. It affirms someone's problem-solving gifts in a heartfelt way.
Similarly, the quote is inspiring: "Your knack for problem-solving is truly remarkable. You efficiently analyze complex situations and find solutions." It captures the essence of the praise in a concise, positive way.
Both could be incorporated into a daily gratitude or affirmation practice, reminding oneself or others of their problem-solving talents. They make impactful motivational statements.
In summary, this compliment beautifully acknowledges someone's exceptional ability to find solutions amidst complexity. It highlights their dedication, efficiency, creativity and other strengths that make them a gifted problem-solver.
The warm, thoughtful wording makes it clear this isn't generic praise - it comes from a place of true appreciation. We rate this compliment highly for its balance of heartfelt sentiment and universal applicability. It is sure to uplift anyone's day and reaffirm their problem-solving gifts.
How can i improve my problem-solving skills.
Improving problem-solving skills begins with embracing challenges as opportunities to grow. Practice critical thinking, break down complex issues into manageable parts, and seek diverse perspectives. Engaging in puzzles, brain games, and learning new subjects also sharpens your analytical skills, making you a more adept problem-solver.
Problem-solving is crucial in the workplace because it enables individuals and teams to tackle challenges efficiently, driving innovation and solutions. It enhances decision-making quality, supports conflict resolution, and fosters a proactive work environment. These skills are invaluable for adapting to changes and overcoming obstacles in professional settings.
While some individuals may naturally exhibit a knack for problem-solving, these skills can certainly be developed and honed over time through experience, education, and practice. Problem-solving involves a combination of creativity, analytical thinking, and perseverance, all of which can be cultivated.
In personal life, problem-solving skills can lead to better decision-making, improved relationships, and effective management of day-to-day challenges. They help in navigating complex social situations, planning for the future, and handling emergencies with calm and efficiency, enhancing overall life satisfaction.
Effective problem-solving methods include the 5 Whys technique, to drill down to the root cause; brainstorming, to generate multiple solutions; and the IDEAL (Identify, Define, Explore, Act, Look) strategy, which provides a structured approach to tackling problems. Implementing these methods can lead to more innovative and effective solutions.
Why wait? Dive in and brighten your day—and someone else's—with just a click!
Your problem-solving skills are truly brilliant. you make even the toughest problems look easy., your passion for problem-solving in board games is truly inspiring, your passion for problem-solving makes you an invaluable asset., your passion and talent for problem-solving is truly admirable and makes you shine, see similar compliments..., your thirst for wisdom and commitment to learning inspires us all., your wisdom lights the way forward like a beacon for all., your thirst for knowledge makes you brilliant at board games., your passion for knowledge illuminates and inspires, your thirst for knowledge is truly inspiring, your creativity shines through when playing board games., we're amazed by your intellect and skill at board games, missing something.
Why don't you check our latest posts?
Discover how AI is not the end of creativity but a tool to enhance human ingenuity, with technology.
Explore the ethical considerations of using AI Generators and how technology can enhance connections.
Explore the ethical considerations of using AI for flirting, find the balance between automation and human.
Explore the art of apologizing with elegance by using carefully selected quotes to convey your sentiments.
By Christina Colclough
Last updated: January 12, 2024
When you’re in a job interview, you can almost bet on being asked about your problem-solving experiences. This skill is always high on employers’ wish lists. Walk in with a few solid examples up your sleeve and talk about them with confidence – that’s what grabs their attention.
In this post, I’ll guide you through picking the right problem-solving in workplace examples and articulating them in a way that will make you stand out.
What is problem solving.
At its core, this skill is all about spotting issues and then working out the smartest ways to sort them out. In the workplace, this skill keeps things running smoothly because challenges always pop up.
In any job, you’re bound to bump into a range of problems. It could be meeting a tight deadline, handling customer complaints, or resolving misunderstandings among team members. Each of these difficult situations needs a cool head and a clear strategy.
Dealing with these issues well is crucial because it keeps the wheels turning. Effective problem-solving means fewer hiccups in projects, better teamwork, and happier customers. It’s like oiling the cogs of a machine.
That is why interviewers like myself often drill down into the candidates’ problem-solving abilities with questions like “ Tell me about a time you solved a problem ” or “ Can you describe a situation where you had to overcome a significant challenge? “
We want to know if you’re the kind of person who faces challenges head-on or if you tend to sweep them under the rug. We’re looking for someone who not only spots issues but also comes up with smart solutions and puts them into action. It’s all about ensuring that, when the going gets tough, you’ve got the skills to keep things on track.
When you’re in an interview and asked about problem-solving, it’s a golden opportunity to show your skills. In my experience, a great approach is to use the STAR technique. This strategy helps structure your answer in a clear and compelling way.
Let’s break down what each part of STAR stands for:
In this step, your goal is to give the interviewer a snapshot of your scenario.
Let’s say you had to deal with a significant drop in team morale and productivity. At the beginning of your response, you want to set the context for your story. This should include where you were working, your role, and the initial problem.
The key here is to be concise but provide enough detail to paint a clear picture like this:
“In my previous role as a team leader, I noticed a sudden drop in team morale and productivity. This was unusual for our normally energetic and efficient team.”
Here are some other common situations you can mention in your answer:
Don’t worry if you just graduated or have little work experience. Think about examples from school group projects, internships, or part-time jobs like these:
Clarify the problem you had to tackle. What was expected of you? What complex challenge did you need to address? Here, you’re setting up the specific problem that you were tasked with solving.
Remember, the focus is on the problem, not yet on your actions. Using the above example, here is what you can talk about:
“My task was to identify the causes of this decline and implement a strategy to boost morale and productivity. I needed to make sure our team could return to its usual high-performance level.”
Describe the steps you took to solve the problem. Think about how you analyzed the situation, decided on a course of action, and implemented it. It should show your critical thinking and analytical skills.
“To tackle this, I first conducted one-on-one meetings with team members to understand their concerns and gather feedback. Based on these insights, I realized that a recent change in company policy was causing stress.
I advocated for my team’s concerns with upper management and worked with them to modify the policy. At the same time, I initiated team-building activities and regular check-ins to foster a more supportive and open team environment.”
Finally, talk about the outcomes of your actions. Employers want to know your problem-solving drives real improvements. Also, highlight any positive feedback from your boss or team members, and if possible, quantify the success.
“As a result of these actions, we saw a significant improvement in team morale within a month. Productivity levels bounced back, and the team’s overall satisfaction with their work environment increased.
This experience not only taught me valuable lessons about team dynamics but also reinforced the importance of proactive communication and advocacy for team needs.”
Here are some other outcomes to highlight in your answer:
Here is a sample you can use when explaining how you improved team collaboration on a project:
“Our team was tasked with developing a new financial management web application. However, we hit a snag and missed two crucial milestones. The core issue was a breakdown in communication – team members were not proactively sharing updates on delays or challenges they encountered.
To address this, I instituted daily 15-minute standup meetings. These sessions provided a platform for everyone to voice concerns and update the team on their progress. We also started tracking tasks in a shared spreadsheet so everyone had more visibility into the project.
Within two weeks, collaboration and communication improved significantly. We renegotiated the timeline with stakeholders, and the project team delivered the web app only 1 week after the original deadline.
The processes we put in place didn’t just help us with this project but also significantly boosted our efficiency on later projects.”
This is how you can describe a time you turned around a marketing campaign:
“In my last marketing role, I was responsible for a campaign promoting a new line of eco-friendly skincare products. Midway through, we found that our engagement metrics were dismal, particularly with our targeted demographic of people aged 20-30.
Upon reviewing our approach, I realized our messaging was too generic and failed to connect with this specific group’s interests and values. I spearheaded a strategy shift, focusing on the environmental benefits and ethical sourcing, aspects we found resonated more with a slightly older demographic, females aged 25-35, who were more invested in sustainable living.
We also pivoted our advertising to platforms popular with this demographic, like eco-conscious lifestyle blogs and organic beauty forums. This shift led to a 40% increase in engagement and contributed greatly to the success of our product launch, exceeding our initial sales targets.”
Here’s an example to illustrate how you tackled inefficiencies in operational processes:
“As an operations manager at a mid-sized electronics manufacturer, I noticed our product delivery was consistently delayed.
I identified the root cause as a bottleneck in our supply chain. In particular, a stage where manual data entry from manufacturing to logistics was causing significant hold-ups.
Realizing the need for efficiency, I proposed automating this stage. We collaborated with the IT department and implemented a barcode scanning system that integrated manufacturing output with our logistics database.
This change cut down the processing time by 30%, drastically improving our on-time delivery rate. It not only led to an upswing in customer satisfaction but also streamlined our inventory management, reducing both operational delays and costs.”
This example demonstrates a solution for inter-departmental communication issues:
“In my previous role, I observed recurring conflicts between the sales and product development teams. These were mainly due to misunderstandings and a lack of clear communication about product updates. This led to promises being made to customers that the product team couldn’t fulfill.
To bridge this gap, I proposed and facilitated a series of joint workshops between the two teams. These sessions focused on aligning the teams’ understanding of product capabilities and timelines. Additionally, I initiated a bi-weekly newsletter and a shared digital workspace where both teams could update each other on developments and feedback.
The result was a significant improvement in inter-team collaboration. The sales team was better informed about product limitations and timelines, leading to more realistic commitments to customers.
Meanwhile, the product team received valuable market feedback directly from the sales team. It helped them tailor developments to customer needs. This collaborative approach not only reduced conflicts but also led to better product-market alignment.”
This highlights an approach to customer service challenges:
“In my role as a customer service manager, I was faced with increasing customer complaints regarding delayed response times. This issue was affecting customer satisfaction and had the potential to harm our company’s reputation.
I started by analyzing our customer service processes and discovered that our response system was outdated and inefficient. To rectify this, I led the implementation of a new customer relationship management (CRM) system that streamlined our customer service workflow.
This system included automated responses for common queries and a more efficient ticketing process for complex issues. I also organized a series of training sessions for the customer service team to ensure they were well-versed in using the new system and could provide more effective solutions to customers.
Implementing these changes led to a huge reduction in response time and a significant drop in customer complaints. Our team also received positive feedback for improved service quality, which was reflected in our customer satisfaction surveys.”
Problem-solving is a career-long skill, not just needed for some interviews. Whether you’re a newbie or a seasoned pro, honing these skills can make a big difference in how you handle challenges at work.
Jumping to conclusions can be a trap. When a problem arises, take a step back and get a clear picture of what’s actually going on. This means holding off on assumptions until you’ve gathered all the facts.
Sometimes, the real issue isn’t what it seems at first glance. Doing a bit of digging to understand the root cause can lead you to a more effective solution.
History often repeats itself, and this is true for workplace problems, too. When faced with a challenge, look into whether similar issues have popped up before.
How were they handled? What worked and what didn’t? Learning from past experiences, whether your own or someone else’s, can be a goldmine of insights.
When thinking about potential solutions, avoid locking yourself into the first idea that comes to mind. Brainstorming can open up a world of possibilities and creative solutions. Don’t be afraid to think outside the box. Sometimes, the most unconventional ideas turn out to be the best solutions.
Even the best-laid plans can go awry. That’s why having a contingency plan is a must.
Think about what could go wrong and how to contain any further issues. This doesn’t mean you’re expecting the worst, but rather, you’re prepared to handle it efficiently if it does happen.
Solving problems isn’t a solo mission. Make decisions as a team and keep everyone in the loop.
Clear communication is a valuable soft skill that helps everyone understand the plan and their role in it. Plus, this is how you can bring new perspectives and ideas to the table and make your solution even stronger.
Set a timeframe for your action plan, but be flexible. If something isn’t working, be ready to pivot and try a different approach. Sticking rigidly to a plan that’s not delivering results won’t do anyone any favors.
See more interview tips: How To Write A Follow-Up Email After Interview 3 Examples For Thank-You Email After Interview 8 Examples of Challenges You Have Overcome At Work 6 sample answers of accomplishments at work 5 Examples of Problem-Solving in The Workplace How To Ask for Feedback After Job Rejection How to Explain The Reason for Leaving a Job on Applications For Interview Question: What Do You Like To Do For Fun? What Are You Most Passionate About? What Are You Looking For In Your Next Job? Why Are You Interested In This Position? What Accomplishments Are You Most Proud Of?
Are problem-solving skills that important.
Absolutely. No matter where you work, there’s always a curveball now and then. Having the knack to quickly think on your feet, break down a problem, and come up with a solution is a game-changer.
Storytelling is your best bet here. The trick is to paint a picture where you’re the person who spots the problem and then creatively solves it, not just someone who follows instructions.
Pick examples that show you’re not just a one-trick pony. What I find impressive is when someone can demonstrate their thought process – how they analyzed the issue, got creative with solutions, and then put their plan into action.
They’re the kind of people who don’t rush to conclusions. Instead, they take their time to understand the problem, explore different angles, and weigh their options.
Adaptability is also key – they can roll with the punches and adjust their plans as needed. And, of course, they’re great at getting their point across, ensuring everyone’s on the same page.
From what I’ve seen, the big hurdles are often not having enough info, sticking too rigidly to old mindsets, and letting biases lead the way. It’s easy to get tunnel vision, especially if you’re used to doing things a certain way.
Also, not bringing different perspectives to the table can really limit your options.
As you step into the next interview, remember two key things: confidence and clarity. Trust in your abilities and the experiences you bring to the table. Learn how the above problem-solving examples can paint a vivid picture of your challenge and how you tackled it. Most importantly, let those stories reflect your skills and how you can be an asset to any team.
Christina J. Colclough
Dr Christina J. Colclough is an expert on The Future World of Work and the politics of digital technology advocating globally for the importance of the workers’ voice. She has extensive regional and global labour movement experience, is a sought-after keynote speaker, coach, and strategist advising progressive governments and worker organisations.
Top 15 Examples Of Goals For Work & Career Development
20+ Work-From-Home Jobs No Experience
20 High-Paying Creative Jobs To Build Up Your Career
Top 15+ Blue-Collar Jobs That Pay Well
20 High-Paying Jobs for College Students
25+ High-Paying Part-Time Jobs
Throughout my career, I have heard people say things like “He has a knack for fixing difficult bugs,” or “She has a knack for getting Ruby to work with OpenSSH.” The definition of “knack” according to the Oxford English Dictionary is “an acquired or natural skill at performing a task.” What we are really talking about here is the skill of “problem solving.” I tend to believe that in our industry it’s almost always an “acquired” skill. If you agree with this, then how and when was it acquired? Why are some of us exponentially better than others at problem solving? How can we become better problem solvers?
I believe what makes a great problem solver boils down to five key capabilities or skills.
“ Being able to isolate an issue, by breaking it down, is key. ”
Becoming a great problem solver is a life’s work for me – I am always looking for ways to improve my problem-solving skills! I hope my ideas here have helped you on your journey to becoming a better problem solver. If you have other ideas of ways to improve, please drop me a comment!
A Decade of Kubernetes: Tell us how K8s has impacted your dev journey (and enter for a chance to win $$).
Database Systems: In 2024, the focus around databases is on their ability to scale and perform in modern data architectures. See why.
Data Pipeline Essentials: Dive into the fundamentals of data pipelines and the problems they solve for modern enterprises.
Natural Language Processing: Learn all of the cutting-edge NLP techniques! * Affiliate
Join the DZone community and get the full member experience.
Throughout my career, I have heard people say things like “He has a knack for fixing difficult bugs,” or “She has a knack for getting Ruby to work with OpenSSH.” The definition of “knack” according to the Oxford English Dictionary is “an acquired or natural skill at performing a task.”
What we are really talking about here is the skill of “problem solving.” I tend to believe that in our industry it’s almost always an “acquired” skill. If you agree with this, then how and when was it acquired? Why are some of us exponentially better than others at problem solving? How can we become better problem solvers?
I believe what makes a great problem solver boils down to five key capabilities or skills.
“ Being able to isolate an issue, by breaking it down, is key. ”
Becoming a great problem solver is a life’s work for me – I am always looking for ways to improve my problem-solving skills! I hope my ideas here have helped you on your journey to becoming a better problem solver. If you have other ideas of ways to improve, please drop me a comment!
Published at DZone with permission of Joel Nylund . See the original article here.
Opinions expressed by DZone contributors are their own.
CONTRIBUTE ON DZONE
Let's be friends:
You may be missing out on a 66.5% salary hike*, nick camilleri, how many years of coding experience do you have, free course on 'sorting algorithms' by omkar deshpande (stanford phd, head of curriculum, ik).
Last updated by Swaminathan Iyer on Apr 01, 2024 at 01:09 PM | Reading time: 13 minutes
Life in the 21st century is all about efficiency and development. The unending quench of discovering the unknown, materializing one dream after another, has helped push the limits through the sky. But have you ever thought what the key to all of these astronomical successes is?
It is the zeal to solve a problem with the resources available to generate the best possible results.
What are problem-solving skills , how do problem-solving skills help or act as your pillars of success, how do employers assess your problem-solving skills , steps to execute problem-solving skills, skills to hone for an apt solution-finder, examples of problem-solving techniques.
Dos and Don'ts in interviews
How to highlight problem-solving skills .
Problem-solving is hunting; it is a savage pleasure, and we are born to it." –Thomas Harris .
The truth is, problem-solving skills are acquirable for some people while others adapt to it like fish in the water. Working in IT, web development, coding, machine learning, and the likes demand the ability to make decisions at a moment's notice.
So, do you want to back off when the time comes or take it up as a challenge?
Brush up your problem-solving skills or better, enhance them, and make them your forte by reading this article. No technical interview preparation guide is complete without tips to improve such problem-solving skills.
Also read: Why do FAANG companies test for problem-solving skills in their interviews.
Larry and his team suddenly face a major crisis. Not a single developer in his team who is good with String is coming to the office, but there is an urgent client requirement. Larry asks his team if anybody is confident enough to pull it through, and surprisingly, he sees one solitary hand of Jim in the mix. But it is a 4-men job, at least. Realizing that there is no way out other than working with another team(s), he wastes no time. He sends out emails to other teams asking for at least two more developers, counting himself and Jim. 4 more fellow coders came to the rescue and delivered the project before the deadline!
Problem-solving skills enable you to observe the situation and determine the contributing factors of the issue. Identifying the root cause and the ability to take necessary steps with available resources are integral in finessing your problem-solving ability.
All technical interview preparation courses , therefore, cover this crucial aspect.
Employers seek problem-solving skills in their employees . And why not?
Who wouldn't want to have an efficient employee like Larry? The knack of not backing down from a challenge is the perfect catalyst for business expansion.
Problem-solving skills help you attain insight into the source of the problem and figuring out an ideal solution. However, several skills and their correct implementation are essential, which are listed below.
Employers today prioritize hiring people with soft skills like problem-solving abilities to maximize business output even when the going gets tough. Your problem-solving ability is judged based on:
"We cannot solve a problem with the same level of thinking that created them." – Albert Einstein
James was getting an error code during the execution of specific UI updates. He started analyzing the code and rechecking the repository for any possible mistake. To his delight, his hunch turned out to be accurate. He immediately made the necessary changes, and the updates were successfully executed.
Analysis of contributing factors and its repercussions in the ebb and flow of the task is a preliminary attribute of an able problem-solver. To acquire perfection in analysis and problem-solving skills, you must ensure a thorough:
Working at a software development firm, Donald is perturbed by the lack of advancement in the deep learning project. Lack of idea and innovation is leading to nowhere. He decided that enough is enough. He asked for a group session to brainstorm in the hope of generating some leads. The session was a huge success, and Donald was finally able to catch a breather.
It is not an unknown fact that 'we' is always more productive than 'I' under any circumstance.
Utilizing the versatility of your available resources with the help of various sessions can work miracles. Such sessions can be for:
This is more up the alley for managers and team leads. To become adept at evaluating solutions, one must gain prolonged experience in corporate decision-making. The evaluation process needs to consider potential costs, available resources, and possible hurdles of project completion.
Remember Donald?
Yes, he is a team lead, and therefore, he had the authority to initiate a brainstorming session with multiple teams to bring in new ideas.
The secret to evaluating solutions?
Choosing the right course of action is the preliminary step to solve the problems. The success of the execution is streamlined with the help of quality benchmarks to indicate its effectiveness.
"A problem is a chance for you to do the best!" – Duke Ellington .
Knowing the right people to do it for you is essential for successful implementation. It is also crucial that you are accustomed to your organization's operating procedures before you formulate the best possible strategy.
Skills you need are:
An ideal way to detect whether a solution is effective or not is to check if the problem still exists after applying the solution. Benchmarks need to be set as per organizational standards to help them assess the situation and if any further changes are required in the interim.
"A problem well stated is a problem half solved." –John Dewey
Sam has come to an interview for a team-lead profile. The recruiter asks a situation-based problem in regards to machine learning software. Though tricky, Sam knew the exact way around for the problem and answered it precisely to the point. The recruiter is delighted and hires Sam for the position.
Tom has been applying frantically for a job since he moved to Arizona but seemed unable to find just the right one. When he sees his attempts are futile, he decides to add some of his previous company's achievements, thinking it might help. Oh, boy, did it help! Tom writes about when he was asked to handle a team of 12 single-handedly while his manager suddenly went on a sabbatical. Tom had no prior experience of leading a team but appeared to come out of this fix with flying colors.
Megan is currently looking for a step up in her career. She carefully drafts a cover letter that entails her achievements with clarity. The cover letter explained her contributions in reviving team spirit in the office after her predecessor, with his poor man-management, had successfully built a wall of distrust among the employees.
If you are adequately seasoned with problem-solving skills with dedication and practice, you're already almost there. Proper interview preparation tips can further help you in this regard.
Attend our free webinar on how to nail your next technical interview.
The role of a technical program manager, arraylist vs. linkedlist in java: choosing the right data structure, extend vs. append in python: list operations explained, nailing amazon's behavioral interview questions, git flow vs. github flow: a comparative guide to workflow strategies, top python scripting interview questions and answers you should practice, complex sql interview questions for interview preparation, zoox software engineer interview questions to crack your tech interview, rubrik interview questions for software engineers, top advanced sql interview questions and answers, twilio interview questions, ready to enroll, next webinar starts in.
People that are viewed as good problem solvers are valued. We know they can help. They just seem to have a knack for figuring things out. In truth, we all have different abilities and skills, and some people ARE better at getting to the crux of the problem. But, how do they do it? Is problem solving a learned or innate skill?
There are pitfalls or mistakes that many people make when attacking problems. If we can recognize and avoid these mistakes and follow a clear process approach, all of us can become better problem solvers. Using the terminology of problem solving, we can deploy strategies to avoid these mistakes.
Pitfall #1 – We all think we know what the problem is. Many times, a problem solving team is assembled and they immediately discuss possible causes or solutions. Team members may have different information or a different understanding of the problem. Discussions are confusing, disjointed and inefficient. We do not have a common purpose.
Strategy #1 – Create a clear problem statement devoid of an unnecessary or distracting description. A clear problem statement contains an OBJECT (the thing which has the problem) and the DEFECT (undesirable condition or defect). The famous inventor, Charles Kettering, stated, “A problem well stated is a problem half solved.” Once we have this statement, we can start asking “why” questions to dig deeper into the causes, and all team members have a common focus and understanding.
Pitfall #2 – We ask, “How could this have happened?” The word “could” leads to conjecture and opinion. We rely on experts and the history of what we “think” we know without collecting the facts around the specific event in question.
Strategy #2 – Ask, “Why DID this happen?” Gather the evidence and collect facts. Think of the event as a crime scene and you are the investigator. Focus your actions on extracting any possible evidence starting with the most minute or microscopic detail so that nothing is overlooked. Dorian Shainin, a famed industrial problem solver and college professor, encouraged problem solvers to “talk to the parts.” The evidence or clues tell a story, which will lead to identification of the causes.
Create a structure from a microscopic to macroscopic view. Assemble your facts against this structure looking for signals or contrast. Where contrast or differences are observed, something is causing that difference. Continuing to ask WHY the contrast exists can lead you to the fundamental or root cause(s).
Pitfall #3 – We try to solve multiple problems simultaneously. Asking WHY questions and gathering evidence to answer them with confidence is essential. This approach is called the “5 Why” method. A why question is asked and is answered with a BECAUSE statement. We can ask another why for the new statement and so on. The number five implies that if we ask why five times, we will probably arrive at a fundamental or root level which, if addressed effectively, will eradicate the problem. It sounds very simple, but teams can become confused because they don’t follow a clear line of questions. Since the BECAUSE answer depends on the WHY question, teams can follow different paths of logic and arrive at different conclusions.
Strategy #3 – Separate the problem into three lines of questions. Once the team has created a problem statement, and collected the initial evidence about the problem, they should decide what questions make sense for the given problem. The initial questions originate from:
As an example, we may have a customer that received a part from one of our processes. This process could be highly capable with very few defects ever occurring. It might be very costly to improve this process further to increase the capability, and it would not make good business or economic sense for us. Of course, the customer doesn’t want any defects, and shouldn’t have to pay for them. Therefore, it makes sense that we should focus on why we did not detect and contain the defect, and not expend any resources on why the defect occurred. We might also wish to review our quality planning or prevention (predict and prevent) to determine if we could improve our ability to avoid future detection problems.
Pitfall #4 – We spend a lot of time and resources and dig too deep. Not all problems are created equal! Some are big and some are small. Some are simple and some are complex. We may not need 5 why questions to arrive at the root. We might need seven or eight! We might need three. The problem and its severity should dictate our level of response. We want to use facts to explain the BECAUSE statement, and we can check the logic chain of our statements by starting with the final statement and adding the word THEREFORE after it, to lead us to the previous BECAUSE statement until we reach the original problem statement. But where do we stop? We don’t need to “cure world hunger” on every problem. We don’t have time to dig that deeply.
Strategy #4 – Decide how deep to question once you select which lines (Strategy #3) should be addressed. The WHY questions take us into deeper levels of complexity. We can define these levels as direct, process, and systemic, moving from basic to complex. Once we select a line of questioning (occurrence, detection or prevention), we will certainly need to answer a WHY question to identify a cause. We will typically need to focus on the process involved and identify what went wrong with perhaps a few more WHY’s. BUT, we may NOT need to delve into the system that created the process.
For example, we may have created a defect because a component on a machine failed to perform properly (direct cause). The component may have failed because there was no preventive maintenance performed on it (process). If we stop at this level, a reasonable corrective action would be to establish an appropriate preventive maintenance plan for this component. The systemic level question would focus on why our preventive maintenance management system failed to create an effective plan for this component. Obviously, that is a deep question and could lead to significant consumption of time and resources to address effectively. Maybe we “shouldn’t go there” for now.
It might also be helpful to think of YES/NO type questions, particularly at the process level, to help focus our WHY thinking:
Pitfall #5 – We assume we are right. We answer the why questions and identify our root causes, but we don’t perform any tests to confirm our conclusions. Did we miss something? Yes, the facts seem clear, but how do we know for sure?
Strategy #5 – Confirm the cause(s) where possible by performing trials/experiments. This is not always feasible, but should be performed whenever possible.
Pitfall #6 – Our actions are ineffective. All our best efforts to identify cause(s) can be for nothing if we don’t ensure we take appropriate, effective actions.
Strategy #6 – Align actions to specific cause(s) and verify they are effective. We may want to even take multiple actions against a specific cause, and we certainly need to test or monitor to ensure our actions work. Otherwise, we need to revisit these actions. If we’ve done a good job of confirming the cause(s), we don’t need to backtrack any further than our actions.
The following table summarizes the above discussion.
|
|
We all know what the problem is. | Create a clear problem statement. |
We ask, “How COULD this happen?” | Ask how DID or why DID this happen. |
We try to solve multiple problems simultaneously. | Separate into three lines/legs (Occurrence, Detection and Prevention). Address only those that are relevant and address them independently. |
We dig too deep. | Select the level (direct, process, systemic) aligned with the lines/legs above and the problem severity. |
We assume we are right. | Confirm the cause(s) where possible with trials/experiments. |
Our actions aren’t effective. | Align actions to cause(s) and verify effectiveness. |
Subscribe to Our Blog
Mailing address.
Find centralized, trusted content and collaborate around the technologies you use most.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Get early access and see previews of new features.
Every time I start a hard problem and if can not figure out the exact solution or can not get started, I get into this never ending discussion with myself, as below:
That problem solving/mathematics/algorithms skills are gifted (not that you can learn by practicing, by practice, you only master the kind of problems that you already have solved before)
only those who went to good schools can do it, as they learned it early.
What are your thoughts, can one achieve awesomeness in problem solving/algorithms just by hard work or you need to have that extra-gene in you?
I spent a big part of my life wondering whether talent was something you developed or something you were born with. Then it occurred to me that the answer was irrelevant, at least if you want to achieve things yourself. Even if you have talent, it will only help you if you act as if talent only comes from practice, because you will work that much harder.
With regards to algorithms, as well as any other really difficult skill, it takes practice to get good. Whether or not you have to have some amount of talent too, I don't know. I do know for a fact, however, that people have made huge improvements in competitions like TopCoder by practicing. I myself have learned a lot from that.
If you set up a systematic training program, you will be way ahead of the pack, even if it is not perfect. I have written a few hundred programs on TopCoder by now and it has affected my thinking in a profound way. I have learned a lot of things that could only ever be learned by doing them wrong and then fixing my mistake. A friend of mine has written several thousand programs on TopCoder and he is way better than I am, even though his stats were worse when he started out than mine were. That is no coincidence.
I just came across this answer at math.stackexchange. I think it is one of the best explanations of how to learn algorithms I have read, even though he writes about chess and math.
1) Don't try to solve the problem in its most general abstraction. 2) Choose the right time when your mind is working at maximum.
I got the first point as an advice from a math instructor. It works! try to do different examples and scenarios of the problem. This helps greatly in identifying the edge cases which are the hardest to understand in most problems.
My favorite time for solving this kind of problems is the dawn(4-6 AM). Have a good sleep the night before, and wakeup ready to solve the problem. Silence is your friend.
I do believe that some people have extra intelligence than others, but it is not the most important factor. It is how you utilize this intelligence to solve the problem.
I took magic lessons in a group setting when I was twelve years old. The magician's name was Joe Carota. He did a magic trick one time and I blurted out, "How did you do that?" He said something that day that has stuck with me ever since.
Joe's response, "Michael, if you really want to know how that trick is done you must figure out how you would do it yourself."
Well of course that's not what I wanted to hear but it did get my mind focused on problem solving. This was problem solving from my perspective. If my first attempt at solving the problem took seventeen steps and was really klunky, the good news was I solved the problem.
Then by looking at the solution I had developed and further looking for ways to refine that solution I would learn how to streamline the end result. Later on in my computer programming life I found out that this process was called "Stepwise Refinement".
It worked back in 1971 and it still works today.
For me, i think it's a bit talent, but much more important is experience and practice. If you know many problems and the best solutions to them, you can come up more easily with a solution to a new problem.
Example from my own past: There was some programming contest (good for training, btw) and I did not find a good solution. The winner solved the problem mainly by using a KD-Tree. To come up with this, you first of all need to know what, in this case, a KD-Tree is, and where it's useful. Today, this is clear to me and if i'd encounter a similar problem again, i'd be able to solve it really quickly.
Hardwork beats talent if talent doesn't work hard. This above statement defines what the true potential of persistence is.Any skill in this world can be developed by practice.This process is analogous to nailing a nail in the wall.It not only requires correct magnitude but also appropriate direction.
To answer the question, first we need to find the ingredients for the capability to solve an issue.
There is a so-called natural talent. This is the talent you are born with. This predetermines your potential. People born with more gray matter will tend to perform better than people with whom nature was less generous with. This means that a person having better talent has a higher probability to perform better than a person not as talented if they had the same parameters (education, personality, resistance to stress, willpower). If one observes that he or she tends to consume a great time to absorb new information until he or she is able to apply it, then the wisest decision for the person is to leave programming and prevent a life full of frustration. Naturally, one cannot expect as a beginner to be able to instantly understand the most complex phenomenon, but if a beginner is too slow to understand beginner concepts, then programming is not his or her cup of tea.
Developed talent. One has a natural talent, but that is, in itself not enough to solve problems. I have never seen newborns writing code. One has to get some education. The earlier, the better. Also, the quality of school is of high importance. We should never deny the fact that a person who did not have the chance to learn programming at a good school early, then he or she has a handicap in the race for success. However, if someone misses good schools early, then the handicap can be covered with hard work. For instance, my wife had an education in another field, but after finishing the university, she did not find proper jobs. So I started to educate her. After a month she learned how to learn and was able to solve almost any problems presented to her, but she was not yet effective. She gradually became to start learning in auto-didacting manner. After a year she was already a professional coder. She does not have a paper from a school that she can code, but she is doing a fantastic job. So, she missed early education, but was later able to neutralize the handicap. Developed talent can be described as the set of information learned and known, along with the right attitude, the scientific approach to new types of challenges.
Practice: Practice is good to increase the level of developed talent, yet, it SHOULD not be the sole source of developing talent. Along with practice, the theoretical horizons must be regularly expanded.
Working strategy: One can be extremely talented, can have a lot of knowledge. If he or she does not have a right working strategy, then he or she has a handicap. Whenever a new task is given, the right questions should be asked:
So the answer is: while it is good to have excellent education as early as possible, it is not necessary. Do not forget, that life is the best school and you can recuperate the lost opportunity later if you have talent, willpower and source of information. Practice is not only showing you the right steps to solve a problem, it also widens your horizons. For instance, if one understands number systems, then he or she will be able to understand a variety of things later, like colors in CSS, PSD, or number overflows. If one learns how to code in Java, then he or she will understand C# very quickly. So, practice is giving you knowledge about the solution to a given problem type, but also, gives new theoretical knowledge which will be useful in various areas. The core skill one has to develop is the ability to learn quickly.
There have been many examples of people having extraordinary talent with minimum success. You see such examples in sports,politics,business and also in general around you. So, I feel after a certain limit, talent is a meaningless virtue. Its mostly the hard word that rewards you with greater success. If you follow cricket, here is a link with good example. I feel same principle applies to algorithm and problem solving. An year back I use to pick up algorithmic problems to solve and used to find myself completely lost. An year invested in reading algorithmic books, solving its exercises and also practicing some more programming problems, I am confident that now I can solve most problems ( I still have a long way to go in making myself efficient in it). But the point is smart work is enough to develop this knack of solving problems.
Talent is cheap and useless without hardwork. Talent can only take you to some extent, but with hardwork and practice anybody can reach great heights - Josh Waitzkin, 8-time National Chess Champion, a 13-Time National and 2-time World Champion He himself says this in his voice over in Chessmaster Grandmaster Edition
The recipe for cross-functional collaboration in drug development. (The story of Justin To, chief operating officer, skeletal dysplasias and gene therapy, for Bridge Bio and a 2023 Emerging Pharma Leader.)
Justin To, Chief Operating Officer, Skeletal Dysplasias and Gene Therapy, BridgeBio
When asked about his hobbies outside of work, Justin To excitedly discusses his love for cooking. His skills have progressed since he first took up breadmaking during the pandemic. Now, he makes his own pasta and pizza from scratch. Cooking appeals to him because it’s very scientific—he finds the kitchen similar to working in a lab. To says perfecting recipes is therapeutic for him.
To’s work at BridgeBio is focused on skeletal dysplasia and gene therapies. Now chief operating officer of the two programs, he was one of the biotech’s first employees, although he says he initially passed on the offer.
“I was approached by Neil [Kumar, PhD], the founder and CEO of BridgeBio, and essentially would have been its second or third employee,” says To. “I made the not-so-wise decision to turn it down, and I joined a different company. Upon reflection, I realized I had more of a passion for therapeutics than working on the data and software side of things.” BridgeBio still had an open position for To, and he joined the then-startup in 2017.
Today, To is valued as a cross-functional leader at the company, helping to create connections across different functions, including regulatory, patient advocacy, and those in the labs. He says that his role is patient- and partner-centered and that he tries to incorporate both voices into decisions related to drug development.
“No two days are the same, and we as a company are dealing with very complex issues where there is effectively no correct answer,” says To. “This requires a lot of critical thinking and cross-functional team input to get to the best solution for patients. That’s satisfying because you’re doing things that are essentially uncharted territory.”
To is also proud of how BridgeBio avoids having bureaucracy get in the way of good ideas. Rather than holding frequent governance meetings that he says are more common at larger pharma companies, decisions are made by individuals closest to the science and patients in need, which empowers the people working on a problem to be involved in the solution. This, To believes, allows good ideas to float to the surface, regardless of one’s title, seniority, or experience.
This same attitude can be seen in To’s approach to leadership. “A leader is interested in other people’s experiences and languages,” he says. “What is the language of someone that works in clinical operations? For someone who works cross-functionally, it’s imperative to understand what their roles are like, what objectives they have, and how they see the world. These things determine how they are coming to the table to solve problems.”
To also believes that empathy is critical to being a good leader. It’s important for him to be able to put himself in others’ shoes to truly understand why something is an issue. This also makes it easier for him to listen to people. In To’s experience, people often already have a solution to a problem, they just need someone to listen to them.
To’s career has taught him to be ready to adapt to changes, and the past few years have been a perfect example. As an early employee at BridgeBio, To remembers the days when it was located in a small house in Palo Alto, CA. For him, part of what made the company special was that everyone was constantly running into each other and brainstorming solutions in informal problem-solving sessions.
“With the pandemic, things have changed,” says To. “When you try to do giant Zoom meetings, it makes problem-solving more difficult.” To and his team have found that mixing digital, such as quick, focused check-ins for smaller groups, with larger in-person meetings and strategy brainstorms helps them maintain their collaborative spirit and cross-functional decision-making.
If his career has taught him anything, To says that it’s this: drug development is a long time-scale process. It can take a decade to bring a project from the lab to FDA approval and then to market. Keeping that in mind, To says, much like perfecting his favorite recipes in the kitchen, it’s important to have a dash of patience and always keep long-term goals in mind.
Read the May 2023 issue
Big Bets, Bold Steps
Ken Keller, CEO of Daiichi Sankyo’s US business, reflects on the trials, triumphs, and lessons learned in steering the transformation of a legacy cardiovascular company into a global leader in oncology—advancing a vision for a reimagined future in cancer treatment.
Craig Tooman: Silencing the Distractions
Craig Tooman, CEO of Silence Therapeutics, on steering through the rough biotech funding and investment waters post-pandemic—and how a retooled organizational approach has the company in a stronger position today in the growing field of gene silencing through siRNA drugs.
Yvonne Greenstreet: Answering the Call
From Big Pharma to biotech—and a globe-spanning journey along the way—Yvonne Greenstreet, this year’s Healthcare Businesswomen’s Association Woman of the Year, is right where she wants to be: leading efforts to advance “bold ideas” in RNAi therapeutics into life-changing gains for patients.
Fighting for Innovation
Damien Bailly, president of established markets at Astellas, discusses why partnerships and collaborations are a critical organizational—and wider ecosystem—imperative in ensuring that patients have access to the medicines they need.
Eyeing Efficiency for All
Paige Bingham has focused her career on improving clinical research operations and logistics, and not just ways to ease the burden for investigators and teams running the trials—but also for the patients involved in them.
Central to the Mission
Harpreet Gill, vice president of real-world solutions - project management at ICON, discussesthe progress and challenges in advancing data-driven tools and approaches in decentralized clinical trials, where ongoing education remains paramount.
2 Commerce Drive Cranbury, NJ 08512
609-716-7777
If I ask you, out of the blue, what’s the role of a developer, what would you answer? Coding all day? Drinking coffee? Complaining about the management?
To me, a developer is first and foremost a problem solver, simply because solving problem is the most important (and the most difficult) part of our job. After all, even if our code is perfect, clear, performing great, a masterpiece of form and meaning, it’s useless if it doesn’t solve the problem it was meant to solve.
So, let’s dive into problem-solving today. More specifically, we’ll see in this article:
This article is mostly based on my own experience, even if I apply here some ideas I found in books and papers.
We have our plan. Now, it’s time to dive deep into the difficult, but rewarding, process of problem-solving.
“When I use a word,” Humpty Dumpty said in rather a scornful tone, “it means just what I choose it to mean — neither more nor less.” “The question is,” said Alice, “whether you can make words mean so many different things.” “The question is,” said Humpty Dumpty, “which is to be master — that’s all.” Lewis Caroll Source
Words are ambiguous; they can mean different things for each of us. So let’s first begin to agree on the definition of “problem-solving” here, to be sure we’re on the same page.
Let’s first look at the definition of the word “problem” in a dictionary:
In short, in any problem, there is some degree of uncertainty. If you’re certain of the solution, the problem is already solved. Nothing would need to be “considered, solved, or answered”.
Information is useful to reduce this uncertainty. The quantity is often not the most important, but the quality will be decisive. If I tell you that 90% of my readers are extremely intelligent, would it help you to solve a problem in your daily job? I bet it wouldn’t. It’s information nonetheless, but its usefulness for you is close to zero.
This is an extreme example, but it highlights an important point: before collecting any data, define your problem clearly; then, according to the problem, decide what data you need. Yet, many companies out there begin to collect the data and then decide what problem to solve. We’ll come back to that soon in this article.
So, to summarize, a problem is a situation with some degree of uncertainty. Sometimes, this uncertainty needs to be reduced to come up with an appropriate solution, or, at least, a decision to move forward to your specific goal.
Whenever you (or somebody else) see a problem, you should always ask yourself this simple question first: is it really a problem, and should we solve it now ?
In other words, ask yourself the following questions:
If the problem doesn’t bother anybody and solving it doesn’t create any value, why allocating effort and time to solve it?
It sounds obvious, but it’s an important point nonetheless. More often than not, I see developers heading first in solving problems without asking themselves if they should solve them at the first place.
The most common examples I can think of are useless refactoring. I saw developers refactoring parts of codebases which never change, or is rarely executed at runtime. In the mind of the developer, the code itself is the problem: refactoring is the solution.
I remember a similar case: a developer refactored part of the codebase which was basically never used. We discovered, months later, when we had more and more users using this specific part of the codebase, that the refactoring didn’t really simplify anything. To the contrary; we had to refactor the code again. The first refactoring tried to solve a problem which didn’t exists.
Of course, the developer could argue that the value created is a “cleaner” codebase, but it’s arguable, especially when the code is neither often modified nor used. The value created here is not clear, and it would have been easier if the first refactoring never happened. In this specific situation, I recommend refactoring when you actively change part of the codebase for another reason (implementing a new feature for example).
Whether a problem is worthy to be solved is subjective. It also depends on the problem: if the solution is clear and straightforward, it might be useful to solve it, if the consequences of the solution are also clearly known and the risks are low. Unfortunately, these kinds of problems, in practice, are quite rare.
I would define here two wide categories of problems: the problems with a (or multiple) clear solution (what the literature call “problem-solving”), and the problems without clear solution (it’s sometimes called “decision-making” instead of “problem-solving”).
In fact, if the problem you’re trying to solve has a clear, accepted answer, it’s very likely it has been solved already. It’s often the case for mechanical, technical problems. For example, let’s say that you need to order a list; you just have to search on the wild Internet how to do so in your programming language of choice, and you’re done! You can ask an “AI” too, or stack overflow, or whatever.
In my experience, most technical problems have one (or multiple) accepted solution. I won’t speak about these kinds of problems at length in this article, since they’re the easiest to solve.
When you’re in front of a problem which has no clear solution (even after doing some research), it’s where things get more complicated. I’d argue that most problems you’ll face, as a software developer, are of this category. Problems which are directly linked to the domain of the company you work with are often specific (because they depend on the domain), and complex.
For example, I’m working for a company providing a learning platform for medical students who want to become doctors, among other services. This context is changing because the real world is changing; medicine is no exception.
Recently, we had to create new data structures for the knowledge we provide; these data structures are directly linked to the domain (medicine) here. But what data structures to create? How can they adapt to the ever-changing environment? How to capture the data in the most meaningful way, with understandable naming for other developers?
Decisions had to be made, and when there are no clear solutions, you need to come up with a couple of hypothesizes. They won’t feel necessary like solutions , but rather decisions to take to move forward toward the desired outcome. It often ends up in compromises, especially if you’re working in a team where the members have different opinions .
Also, architectural decisions have often no clear solutions because they depend, again, on the changing context. How to be sure that an architectural decision is good today and in three months? How can we make the architecture flexible enough to adapt to the blurry future?
As developers, we deal with complex codebases, which are somewhat linked to the even more complex real world. It’s difficult to know beforehand the consequences of our decisions, as well as the benefits, the drawback, and the potential bugs we introduce.
Before jumping into the solution space however, we first need a good detour in the problem space.
Correctly stating the problem.
After determining that we indeed have some kind of problem, it’s tempting to try to find a solution directly. Be patient: it’s better to look at the problem more closely first.
If you don’t specify well the problem, you might not solve it entirely. It’s also possible that you end up solving the wrong problem, or the symptoms of a problem, that is, other minor problems created by a root problem. Often, the ideal scenario is to find the root problem, even if you don’t want to tackle it first. In any case, it’s always useful information.
For example, not long ago, our users didn’t find the content they were searching for, using our search functionality on our learning platform.
We could have directly solved the problem by asking the search team to adjust that for us, but this problem was only a symptom. It wasn’t the first time that we had to spend time and energy trying to communicate to the search team what we wanted to fix; the real root problem here was that we didn’t have any ownership of our search results.
The solution: we created a better API communicating with the search team, to be able to adjust ourselves the search results in a more flexible manner.
When looking at a problem, a good first step is to write it down. Don’t do it once; try to find different formulations for the same problem.
Writing is nice (I love it!), but other ways to represent ideas can be really useful too. You can try to draw what you understand from the problem: a drawing, a diagram, or even a picture can help you understand the problem.
From there, you can ask yourself: do you have enough information to take a decision? The answer will be mostly based on the experience of the problem solver, there is no magical formula to be sure that you can and will solve the problem.
You should also try to look at the problem from different angles, to really frame it correctly. The best way to do so is to solve problems as a team.
Trying to describe and think about a problem is a great beginning, but it’s even better if you do it as a team. You can exchange experience, opinions, and it’s easier to look at a problem from multiple angles when multiple developers are involved.
First, make sure that everybody in the team is aware of the problem. Defining it altogether is the best. If you have a doubt that somebody is not on the same page, you can re-explain it using different words. It might bring more insights and ideas to the discussion.
Don’t assume that everybody understands the problem equally. Words are powerful, but they are also ambiguous; never hesitate to ask questions (even if they seem stupid at first), and encourage the team to do the same. If your colleagues see that you’re not afraid to ask, it will give them confidence to do the same.
The ambiguity can also build overtime, after the problem was discussed. That’s why it’s really important to document the whole process, for anybody to be able to look at it again and fix the possible creeping misconceptions. Don’t try to describe everything, but try to be specific enough. It’s a delicate balance, and you’ll get better at it with experience.
If you don’t like writing, I’d recommend you to try anyway: this is a powerful skill which will be useful in many areas of your life.
Regarding the team of problem solvers, diversity is important. Diversity of opinion, experience, background, you name it. The more diverse the opinions and ideas are, the more chances you’ll have to solve the problem satisfyingly (more on that later). If the members of the team have enough respect, humility, and know how to listen to their colleagues , you’re in the perfect environment to solve problems.
As developers, we’re dealing with moving systems, because they need to reflect the ever-changing business domain of the company you’re working with. These problems are unique, and even if similar problems might have been solved in the past, they’re never the exactly same. The differences can have an impact on the solution, sometimes insignificant (allowing you to re-apply the solution found previously), sometimes important enough to change the solution entirely.
Now that we’ve defined the problem, thought about it with our team, tried to look at it from different angles, it’s time to try to find solutions, or at least to make a decision.
What is a good decision? The one which will bring you closer to your desired outcome. It sounds obvious, but there can be some ego involved in discussions, which will push us to try to be right even if it’s not the best solution in the current context. Our personal incentives can conflict with the company’s best interest; it’s always good to try to stay aware of that.
The solution should also be the simplest possible, while still moving forward to the desired outcome. It should also have an acceptable level of risk when we decide to apply the solution. In my experience, complicated solutions are the ones which come up first: don’t stop there. Take some time trying to find the best solution with your team.
For example, here’s what we do with my actual team:
What I meant by “hypothesis” here is a solution which might work; but only the implementation of the hypothesis can be considered as a solution. Before the implementation, it’s just an informed guess. Many things can go wrong during an implementation.
This process looks simple, but when you have multiple developers involved, it’s not. Again, if each member of the team have good soft skills and some experience, it can be an enjoyable and rewarding process. But you need a good team for it to work efficiently (that’s why it’s so important to ask the good questions when joining a company). It’s even better if the members of the team are used to swim in uncertainty, and take it as a challenge more than a chore.
The process described above is just an example; in practice it’s often more chaotic. For example, even when a decision is made, your brain might still continue to process the problem passively. If you find some flaws in the hypothesis you’ve committed to, congratulations! You have now a brand-new problem.
I can’t emphasize it enough: try to be as detached as possible from your ideas, opinions, and preferred hypothesizes. The goal is not for you to be right and feel good, but for your company to move in the good direction. It’s hard, but with practice it gets easier.
I also want to underline the importance of finding both benefits and drawbacks for the different hypothesizes you (and your team) came up with.
To find good solutions, we might also need to reduce the uncertainty around their possible consequences. Doing some external research can help, like gathering data around the problem and the possible hypothesizes. In the best case scenario, if you can find enough data, and if you feel confident that you can move forward with a hypothesis, that’s already a great victory.
If you don’t have enough external information to reduce the uncertainty to a level you feel comfortable with, look at your past experience. Try to find problems similar to the one your deal with in the present, and try to think about the solutions applied at the time, to see if they could also be applied in your current case. But be careful with this approach: complex problems are context-sensitive, and the context you were in the past will never be exactly the same as the present and future contexts.
For example, I recently changed the way we display search results in our system, because we had some data indicating that some users had difficulties to find what they really wanted to find. The problem: users have difficulties to find the good information; it’s a recurrent problem which might never be 100% solved. That said, thanks to the data gathered, we found an easy way to improve the situation.
The data was very clear and specific, but it’s not always the case. More often than not, your data won’t really prove anything. It might only show correlations without clear causality. It will be even more true if you begin by gathering data without defining first the problem you try to solve. You can find problems looking at some data, that’s true, but it needs care and deep understanding of what you’re doing; looking at data when you know exactly what you want to solve works better.
Using this kind of process, the hypothesis is often some sort of compromise. That’s fine; committing to a hypothesis is not the end of the process, and there will be other occasions to revisit and refine the solution.
If you don’t feel comfortable with the level of uncertainty of the problem (or the risk involved by applying your hypothesis), you need to dig more. Writing a prototype can be useful for example, if you hesitate between two or more approaches. If your prototype is convincing enough, it can also be useful to gather feedback from your users, even if the ones testing your hypothesis will always be more invested if they test a real-life functionality, instead of a prototype which might use dummy data, or be in a context which is too remote from the “real” context.
In my opinion, prototypes are not always useful for complex problems, because a prototype only test a new feature at time T, but doesn’t allow you to see if the solution stay flexible enough overtime. That’s often a big concern: how will the solution evolve?
But prototyping can still help gather information and reduce the uncertainty of the problem, even if the prototype doesn’t really give you the solution on a silver platter. It’s also great for A/B testing, when you’re in the (likely) case when you have not much information about the real needs of your users. You could ask them of course, but nothing guarantee that they know themselves what these needs are.
If you don’t find any satisfying hypothesis to your problem, you might also challenge the desired outcome. Maybe a similar, simplest hypothesis, with slightly different outcomes, could work better? If it makes things easier, faster, and less complex, it could be the best solution. Don’t hesitate to challenge your stakeholders directly on the desired outcomes.
In some cases, you might be hesitant to try to solve a problem if there is still too much uncertainty around it. In that case, it might be best to defer solving the problem altogether.
Deferring the problem means that you don’t solve it now ; you keep things as they are, until you get more information to reduce the uncertainty enough.
We had a problem in the company I worked with some time ago: we have dosages which can be discovered in articles, but users didn’t really find them, and nobody really knew why. Because of this lack of information, the problem was not tackled right away, but differed. From there, data have been collected overtime, allowing us to understand the scope of the problem better.
Don’t forget that deferring a problem is already taking a decision. It might be the less disruptive decision for the application and its codebase, but it’s s decision nonetheless, and it can have consequences. Seeing a differed problem as a decision will push you to think about the possible consequences of your inaction, and you’ll look at it as a partial “solution”, with some uncertainty and risk associated to it.
In my experience, deferring the problem works well only when you try to actively seek more data to solve it later. It can be some monitoring to see how the problem evolves, or some data taken from users’ actions. Sometimes, simply waiting can also give you important information about the nature of the problem.
What you shouldn’t do is try to forget the problem. It might come back in force to haunt your sleepless nightmares later. Avoiding a problem is not deferring it.
Here’s another example: we began recently to build some CMS tooling for medical editors, for them to write and edit content on our learning platform. We had one GraphQL API endpoint at the beginning, providing data to two different part of the application:
We knew that using one single GraphQL endpoint for these two types of users could cause some problems.
But we didn’t do anything about it, mostly because we didn’t see any real, concrete problem, at least at first. When a minor symptom, related to this unique endpoint, popped up, we spoke about it, and we still chose not to do anything. We preferred deferring the problem once more, to try to solve the real problem (one API for two different kinds of applications) later.
Finally, when we had enough symptoms and some frustration, we decided to split our graphQL API in two different endpoints. It was the best moment to do so: we had enough information to come up with a good decision, we applied it, and we stayed vigilant, to see how our applied hypothesis would evolve.
Moving fast and breaking things is not always the best solution. In some situations, waiting a bit and see how things evolve can allow you to solve your problems in a more effective way. But, as always, it depends on the problem, its context, and so on.
Reading this article, you might have wondered: how much information is enough to be comfortable enough to apply a solution? Well, again, your experience will be the best judge here. You’ll also need to consider carefully risks, benefits, and drawbacks. It doesn’t mean that you need to chicken out if you don’t have 100% certainty about a problem and some hypothesizes; being a software developer implies to have some courage and accept that mistakes will be made. It’s not an easy task, and there is no general process to follow in any possible case.
In short: use your brain. Even if you’re totally wrong, you’ll have the opportunity to fix the bad decisions you’ve made before the implementation, during the implementation, and even after it. We don’t code in stone.
You’ve gathered with your team, tried to define the problem, found multiple hypothesizes, and agreed to try one of them. Great! Problem solved.
Not so fast! We still need to apply the hypothesis, and hope that it will become a good solution to the problem. Doing so, you’ll gather more information along the way, which might change your perspective on the problem, on your hypothesizes, and can even create some baby problems on its own.
It’s where the agile methodology is useful: since we’ll never have 100% certainty regarding a problem and its possible solution, we’ll learn more about both while implementing the hypothesis. That’s why it’s so valuable to iterate on the implementation: it gives you more information to possibly adjust your code, or even the problem, or even switching hypothesizes altogether. Who knows? A solution which is not implemented is just a guess.
If the hypothesis applied is not the ones you would have personally preferred (compromising, or even giving up on your preferred solution is common in a team), only applying it will tell you if you’re right or wrong; that is, if the hypothesis can become a solution solving the problem, at least in the present context.
If you’re worried about how a specific solution will evolve overtime, it’s more complicated, because an implementation won’t give you the information you seek. Still, implementing a hypothesis can be a great source of learning (the most valuable to me is when I’m wrong, because I learn even more). If you think that your hypothesis can have better outcome at time T, you might also try to implement it and compare it. Again, it’s where prototyping is useful.
When applying the solution, you need to look at the details of the implementation, as well as the big picture, to judge if the solution you’re creating is appropriate (leading to the desired outcome). This is a difficult exercise. In general, a developer should be able to reason on different levels of abstraction, more or less at the same time. Again, if you’re aware of it, your experience will help you here, and you can also push yourself to think of all the possible risks and consequences at different levels.
If you work in a team, try to participate (at least a bit) into the implementation of the solution. It’s not good to create silos in teams (that is, only a couple of members have some information others don’t have).
You can go as far as looking at other projects, and ask yourselves these questions:
In any case, I would definitely recommend you to write a development journal. I write mine for years, and it has been valuable in many cases. I basically write in there:
It’s a great resource when you have a problem and you want to look at your past experience.
To evaluate your decisions overtime, nothing will beat a good monitoring process: logs, tests, and so on. It’s what the book Building Evolutionary Architecture call “fitness functions” for example, some monitoring allowing you to measure how healthy your architecture stays overtime. It doesn’t have to stop to the architecture; you can think about different monitoring system to see how something evolve, especially if the solution has still a lot of uncertainty regarding its benefits, drawbacks, and risks.
You can also do that retrospectively: looking at how the code complexity evolve overtime using Git for example.
We defined the problem, implemented a solution iteratively, and now the problem is gone. That’s it! We made it! Are we done now?
Decisions are sometimes not optimal, and implementing a solution successfully doesn’t mean that there wasn’t a better (simpler) one to begin with. That’s why it can be beneficial to look back and understand what went right, and what went wrong. For example, we can ask ourselves these questions:
Reflecting on past solutions is a difficult thing to do. There is no way to logically assess that the decision taken was better than others, since we didn’t implement the other hypothesizes, and we didn’t look at them overtime to appreciate their consequences. But you can still look at the implementation of the solution overtime, and write in your developer journal each time there is a bug which seems directly related to the solution. Would the bugs be the same if another solution would had been applied?
Bugs are often not an option; they will pop up, eventually. Nonetheless, it’s important to make sure that you can fix them in a reasonable amount of time, and that you don’t see them creeping back in the codebase after being solved. Some metrics, from the DevOps movement (like MTTR for example) can help here. Sometimes, bugs will show you a better, more refined solution to the original problem; after all, bugs can also give you some useful information. They are also the most direct result of the implementation of your solution.
If you want to know more about measuring complexity (which can be also used to measure complexity overtime after applying a solution), I wrote a couple of articles on the subject .
It’s time to do a little summary. What did we see in this article?
As I was writing above, most problems you’ll encounter will be complex ones, embedded into a changing environment with different moving parts. As a result, it’s difficult to train to solve problems in a vacuum; the only good training I know is solving real life problems. That’s why your experience is so important.
Experience build your intuition, which in turn increase your expertise.
You’ll never have 100% certainty that a solution will bring you the desired outcome, especially if you are in front of a complex problem with a blurry context. If you are absolutely convinced that you have the good solution without even beginning to implement it, I’d advise you to stay humber in front of the Gods of Complexity, or they will show you how little you know.
COMMENTS
This article post is part of the Effective Thinking series of IQ Matrix maps that are designed to help you successfully deal with the problems and challenges confronting your reality. Topics within this series include: • Part 1: Strategic Questions. • Part 2: Creative Thinking. • Part 3: Problem Solving. • Part 4: Critical Thinking.
In this episode of the Inside the Strategy Room podcast, McKinsey senior partner Chris Bradley interviews Rob McLean, McKinsey director emeritus, about applying a disciplined, comprehensive approach to problem solving. You can listen to the episode on Apple Podcasts, Spotify, or Google Podcasts.. Sean Brown: From McKinsey's Strategy and Corporate Finance Practice, I'm Sean Brown.
Here's how to make progress. July 28, 2024 Problems are everywhere—at work, in our communities, and even in our daily lives. Figuring out what to do can feel like trying to solve a puzzle with missing pieces, especially when things get more uncertain and complicated around us. That's why being good at problem-solving is a need-to-have skill.
Creative problem-solving primarily operates in the ideate phase of design thinking but can be applied to others. This is because design thinking is an iterative process that moves between the stages as ideas are generated and pursued. This is normal and encouraged, as innovation requires exploring multiple ideas.
Problem-solving skills are important in every career at every level. As a result, effective problem-solving may also require industry or job-specific technical skills. For example, a registered nurse will need active listening and communication skills when interacting with patients but will also need effective technical knowledge related to ...
But what sets successful professionals apart is their knack for tackling these issues head-on with a problem-solving mindset. You see, being a great problem solver is a game-changer in any work environment. It helps us navigate through obstacles, come up with creative solutions, and turn potential setbacks into opportunities for growth ...
Welcome to the ChessBase India Winter Chess Solving Championship, an initiative to promote chess composition and creative-logical thinking through chess. This introductory article serves as the curtain-raiser to the event: Satanick Mukhuty give you the rules, the details of the prizes, and the first six of the twelve problems to solve. This is a serious challenge.
Problem-solving skills defined. Problem-solving skills are skills that allow individuals to efficiently and effectively find solutions to issues. This attribute is a primary skill that employers look for in job candidates and is essential in a variety of careers. This skill is considered to be a soft skill, or an individual strength, as opposed ...
Here's 15 remarkable traits that define natural problem solvers and help them excel in finding solutions to complex issues. 1. They're extremely resilient. Natural problem solvers are resilient people. They bounce back from setbacks with determination and a positive attitude, seeing challenges as opportunities to learn and grow.
The affirmation, "Your dedication and resourcefulness make you an invaluable problem-solver," is uplifting and empowering. It affirms someone's problem-solving gifts in a heartfelt way. Similarly, the quote is inspiring: "Your knack for problem-solving is truly remarkable. You efficiently analyze complex situations and find solutions."
Creative problem solving (CPS) is a way of solving problems or identifying opportunities when conventional thinking has failed. It encourages you to find fresh perspectives and come up with innovative solutions, so that you can formulate a plan to overcome obstacles and reach your goals. In this article, we'll explore what CPS is, and we'll ...
3) You're playful. One sign that you have an uncanny knack for solving riddles and puzzles is that you love play. You love the concept of play, and you love to do it. One of my close friends is totally like this. He's a joke maven, a collector of action figures, and an avid riddle fan.
5 Examples Of Problem-Solving Skills. 1. Improving Collaboration in a Stalled Project. Here is a sample you can use when explaining how you improved team collaboration on a project: "Our team was tasked with developing a new financial management web application. However, we hit a snag and missed two crucial milestones.
5 Key Capabilities the Best Problem Solvers Have. Throughout my career, I have heard people say things like "He has a knack for fixing difficult bugs," or "She has a knack for getting Ruby to work with OpenSSH.". The definition of "knack" according to the Oxford English Dictionary is "an acquired or natural skill at performing a ...
Here are my top five suggestions: Finding keywords that really match your problem and exclude other problems. Using double quotes to link keywords together: "Java developer" vs. Java developer ...
Discover what problem-solving skills are and how they can help you overcome challenges. Learn from real-life examples and improve your problem-solving abilities today! ... Decision-making ability: Having a knack for making the right decisions under pressure is a highly sought-after attribute by employers when hiring people. Taking quick ...
6 Problem Solving Pitfalls and Countermeasures The Center for Corporate and Professional Development | People that are viewed as good problem solvers are valued. We know they can help. They just seem to have a knack for figuring things out. In truth, we all have different abilities and skills, and some people ARE better at getting to the crux of the problem.
It works! try to do different examples and scenarios of the problem. This helps greatly in identifying the edge cases which are the hardest to understand in most problems. My favorite time for solving this kind of problems is the dawn(4-6 AM). Have a good sleep the night before, and wakeup ready to solve the problem. Silence is your friend.
A Knack for Problem-Solving | 2023 Emerging Pharma Leader. May 11, 2023. Mike Hollan. Publication. Article. Pharmaceutical ExecutivePharmaceutical Executive: May 2023. Volume 43. Issue 5. The recipe for cross-functional collaboration in drug development.
It's even better if the members of the team are used to swim in uncertainty, and take it as a challenge more than a chore. The process described above is just an example; in practice it's often more chaotic. For example, even when a decision is made, your brain might still continue to process the problem passively.