Thinking Outside the Code: Develop Creative Thinking Ability in Software Engineering
Tags: softwareengineering, creativethinking, productivity, development
Published: 2024-06-22 11:06:41

In this digital era, creative thinking is a crucial skill, especially in fields like software engineering where innovation drives success. Let’s explore what creative thinking is, why it’s important, and how you can develop it.

We first need to understand what is **Creative Thinking.**

Creative thinking involves looking at problems or situations from a fresh perspective that suggests unorthodox solutions. I will give you an example, I know this is already common, but maybe you know this already but this is the most effective way for you to understand.

What if I give you six matchsticks and ask you to create three triangles out of it. You will probably think of constructing two triangles using three matchsticks each which is technically wrong because we need to create three triangles.

![Two Triangles with three matchstics each](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6nyzg89xvykboa8wh30v.png)

If you think out of the box, how about we create a pyramid that will only require us six matchsticks to build it and we now have three triangles in total coming from each side.

![Pyramid with six matchsticks](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/slhe7w3bp5xsb4cetbpn.png)

Pretty simple right? The idea here is you have the resources the matchsticks, the number of matchsticks, and the shape. With these, you can think of many ways and patterns and all of these already exist you just need to come up with something from those resources. This demonstrates using of available resources in novel ways.

**Why is Creative Thinking Important?**
 
In today's fast-paced world, especially with the rise of the internet and AI, access to information and resources is unprecedented. As software engineers, our role is to innovate and create valuable products. Success in this industry, whether you're a large company or a startup, often hinges on your ability to think creatively and differentiate your offerings.

We need to be a Creative thinker to be able to generate ideas and solutions that are unique.

One good example is based on what the TikTok founder and CEO - Shou Zi Chew says during one of his interviews about how the TikTok idea started, with this very simple statement.

“How about instead of showing you content about the people you knew, we will show you the content that you like”

Sounds intriguing right? Let us dig deeper into this,

In the past or even today, leading Social media platforms like Facebook, Instagram, and Twitter/X use this so-called “Social Graph” wherein you’ll be able to see content about the people you know which is your “friends”, “friends of friends” or the people you “follow”. If we think about it, that is a smart and successful idea for a social media platform.

Just by thinking out of the box, who would've thought that this would be so effective? TikTok flipped this model, focusing on what users like rather than who they know. This “pattern recognition based on interest signals” has been incredibly effective, keeping users engaged by showing them content they genuinely enjoy and is relevant to them.

They shine because of this unique proposition that they have disrupted the idea of the “Social Graph” with this “Pattern recognition based on your interest signals” pretty simple to understand right?

**How to Practice Creative Thinking**

Even though how complex the idea you want to solve as long as you are being resourceful enough and come up with something unique about it, you are now exercising your Creative thinking ability. 

Here are some tips that I applied from my day to day as a Software Engineer, to supercharge our Creative Thinking Skills.

1.	**Requirements Gathering**: Understand the problem deeply by asking questions and challenging assumptions.
2.	**Become a Generalist Specialist**: Gain broad knowledge and deep expertise to draw inspiration from various fields.
3.	**First Principles Thinking**: Break down problems into basic elements and reassemble them in innovative ways.
4.	**Ideation**: Brainstorm using techniques like mind mapping and SCAMPER. Seek feedback to refine ideas.
5.	**Embrace Constraints**: View limitations as opportunities to focus and find unique solutions.
6.	**Experiment and Prototype**: Test your ideas, build prototypes, and iterate based on feedback.
7.	**Stay Curious**: Continuously learn and explore new interests to fuel creativity.
8.	**Collaborate**: Engage with people from diverse backgrounds to spark new ideas.
9.	**Reflect and Iterate**: Reflect on your experiences to identify what works and improve future efforts.
10.	**Practice Mindfulness**: Use relaxation techniques or any activities that enables you to clear your mind and inspire creativity.
11.	**Challenge the Status Quo**: Question conventional wisdom and consider better approaches.
12.	**Use Visual Tools**: Sketch, diagram, and use flowcharts to visualize problems and solutions.
Incorporate these practices to enhance your creative thinking and develop innovative solutions.

**Conclusion**

It doesn’t mean that if something is proven and is effective you must cling to it. If you want to revolutionize, you must learn to see things in a different way and from all angles.

If you still think AI could replace you, then you are not good enough.

Remember, while AI can augment our abilities, it cannot replace truly creative and innovative thinking. Use AI and other tools as resources to inspire and enhance your creativity, but always strive to bring a unique perspective to your work.

Creative thinking is a game-changer. Don’t just stick to what's proven—use it as a foundation to build something new and innovative. By cultivating creative thinking, you can develop unique solutions and stay ahead in the competitive landscape.