W hat Makes Pragmatic Devs

What Makes Pragmatic Devs

Pragmatic Meaning

Before diving into what makes a pragmatic programmer, let’s first understand what “pragmatic” means. Anyone can Google the term, but here’s an example to illustrate.

Imagine someone asks, “What time is it?”

Literally, they’re asking for the time, and our response is simply “It’s seven o’clock at night.”

However, pragmatically, they might actually be asking, “Why are you late?” In this case, we would answer with an explanation rather than just the time.

Another example: someone asks, “Can you pass me the bottle of sweet soy sauce?”

Literally, they’re asking if we can hand it over. But pragmatically, what they’re really asking is, “Could you please pass me the sweet soy sauce?” So, instead of replying with “yes” or “no,” we would just pass it to them.

So, What Makes a Pragmatic Programmer?

Every developer is unique, with their own strengths, weaknesses, and preferences. As time passes, they create their own working environment, which reflects their personality as much as their hobbies and appearance. However, a pragmatic programmer tends to exhibit these traits:

Early Adopter/Fast Adapter

We have an instinct for technology and enjoy experimenting with new tools. We can quickly pick up new technologies and integrate them with what we already know, building confidence from experience.

High Curiosity

We love to ask questions like, “Your code is so clean! How do you do that? What challenges did you face with this library? How did you implement it?” We’re like pack rats for small facts, each potentially influencing a decision in the future.

Critical Thinker

We never accept tasks without understanding their purpose. If a task is presented as something that will help many people, we see it as a challenge, prompting us to analyze the problem deeper.

Realistic

We always try to get to the root cause of problems. This realism helps us gauge how difficult a task is and how long it will take, allowing us to make realistic plans and set expectations.

Generalist

While we may specialize in one field, we strive to stay familiar with various technologies and trends. This flexibility allows us to easily move into new areas and face new challenges.


In addition to these characteristics, two fundamental qualities define a pragmatic programmer:

  1. Care About Your Craft
    Developing software is only meaningful if we approach it with care and caution.

  2. Think About Your Work
    Instead of running on autopilot, we stay engaged with our current projects, always thinking critically about what we’re doing. We apply the mantra: THINK.

Pragmatic Individual in a Big Team

Some believe that individuality has no place in large teams or complex projects. They argue that software construction is an engineering discipline, and it falls apart when individuals make decisions on their own.

This isn’t true.

While software development is an engineering discipline, it doesn’t mean we must suppress individual expertise. Take the example of a museum built over many decades. The construction was carried out by countless individuals, each contributing based on their own knowledge and abilities, without sacrificing their personal contributions to the team.

The Point Is a Continuous Process

A tourist visiting the Bogor Botanical Gardens asked the gardener how he made the grass so beautiful.
“It’s easy,” said the gardener. “You just water it every day, mow it every afternoon, and clean the dirt around the grass once a week.”
“That’s all?” said the tourist.
“Of course,” replied the gardener casually. “Do that for ten years, and you’ll have a beautiful garden.”

Creating something beautiful, like the grass in the Bogor Botanical Gardens, takes consistent daily effort. The same goes for being a great programmer.

In Japan, the term kaizen is often used, meaning “continuous improvement.” It’s a concept that has greatly contributed to Japan’s manufacturing success and has been widely adopted globally.

Kaizen applies to individuals as well. Every day, we should aim to improve our skills, even if only in small ways. Unlike the decade-long growth of the garden, we’ll see improvements in our skills within a matter of days. Over time, the results will be astounding, as our experience and abilities grow significantly.