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 (5)
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!
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!
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.
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.
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.