My Experience 5 Key Parts To Problem Solving In The Software Development World


Well-Known Member
How do you get from a set of wants to a working program? If there were, someone would write a program to do it, and computer programmers would be outdated. Custom Software Development Company may suffer from this type of problems.

Still, there are general principles you can follow that will help to guide you near a solution. (Based on How to solve it by George Pólya.)

1 Make sure you have a clear understanding of all the needs.

In the real world, this is sometimes the most stimulating part. Without this, the product you create (i.e the code you write, the design you create, etc.) will be totally off from what an instructor or client is expecting.

However, this is probably the number one thing people know they need to do when receiving some kind of assignment or job. How can you ever be expected to code hundreds, maybe thousands of lines without fully understanding what you are doing?

2 Plan Tests you can use to check potential solutions for correctness.

If you don’t have an approach to test an assignment or job and make sure it fits the necessary requirements set by your instructor/boss then you will move forward unaware to the potential issues.

This clearly can cost you letter grades or more importantly money & time!

3 Design the approach.

One of the most commonly used methods for this is the stepwise improvement (AKA the top-down design). This is a process of breaking up the original problem into some number of minor sub-problems.

Then, you take each sub-problem and break it up into even smaller sub-problems. This is repetitive until you get sub-problems that are small enough to be translated into code.

This approach can be really helpful to not only beginners trying out something new or difficult. It also can support people who have been doing this for years. The process of getting the idea, transitioning it to paper, and then working through the problem, allows you to understand the issue quicker and easier.

4 Translate your design into computer code

OK, this is probably the most anticipated part of the whole process. Seems simple right? It should be after your extremely thoughtful planning and design work. You can see that the procedure doesn’t work if you go from step one to step four.

Another side note here is the amount of time you strategy and design. The planning and design are common of the work while the actual coding is only a small part.

5 Reflect on how you arrived at your solution.

Last but surely not least, the reflection. I usually write notes of issues I had while writing the actual code or if I found somewhat better than I didn’t know about. If you keep a notebook nearby to jot down notes you can go back to them when you are applying something.

The reflection also permits you time to go back through, add testing measurements if need be and ask things like, what worked and what didn’t? How can this experience help you solve future problems? Which of course leads to you being a better developer in the long run.


Well-Known Member
Totally agree with the first point. IMO the main factor of successful software development is to spell things out to the developer and see if he is interested or not. If the developer is interested he becomes self-motivated and tries his best.