• jadero@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I think he’s missed a potential benefit of AI.

    He seems to be speaking mostly of greenfield development, the creation of something that has never been done before. My experience was always in the field of “computerizing” existing manual processes.

    I agree with him regarding the difficulty of gathering requirements and creating specifications that can be turned into code. My experience working as a solo programmer for tiny businesses (max 20 employees) was that very few people can actually articulate what they want and most of those that can don’t actually know what they want. The tiny number of people left miss all the hacks that are already baked into their existing processes to deal with gaps, inconsistencies, and mutually contradictory rules. This must be even worse in greenfield development.

    That is not saying anything negative. If it were any other way, then they would have had success hiring their nephew to do the work. :)

    Where I think AI could useful during that phase of work is in helping detect those gaps, inconsistencies, and contradictory rules. This would clearly not be the AI that spits out a database schema or a bit of Python code, but would nonetheless be AI.

    We have AI systems that are quite good at summarizing the written word and other AI systems that are quite good at logical analysis of properly structured statements. It strikes me that it should be possible to turn the customers’ system descriptions into something that can be checked for gaps, inconsistencies, and contradictions. Working iteratively, alone at the start, then with expert assistance, to develop something that can be passed on to the development team.

    The earlier the flaws can be discovered and the more frequently that the customer is doing the discovery, the easier those flaws are to address. The most successful and most enjoyable of all my projects were those where I was being hired explicitly to help root out all those flaws in the semi-computerized system they had already constructed (often enough by a nephew!).

    I’m not talking about waterfall development, where everything is written in stone before coding starts. Sticking with water flow metaphors, I’m talking about a design and development flow that has fewer eddies, fewer sets of dangerous rapids, and less backtracking to find a different channel.

    • Iteria@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I feel like AI would fall down even harder here. A lot of long running applications have “secret” rules in them that developers have as either tribal knowledge or they have to reas the code and see is the case. Will AI be sophisticated enough to read a massive repo probably dependent on several others and have a realistic understanding of the requirements inherent in that code system? Because that’s what we pay senior devs to be good at quickly figuring out. I find myself skeptical that AI will be able to do that in a trustworthy way with how it “hallucinates” now and doesn’t have the concept that it just doesn’t know sometimes. If a developer has to spend time checking the AI’s assertions about the rules, is that actually going to be faster than just keeping them in their mind or doing the research themselves?

    • BestBunsInTown_@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      You’re right, the best part about AI is automating the annoying part of actually implementing what you want to code. Now you have more time to think about requirements and sped up the process to maybe get several iterations to really refine a product. However, ChatGPT is gonna stay as a helper function writer for the next few years I think

      • jadero@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I think that ChatGPT is probably the wrong tool for what I’m imagining. I’m thinking more in terms of “hypothesis generators” and “theorem testers” that, as far as I know, are not using the methods of ChatGPT in their operation. I think that those kinds of tools and others like them could be used to help clarify requirements before coding even starts.