> Imagine a business analyst prompting for an app, and getting a ruby on rails monolith with O(N^2) performance for the core behavior for a service that is expected to have millions of requests daily.
I see this as the main argument against "we will just have tools that allow managers and ba's to do what devs do now". I think folks often forget that there are two sets of requirements for every app: business requirements and technical requirements. Non technical folks might understand the business requirements very well and may even be able to write code that satisfies those requirements, but the real value in a dev is squaring those business requirements with technical ones. A BA might look at a DynamoDB table and say "yeah lets just run a scan for the items we need", whereas a dev will look at the same problem and say "yeah we can do that but it will cause issue A, issue B and sometimes issue C". And the dev knowing those gotchas is why you have them there in the first place, a dedicated person that knows all these gotchas and makes sure you organization avoids a footgun in prod.
I see this as the main argument against "we will just have tools that allow managers and ba's to do what devs do now". I think folks often forget that there are two sets of requirements for every app: business requirements and technical requirements. Non technical folks might understand the business requirements very well and may even be able to write code that satisfies those requirements, but the real value in a dev is squaring those business requirements with technical ones. A BA might look at a DynamoDB table and say "yeah lets just run a scan for the items we need", whereas a dev will look at the same problem and say "yeah we can do that but it will cause issue A, issue B and sometimes issue C". And the dev knowing those gotchas is why you have them there in the first place, a dedicated person that knows all these gotchas and makes sure you organization avoids a footgun in prod.