Code is a waste product of creating user value
I believe...
1. Today's software development processes exist to create machine automated processes to meet ever changing user needs to maximize user value.
2. Source code, and the associated practices that allow humans to change and maintain source code, is a waste product of this automation process.
3. The end goal of AI assisted agile software development is to minimize, and possibly eliminate, the amount of this waste product produced in the quest for satisfying ever changing user needs, without regressions, to allow businesses to maximize the value of meeting ever changing user needs.
4. This journey will require new ways of working and thinking about software that will disrupt the status quo.
What am I missing here? What have I not considered?
I believe this video from Tessl captures this idea really well.
The full thought experiment...
Let's assume that the goal of the software development process is to satisfy user needs and that the customer is willing to pay for this increased satisfaction. This is a net benefit to the company you work for.
Let's assume that these needs change so any solution that we provide will need to be able to change as well. This adds to the benefit to the company you work for.
In today's world, source code in various languages is written by humans to tell a machine how to meet these ever changing user needs. This source code is has a cost to your company.
Over the years, humans have evolved coping mechanisms to be able to load enough context into their brains, which is proven to have a limited context window, to be able to work with large amounts of source code. This is important to allow humans to change the software to meet changing user needs. This process of creating "clean code" has a cost to your company.
Humans also make mistakes when writing source code so we have created ways to update the source code, both that we write and that we use from other sources, to fix these errors. This maintenance process has a cost to your company.
Humans have also created ways to confirm that when software is changed both user facing and internal behavior do not change unless a change is necessary to meet changing user needs. This testing process is both a cost and a benefit to your company. It is a cost because it is most likely more source code but also is a benefit because it keeps user satisfaction high.
What if AI could help us reduce, or eliminate, the parts of the software development process that cost companies money by doubling down on the parts of the process that add value through increased user value?
