I remember a decade or two ago, people were talking about the idea of software as a craft, with apprenticeships, journeymen etc. This always struck a chord with me. A lot of the time, software (for me) has been about talking with people, working out what they really need, and carefully and iteratively developing the UI, code and and infrastructure. Don’t get me wrong, there’s some Engineering as well, in designing the architectures, scalability, failover, backups, etc, as well as in every DB query and service call.
It’s been a good three decades where the coding itself was a craft. Object oriented (or functional) beauty, DRY, readability, good naming, etc were lofty goals and paid their own way in terms of software maintenance costs, extensibility and lifespan, and developers were rewarded highly for these skills. It’s been a good run, but I can only think this period is coming to an end.
With AI coding, the industry is in the throws of an industrial revolution of code – more volume, less care, factory style. Maybe this is not a bad thing, but it looks like the end of the age of coding craftsmanship. That being said, you get better results with an experienced developer at the helm of the coding machinery who understands things like modularity, encapsulation, interfaces, frameworks, on-going maintenance effort, security, etc.
Software development is by no means just coding. It encompasses talking with people to find out what they need, working out what to build, designing efficient humane user interfaces, designing the architecture and implementing the infrastructure, constant decisions and trade-offs, telling people about what you’ve built and getting them to use it, supporting the software and maintaining it over time. Most of these areas are still crafts that rely on the skills and experience of humans and not (yet? maybe ever?) well done by AIs.
I’ve always thought that being a generalist is the best course in software – being able to do a bit of everything from talking to people, to writing code and understanding the infrastructure and networking. I can only see this is ever more true with AI growing in its abilities. The wider the range of your skillset, the less risk a lot of it will be replaceable by AI.. and besides, it’s more fun to do a variety of different things.
So in conclusion, software development is not dead and replaced by AI. Though I feel the coding craftsmanship part of it is ending.
Leave a Reply