Excellence in Software Engineering
Effective Problem Solving Techniques for IT Professionals
19 April 2017

Author: Ayşenur AYDIN EROĞLU, Expert Software Engineer – Defence Application SW Group

What is a Problem?

Problem is a barrier which blocks access to means to reach a goal. Something harassing, disturbing, or intercepting. It is a headache…

As humans, we have goals at any moment in life, and we had been developing techniques to achieve the same goals since prehistoric ages. For instance, for the goal of finding food, our technique has evolved from hunting / gathering to old style plantation and finally to modern and technological farming.

So, let’s try to define the problem again: Finding motivation, starting and gingering up development. Changing the vantage point is the starting point to solve problems effectively.

Solving Problems

Problem solving can be defined as, finding a way to reach your goal. If you are an IT professional, you can be a natural problem solver by the favor of your algorithmic mind since you don’t block your mind with virtual barriers.

Avoid Stress

Stress is like a signal jammer in your mind that blocks your thinking.

Learn the techniques for overcoming stress. Sleeping well as well as adequate and balanced nutrition can decrease your stress level.

Proactive or Reactive

Everybody has difficulties in their lives, any software can be buggy, customer relations can be difficult, etc. Remember that you are not the only one who has to deal with difficulties.

Claiming and waiting for a solution wouldn’t work. Looking for someone to blame is only wasting time. You can only erode your potential and your energy with that kind of reactive thinking.

Change your mind. Accept the challenge and assume control of the situation. Take initiative and use your whole potential to improve your conditions.

Avoid Learned Helplessness

There will be people around you to degrade your mood and motivation and sell their own learned helplessness to you. Don’t listen to them and focus on your aim.

Have a “Plan B”

In each step of your life, have a “Plan B” for worst cases so that if something goes wrong, it won’t be the end of the world, such as preparing your rollback scenarios even if your mission is not complex or backing up your storage routinely.

Priority Management

Not to be overwhelmed with to-dos, manage your tasks and assign a priority label to each task.

Urgent: Emergency case, like disasters. In IT World it means, blowing up your systems or production bugs which cause losing money or prestige.

Important: Significant things that can derive a profit.

Problem Solving Steps

1.Identify the Problem and the Goal

Clarify the problem and the goal and collect useful data to find a solution.

Remember that, reaching the information and understanding the requirement is very difficult. Ask plenty of questions logically. For example, follow a path from general to specific while asking questions. Draw your understanding and have a confirmation for it.

Improving your listening skills will be helpful.

In IT world, collecting data is possible by understandable and searchable event records. Learn the principles of logging.

2. Finding a Solution

There are lots of techniques to find an effective solution. Use the following best practices and list the possible solutions:

2.1 Brainstorming

If you are trying to find a solution as a group, discuss the problem together. Write your whole assumptions and try to confute and eliminate them.

2.2 Mind Map

A mind map is a hierarchical diagram used to visually organize information. Graphical view of information about the problem may be useful to find an effective solution.

2.3 Keep in Touch with Inspiring Communities

Well known communities like Stack Overflow, are very helpful to find problems similar to yours (or even the same problem) and mostly its solution.

3. Pick and Apply a Solution

Take your solution list and compare your options. Write their benefits and costs and pick one of the solutions and apply.

4. Analyze the Result

After applying the solution, watch out for the results. It may not be the best solution on the first run. If so, collect new data and think about the gaps you couldn’t close and turn to step 1.

 

References
[1] https://www.kent.ac.uk/careers/sk/problem-solving-skills.htm
[2] https://math.berkeley.edu/~gmelvin/polya.pdf
[3] https://olivergearing.com/get-your-priorities-right-part-two-the-important-vs-urgent-matrix/
[4] http://www.gogeometry.com/problem/problem_solving_techniques_mind_map.html

Past Articles

Why Built-Operate-Transfer (BOT)?

Why Built-Operate-Transfer (BOT)?

“ In the last months we have received some BOT demands from some large enterprises especially from Europe and we had several negotiations with them. Below we want to share with our followers our impressions regarding the concerns, feelings and the alternative searches of any CEO of any enterprise in case of expanding their production into other countries.”

What if remote service is unavailable?

What if remote service is unavailable?

Today, many applications collaborate with remote services to provide functionality. While developing a distributed system, we sometimes encounter temporary remote service unavailability or failure due to transient faults such as slow network connections.

Semantic Versioning

Semantic Versioning

In Wikipedia it’s described as: “Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software.

Navigation