DEV Community

Max Ong Zong Bao
Max Ong Zong Bao

Posted on • Originally published at


How To Adopt Developer Mental Models

Photo by Kalen Emsley on Unsplash


When I was listening to "The Knowledge Project" podcast on mental models.

The show host was talking about how he started to explore the mental model to make better decisions.

Instead of making decisions by gut instinct through hoping and praying if it is successful.

Below is what I think it might be the type of mental model a developer might need to focus on to be a better developer.

What is Mental Models?

What is Mental Models
Mental models allow a person to make decisions based on multiple perspectives on how to tackle a problem.

Say to save a forest, different specialists provide severals solution to tackle a problem.

So that it could achieve a single objective which is to save a forest.

From the perspective of a forest ranger, lumber, environmentalist, forest firefighter or a wildlife biologist.

I find that as developers instead of chasing the latest technology, tools or best practices.

We should focus on developing these mental models to help us to understand and create software that could solve problems.

To also convince people of the validity of a solution by using multiple mental models.

Types of Mental Models

Here are the mental models I feel that any developer should develop.

Design Thinking

Design Thinking
Design thinking has been used in recent years to tackle problems that centre around specific users who are using the solution daily.

It could be in the form of design sprints for a creative solution or the lean startup for anyone to trial test ideas to build their own startups.

Understanding it could help a developer to formulate better and creative solutions catered specifically for a type of user through collaboration with other specialists on common ground.

Systems Thinking

Systems Thinking
This was introduced to me by a fellow mentor during a mentoring session previously on the importance of system thinking.

It is to allow problem-solving of complex systems by focusing on small parts of a highly complex system.

You learn it so that risk can be controlled and mitigated before it turns into an overall failure of the entire system.

To understand system thinking you can look at The Toyota Way: 14 Management Principles from the World's Greatest Manufacturer or The DevOps Handbook


I recommend heavily to devote their time and effort to learn it.

To influence the decision-making process by painting a story to the eyes of the person who adopts it.

From the person who makes the purchase decisions to the actual users of your software.

I find that without being able to understand it well, time, effort and resources are wasted in building software.

This might allow anyone to adopt your software to help them solve a problem that they are facing.

Learning about it by reading books like On Writing Well: The Classic Guide to Writing Nonfiction, encouraging habit-forming for additive software The Power of Habit: Why We Do What We Do in Life and Business, persuasion research like the book Pre-Suasion: A Revolutionary Way to Influence and Persuade


By arming yourself with these 3 mental models.

It helps you to become an effective and better developer who could operate as either an independent contributor or as part of the management.

I have been studying these mental models so that it could allow me to be a better developer.

If you like my article, please sign up for Max Adventurer's Newsletter for awesome content I stumble across weekly in Python, Startup and Web Development.

You can also follow me to get the latest update of my article on Dev

This post was originally posted on Max's blog at How To Adopt Developer Mental Models - Reading Time: 3 Mins and Photo by Kalen Emsley on Unsplash


Top comments (2)

jameslau profile image
James Lau

Thanks for posting this! Every job at every company requires you to have a certain mentality in order for you to do your job well.

I'm glad you had posted this because not all of us comes from a software engineering or computer science background. Fitting the mold of a developer from an external avenue and learning the ropes is far more critical for first timers compared, say, learning the hottest code language(s). You won't even know how to Google or ask questions if you are not in the right mindset at first.

steelwolf180 profile image
Max Ong Zong Bao

Yes mindset is important, with the correct mindset it will help you to be better at adapting to situations and thrive in a unknown environments.