Just a Southern Saskatchewan retiree looking for a place to keep up with stuff.

  • 0 Posts
  • 10 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle


  • I agree with most of what you said, but I think I was not clear in my presentation of the domain of operations. I was not speaking to the rewriting of an existing system, but if gathering requirements for a system that is intended to replace existing manual systems or to create systems for brand new tasks.

    That is, there is no existing code to work with, or at least nothing that is fit for purpose. Thus, you are starting at the beginning, where people have no choice but to describe something they would like to have.

    Your reference to hallucination leads me to think that you are limiting your concept of AI to the generative large language models. There are other AI systems that operate on different principles. I was not suggesting that a G-LLM was the right tool for the job, only that AI could be brought to bear in analyzing requirements and specifications.


  • 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.



  • Yeah, I’m not a fan of the form of capitalism that’s about selling what they want us to buy instead of what we want to buy, but it seems to be working for pretty much every company out there.

    I guess we missed our window of opportunity with Netflix. We moved to the middle of nowhere with no internet or cell service 12 years ago. We’ve had Starlink for nearly 2 years and are just starting to run out of stuff available for free on our Roku. It’s been a couple of decades since I played with, um, other options, but I somehow doubt it’s become more difficult. :)



  • That’s just the way things work when humans self-organize. There is the appearance of structure at the beginning, because there just aren’t that many people with shared interests. Then as people are unsuccessful in finding the community they’d like (assuming they even looked!) more are created. Then more people come in and mill about and browse and get overwhelmed by the search for a needle in a haystack, so they create more.

    Eventually, some communities reach a critical mass and a bunch of small ones fade away into near irrelevance or disappear completely.

    As far as I know, the only way to put the brakes on community over-proliferation (if that’s even a real thing!) is to add a bit of friction to the creation process. Many kinds of friction devolve into centralization and gatekeeping, so they tend to be avoided in projects like this.

    The only kind of friction that I can see working and gaining acceptance would be some kind of “have you tried these communities?” auto-search during the creation process. Simply asking people to search first is unproductive for two reasons. First, people are notoriously bad at imagining that someone else might have thought of something first, especially when they are only person they know with that particular interest. (I’ve only met a dozen other programmers in 43 years. In my entire life (66) I’ve not met a single person with even a passing interest in boatbuilding, let alone an actual boatbuilder, etc). Second, even if they consider that someone else thought of it first, people are notoriously bad at searching.



  • We’ve been watching an old TV series called “One Step Beyond.” I actually like the Alcoa ad that runs ahead of the program. It’s written specifically for the program and runs as an introduction. They use “One Step Beyond” as a phrase highlighting their ability to innovate and in contrast to the “One Step Beyond” our normal existence as portrayed by the upcoming episode.

    I know I’ll tire of it eventually, but for now I’m enjoying it much the same way I enjoy listening to a piece of music multiple times or rereading a good book.