I find myself increasingly looking at people and thinking they are cosplaying as a developer. What do I mean by this?
- People who churn out Proof of Concepts (POCs), get the customers excited, then throw it over the fence for the months of work it takes to turn the POC into a supportable bit of production code. By that time the customers are frustrated as they’ve already seen “the working code”.
- Actual developers who refuse to follow the proper process.
- Managers who used to be developers, and still chuck out a bit of code every now and then, but don’t follow any of the process.
- Well meaning amateurs, emboldened by the fact ChatGPT generates “perfect code”.
We are all developers now, right?
I don’t want to come across as the gatekeeper of development, because there are many times I’m also cosplaying as a developer. Sometimes things have to get done, and if I’m a free body, maybe I can do it, in my own way. It’s not a finished product, but at least it gives someone a helping had to get it over the finish line and into production.
I’m all for people doing development, but there is a danger that folks think writing (or generating) a bit of code is all there is too it. There is a differences between chucking out a bit of code that seems to work, and getting it live in a supportable manner. That difference is why things (hopefully) don’t fall apart every few minutes.
What about the testing and support?
I can, and often do, knock up quick solutions to things, but that is only one part of the job. What about the testing (automated or manual) that is necessary before something can go live? I still see cases of people effectively developing in production.
What about the support of this code once it has gone live? It’s easy to forget about that, because it’s kind-of boring, but having reasonable instrumentation, monitoring and notifications of faults is key, or you find yourself getting bogged down in unplanned work.
So what?
I think proof of concepts and prototypes are really useful, but they have to be presented as what they are. People are too quick to present them as a “nearly finished” solution.
I think generating code using tools like ChatGPT is useful. I just don’t want people to forget there is a lot more to being a developer than being a prompt engineer.
I’m self aware enough to know that I’m sometimes cosplaying as a developer, but I’m not sure other people recognize this in themselves, and when I hear people saying AI will replace developers it makes me think the people saying it don’t really know what developers are supposed to do. The AI might make developers more efficient, so they can get more done, but I’m skeptical about replacing people.
Cheers
Tim…