So, you like, write code all day?
The role of a developer is often misunderstood. To outsiders, it can look like we just "write code all day." But there's a lot more to software development than what meets the eye. Whether you're a product owner, designer, marketer, or stakeholder, here are five key insights into what it's really like to be a developer—and why that matters to you.
Understanding these realities can help you communicate more effectively with developers, set realistic expectations, and contribute to building better products together.
Yes, writing code is central to what we do. But it usually isn't the bulk of our day. Developers spend a surprising amount of time on tasks that ensure the software is functional, scalable, and maintainable:
On top of that, developers often aren't subject matter experts in the industries or domains they build software for. Understanding business logic, user needs, and domain-specific rules frequently involves learning directly from clients or subject matter experts. That discovery work is essential to building the right thing.
In reality, writing the initial version of code is often the easiest part—the real work comes in making it robust, understandable, and maintainable.
We often hear: “Can you just make this tiny change?” But even the smallest updates can trigger a ripple effect:
Every change—no matter how minor—needs to be tested, validated, and reviewed to ensure it doesn’t break anything else. The real cost isn’t just in writing the code; it’s in proving that the change is safe and stable.
For example, imagine someone asks us to adjust how a date is displayed. That date might show up on dashboards, reports, data exports, and APIs. To change it correctly, we have to trace every reference, update tests, validate behavior in different environments, and go through code review and QA like any other release.
A so-called “quick fix” might look like a five-minute job—but in reality, it could take the better part of an afternoon.
Sometimes, we have to move fast. But taking shortcuts—skipping tests, hardcoding values, duplicating logic—creates what we call technical debt. It might work for now, but it slows us down in the long term:
Paying down technical debt—by cleaning up, simplifying, or improving code—isn’t just maintenance. It’s a strategic investment in future speed, stability, and scalability.
That said, not all technical debt is bad. It often serves a purpose, especially when speed is critical—like launching a Minimum Viable Product (MVP) or testing an idea in the market. In these cases, intentional shortcuts can help a team move fast. The key is to recognize that debt and address it deliberately over time, just like you would manage financial debt.
Take this example: suppose we needed a quick Black Friday promotion. We duplicated an old campaign, tweaked it slightly, and got it live. That’s fine for a one-off. But what happens when the business wants to run monthly promotions?
If we keep copying and editing code for each new campaign, we’re creating a mess of slightly different features—each requiring its own updates, testing, and bug fixes. Developers start spending more time maintaining past work than building new value.
What helped us move fast at first is now holding us back.
If, instead, we had built a reusable promotion engine or abstracted the shared logic early on, we’d be able to support new campaigns quickly and cleanly—with less duplication, fewer bugs, and more flexibility.
Developers don’t just care about whether something works—we care about how it feels and fits together:
But great UX and UI don’t happen in isolation. Developers, designers, PMs, and creatives each bring unique strengths to the table—and the best results come when they collaborate closely.
Developers offer technical insight into what’s feasible and efficient. Designers bring deep empathy for the user and creative vision. PMs ensure alignment with business goals and keep the team moving toward a shared vision. Creatives infuse personality, storytelling, and brand consistency into the experience.
When these perspectives are shared early and often, the end product becomes more polished, usable, and scalable. Sometimes the flashiest feature isn’t the right one—and a team of developers, designers, PMs, and creatives working together can identify smarter solutions that balance impact, usability, and long-term maintainability. Products built in this kind of collaborative environment tend to shine—not just because they look good, but because they feel right for the people using them.
Tech never stands still—and neither do we:
By the time a developer has mastered one approach, it’s often already being replaced or refined. But that’s not a problem—it’s part of the job.
Keeping up isn’t just about syntax or trends. Great developers focus on mastering concepts: how to structure codebases, when to use specific patterns, and why one solution scales better than another.
It’s not important for any one developer to know every part of a system from end to end. What matters is building the ability to learn, adapt, and make smart decisions in a fast-moving landscape.
We’re not just writing code—we’re shaping systems, steering architecture, and designing user experiences that last.
Understanding how developers work can help teams communicate better, plan more effectively, and build stronger products. Development isn’t magic, and it isn’t just about typing quickly. It’s a complex, collaborative, creative discipline that thrives on thoughtful process and shared understanding.
So the next time you interact with a developer, remember: we’re not just coding—we’re designing systems, solving puzzles, and building the future, one pull request at a time.
To make your collaboration with developers smoother and more productive, here are some tips:
Encourage continuous learning: Support developers’ efforts to stay updated—it benefits the whole team.
Sign up for our email newsletter. Nothing spammy about it. Just a monthly rundown of what we’re sharing.