Does AI democratize software development or not?
Hey, I am Klaus Haeuptle! Welcome to this edition of the Engineering Ecosystem newsletter in which I write about a variety of software engineering and architecture topics like clean code, test automation, decision-making, technical debt, large scale refactoring, culture, sustainability, cost and performance, generative AI and more.
The prevailing belief is that AI enhances everyone's performance uniformly. It provides greater assistance to those with weaker skills, thereby reducing the disparity with top performers or enabling non-software developers to create software. This raises the question of whether AI truly democratizes software development, and in what contexts it does or does not achieve this. As I have already written in the blog Productivity and Generative AI: Importance of focusing on effectiveness and looking at the whole system "It depends"
Factors How AI Could Democratize Software Development
Artificial Intelligence (AI) has the potential to democratize software development by making it more accessible to a broader range of individuals. This democratization can occur through several key mechanisms:
Lowering the Barrier to Entry: AI-powered tools and platforms can simplify tasks, making it easier for beginners to start coding. For example, AI-driven code completion and error detection can help novice developers write functional code without needing an in-depth understanding of all programming concepts. This lowers the barrier to entry and allows more people to get started with software development.
Personalized Learning and Support AI can provide personalized learning experiences and support to developers. For instance, AI-driven educational platforms can adapt to the learning pace and style of individual users, offering tailored tutorials and feedback. Additionally, AI-powered chatbots and virtual assistants can provide real-time help and guidance, making it easier for developers to overcome challenges and continue learning.
Bridging Skill Gaps AI can help bridge skill gaps by providing greater assistance to those with weaker skills. For example, AI can suggest code improvements, offer best practices, and highlight potential issues, helping less experienced developers improve their coding abilities. This reduces the disparity between novice and expert developers, fostering a more inclusive development environment.
Where it can democratize software development
GenAI tools can be extremely helpful when developing prototypes or automating repetitive tasks. These types of projects do not need to offer a great product experience, need to be maintained in the long run and are good examples where AI can help to democratize software development. It allows non-software-engineers to create software solutions without the need to have a deeper understanding of software development. So in these cases AI can potentially democratize software development.
Where it cannot democratize software development
If the software needs to be maintained in the long run, security, performance and a great product experience are critical. As well as the software needs to be integrated into a larger system, AI can help to make software engineers more productive, but not help to democratize software development. It will still be necessary to have software engineers with a deep understanding of software development to create a great product experience and be able to review and understand the code in depth. Addy Osmani has written a great article on this topic The 70% problem: Hard truths about AI-assisted coding. In that context experienced software engineers can increase their productivity with AI support. When working with GenAI support software engineers are applying years of hard-won engineering wisdom to review and adapt the proposals generated by GenAI. Addy wrote "The AI is accelerating their implementation, but their expertise is what keeps the code maintainable. Junior software engineers often miss these crucial steps. They accept the AI's output more readily, leading to what I call "house of cards code" – it looks complete but collapses under real-world pressure." He also stresses the importance of the human in the loop, craftsmanship, taking care of the details and having empathy for the user.
Conclusion
So does AI democratize software development? It depends on the context. AI has the potential to democratize software development by lowering the barrier to entry, providing personalized learning and support, and bridging skill gaps. However, in many types of projects you will need a deep understanding of software engineering to iterate with AI supports to create maintainable software and a great product experience. While AI can help make software development more accessible and inclusive, it is not a replacement for the expertise and experience of skilled software engineers. On the contrary the amount of skills will probably increase, as software engineers will need to understand how to work with AI and how to review and adapt the proposals generated by AI. Software engineers will probably also need to acquire more skills about architecture decisions, system design and be able to grow user empathy to build great product experiences. A big question is how the path from junior to senior software engineer will look like in the future and if junior engineers stay curious about the details and build up the needed skills for reviewing and iterating with AI proposals.
Resources
Generative AI: The new emerging bottleneck in software development - Human Code Review
How much does AI impact development speed? An enterprise-based randomized controlled trial by Google
Thanks for reading Software Engineering Ecosystem! Subscribe for free to receive new posts.
Mark as not spam: : When you subscribe to the newsletter please do not forget to check your spam / junk folder. Make sure to "mark as not spam" in your email client and move it to your Inbox. Add the publication's Substack email address to your contact list. All posts will be sent from this address: ecosystem4engineering@substack.com.
❤️ Share it — The engineering ecosystem newsletter lives thanks to word of mouth. Share the article with someone to whom it might be useful! By forwarding the email or sharing it on social media.