DEV Community

Cesar Aguirre
Cesar Aguirre

Posted on • Originally published at canro91.github.io

We, Coders, Often Don't Get To Solve Problems—And That's Boring

I originally posted this post on my blog.


Coding is about solving problems with automation.

The most interesting and funniest part is figuring out a coding solution to a problem.

But often, by the time a coder is involved, all the big picture thinking and decision making have already been made, killing all the fun.

Somebody else already talked to customers.
Somebody else divided the work into milestones.
Somebody else decided what to do and how long it will take.

With no software engineers or people with boots on the ground involved.

A 6-month project promised to be done in just one month

At a past job, our VP, probably to look smart in front of other executives, promised to finish in one month a project that needed at least 6 months.

He picked a number out of thin air without asking anyone. By the time, anyone with a coding background and boots on the ground was involved, it was too late. A promised was already been made. And often estimates aren't estimates, but set-in-stone deadlines.

Coders were only involved to turn JIRA tickets into lines of code.

The most rewarding and funniest projects have been when I have all the context around customer needs and am involved in most of the design and architecture decisions.

If someone else talks to customers and writes specs and we, as coders, only turn those specs into code, we’ll be out of business soon. AI will replace us all.


Starting out or already on the software engineering journey? Join my free 7-day email course where I share the lessons and mistakes I've learned from 10 years in software engineering, so you can skip the trial and error and move your career forward.

Top comments (12)

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

Coding is about solving problems with automation

I completely disagree. Coding is simply instructing a computer to do what you want it to do.

Almost all of the most interesting, creative projects I've worked on (all personal ones) do not solve any problem AT ALL. I built them out of curiosity, or some crazy half-baked idea.

Programs do not have to be useful, or solve a problem. They can do anything at all! Why limit yourself to solving a problem? That potentially takes away all the fun and enjoyment of building for the sake of building.

Do children use their imaginations to 'solve problems' when building with Lego? Not usually. They do it because it is enjoyable and fun. Programming for me has always been the same. We're just lucky that people are also prepared to pay us to do it!

Collapse
 
canro91 profile image
Cesar Aguirre • Edited

I wrote this piece with coding in the corporate world in mind. But it's a great point, Jon. Not all code is written to solve a problem, you're right! Thanks for sharing!

Collapse
 
ingosteinke profile image
Ingo Steinke, web developer

It's not just about fun. If all the high level decisions have been done before, they have been missing out on experts' experience, ideas, and questions. If developers just get ready-made coding tasks, that's not creative nor agile. Companies that follow that kind of feature-factory mindset could probably replace developers by AI, but they'd better integrate devs into their ideation and project management to prevent unpleasant surprises later.

Collapse
 
canro91 profile image
Cesar Aguirre

Ingo, unfortunately that was my experience at one of my past jobs. I wrote this piece as a rant/catharsis. I agree with your point about being easily replaced by AI in an environment like the one I described.

Collapse
 
atomijd profile image
Atomi J.D.

Great post. You've hit on a critical issue. I've seen this from the other side of the table.

I've been coding for nearly 50 years (the last 20 just for fun), but my career was as a Project Manager in a Fortune 500 company, handling projects in the $5M - $200M range. My core strategy was to always have a qualified architect and a top-tier ('10x') developer involved in the core design team from the very beginning. They weren't just ticket-takers; they were essential problem-solvers.

The result was consistent: we delivered high-quality products on time and within budget.

You're absolutely right. For any large project in a major company, you need creative developers in the room to solve the massive problems you know are coming. Excluding them is a recipe for failure.

Collapse
 
canro91 profile image
Cesar Aguirre

My core strategy was to always have a qualified architect and a top-tier ('10x') developer involved in the core design team from the very beginning.

It sounds like everything we missed at the past job I mentioned in my post...50 years in the industry?!!! :O

Collapse
 
waterkip profile image
Wesley Schwengle

When I first read your post I thought you were a Jr. developer. But looking at your GitHub blog I saw you aren't. Why don't you look for problems to solve? Can't you inject your ideas or thoughts into these issues that you need to solve, or just solve them but improve on the tooling around the projects? There are always low hanging fruits to be picked up or even more complex problems that no-one touches.
I'm a bit surprised that you don't actively challenge the narrative.

Collapse
 
canro91 profile image
Cesar Aguirre

Wesley, that's a great point! I wrote this as a rant/to describe a situation I've noticed while coding in the corporate world. You're right, there's always ways to make boring projects interesting, if deadlines allow it.

Collapse
 
getsetgopi profile image
GP

I interpret your post from a different perspective, focusing on project timelines committed by leadership to clients rather than coding challenges. This scenario is common in IT services, where multiple vendors compete by offering varying quotes and expedited delivery times.

In my experience, this approach is standard practice in the IT service industry. Companies often propose lower prices for maintenance contracts, as these typically extend over several years. Conversely, new development projects offer less potential for ongoing maintenance work with the same firm, leading to different pricing strategies.

This competitive landscape often results in ambitious timelines and cost estimates to secure contracts, which can create challenges for project teams to meet these commitments.

Collapse
 
canro91 profile image
Cesar Aguirre

That's a great point. Thanks for sharing.

Collapse
 
leena_malhotra profile image
Leena Malhotra

Great one!

Collapse
 
bitvaultyinc profile image
BitVaulty Inc

good stuf