Maybe I Never Loved Writing Code

Coding is something that is fun, interesting and engages the mind. 

At least, it used to be. 

The problem is that I’m increasingly unsure what “coding” actually means, and I don’t know what that involves these days.

In the Past

There was a time when being a software developer involved opening an IDE, staring at a ticket you didn’t quite understand.

Eventually you’d write some code, and it wouldn’t compile. You’d imrpove it, it wouldn’t work. You’d Google an error message, find a Stack Overflow answer from 2013 (which didn’t work) and eventually fix the problem entirely by accident.

Professional software development. Happy days.

I Don’t Want To Go Back

Now I can describe the problem to an AI assistant and have something resembling a solution appear before I’ve finished my coffee.

It sounds crazy. These days it is crazy, but I’m not anti-AI.

I’ve used AI to explain unfamiliar code, generate tedious boilerplate, suggest tests, write documentation, and help investigate errors. It speeds things up, although these are all things I could do myself I simply don’t want to do these days.

That’s rather the point.

I could also calculate a large multiplication problem with a pencil. I’m still going to use a calculator.

I’m not going backwards, I’m going forwards.

But What Does It Mean To Be A Programmer?

I’ve spent a substantial part of my career trying to become better at writing software, and now it feels like that has gone to waste.

It’s all irrelevant.

Design patterns. Testing. Architecture. Debugging. APIs. Frameworks. Git. Code review. All gone.

Something slightly uncomfortable has happened.

The valuable skill might no longer be writing the code.

It might be knowing whether the code should exist in the first place.

That’s a very different job, and we need to adjust fast. Yet producing code isn’t software engineering, and never will be.

Producing Code Isn’t Software Engineering

This distinction matters because we’ve spent years confusing programming productivity with code production.

Lines of code are particularly ridiculous as a productivity measurement. A developer deleting 500 unnecessary lines might have contributed considerably more than someone adding 2,000.

AI makes that distinction impossible to ignore.

Generating code is becoming cheap.

Generating good decisions isn’t.

Someone still needs to understand what the software is supposed to do. Someone needs to decide whether the architecture makes sense. Someone needs to notice that the requirements contradict each other. Someone needs to work out why production behaves differently from the test environment.

Someone needs to look at perfectly convincing generated code and say:

“No.”

That might become one of the most important programming skills.

The easier it becomes to produce enormous quantities of software, the more important it becomes to have people capable of understanding that software.

AI can give you an implementation.

Should you merge it?

That’s the question.

An experienced developer can look beyond whether the code compiles. They can ask whether it fits the architecture, whether it creates maintenance problems, whether the abstraction makes sense, whether the tests actually test anything, and whether the entire feature is solving the right problem.

We are all looking for judgement. It’s not about code, it’s wholly about whether we should write the code.

Conclusion

Perhaps what I actually love was never typing code.

Maybe it never was.

Solving problems was something better, something more important. 

I like understanding why something doesn’t work and making it work. I like taking something complicated and making it simpler. I like learning technologies. I even like finding problems during code review, although I’m considerably less convinced my colleagues appreciate this particular passion.

Which is what worries me. This might be an issue I touch upon another day.

About The Author

Professional Software Developer “The Secret Developer” can be found on Twitter @TheSDeveloper and regularly publishes articles through Medium.com.

The Secret Developer loves many things. Just can’t think of any of them today.

Previous
Previous

Stop Being Loyal to Jobs

Next
Next

Best Practice Isn’t a Fact