Comment by imron

Comment by imron 4 days ago

4 replies

I appreciate the reply, and you trying to be helpful, but this is not what is happening.

I mean I'm definitely still in the stage of disillusionment, but I'm not treating LLMs as senior or expecting much from them.

The example I gave played out much as you described above.

I used an iterative process, with multiple self-contained smaller steps, each with a planning and discussion stage where I got the AI to identify ways to achieve what I was looking to do and weigh up tradeoffs that I then decided on, followed by a design clarification and finalisation stage, before finally getting it to write code (very hard sometimes to get the AI not to write code until the design has been finalised), followed by adjustments to that code as necessary.

The steps involved were something like:

- build the app skeleton

- open a camera feed

- display the feed full screen

- flip the feed so it responded as a mirror would if you were looking at it

- use the ios apis to get facial landmarks

- display the landmarks as dots

- detect looking in different directions and print a log message.

- detect the user opening their mouth

- play a sound when the mouth transitions from closed to open

- etc

Each step was relatively small and self-contained, with a planning stage first and me asking the AI probing/clarifying questions.

The threading issue didn't come up at all in any of this.

Once it came, the AI tied itself in knots trying to sort it out, coming up with very complex dispatching logic that still got things incorrect.

It was a fun little project, but if I compare the output it just wasn't equivalent to what I could get if I'd just started with the Apple documentation (thought maybe it's different now, as per another commenter's reply).

It's also easily completeable in a day if you want to give it a try :-) Apple Developer reference implementation [here](https://developer.apple.com/documentation/Vision/tracking-th...).

> By project manager role, I mean that I am explicitly taking the CC through the various SWE stages and making sure they have been done properly, and also that I iterate on the solution. On each one of the stages, I take the role of the respective senior professional. If I cannot do it yet, I try to learn how to do it. At the same time, I work as a product manager/owner as well, to make decisions about the product, based on my personal "taste" and requirements.

Right, this is what I do. I guess my point is that the amount of effort involved to use English to direct and correct the AI often outweighs the effort involved to just do it myself.

The gap is shrinking (I get much better results now that I did a year ago) but still there.

kukkeliskuu 3 days ago

What I meant by "not treating LLM as senior" is that the disillusionment phase culminates in an a-ha moment which could be described a "LLM is not a senior developer". This a-ha moment is not intellectual, but emotional. It is possible to same time think that LLM is not a senior developer, but not realize it emotionally. This emotional realization in turn has consequences.

>The threading issue didn't come up at all in any of this. > >Once it came, the AI tied itself in knots trying to sort it out, coming up with very complex dispatching logic that still got things incorrect.""

Yes. These kind of loops have happened to me as well. It sometimes requires clearing of context + some inventive step to help the LLM out of the loop. For example my ad pacing feature required that I recognized that it was trying to optimize the wrong variable. I consider this to be partly what I mean by "LLM is a junior" and that "I act as the project manager".

> I guess my point is that the amount of effort involved to use English to direct and correct the AI often outweighs the effort involved to just do it myself.

Could you really have done a complex mobile app alone in one day without knowing the stack well beforehand? I believe this of stuff used to take months from a competent team not long time ago. I certainly could not have done one year ago what I can do today, with these tools.

  • skydhash 3 days ago

    You could. There’s a lot of code samples. But the issue is always quality and that takes time.

  • imron 3 days ago

    I'm pretty sure I have the right intellectual and emotional understanding of the AI and its abilities.

    > I consider this to be partly what I mean by "LLM is a junior" and that "I act as the project manager".

    And this is partly what I mean when I say the time I spend instructing the "junior" LLM could be just as well spent implementing the code myself - because the "project manager" side of me can work with the "senior dev" side of me at the speed of thought and often in parallel, and solving the challenges and the design of something is often where most of the time is spent anyway.

    Skills are changing this equation somewhat due to the way they can encode repeatable knowledge, but not so much for me yet especially if I'm trying things out in radically different areas (I'm still in my experimental stage with them).

    > Could you really have done a complex mobile app alone in one day without knowing the stack well beforehand?

    No, but that's not what happened here.

    The mobile app wasn't complex (literally only does the things outlined above) and I've done enough mobile development and graphics/computer vision development before that the stack and concepts involved weren't completely unknown, just the specifics of the various iOS APIs and how to string them together - hence why I initially thought it would be a good use case for AI.

    It was also an incredible coincidence that the toy app I wanted to build had an apple developer tutorial that did almost the same thing as what I was looking to build, and so yes, I clearly would have been better off using the documentation as a starting point rather than the AI.

    That sort of coincidence won't always exist, but I've thinking lately about another toy iOS/apple watch application, and I checked, and once again there is a developer tutorial that closely matches what I'm looking to build. If I ever get around to experimenting with that, the developer docs are going to be my first port of call rather than an AI.

    > I certainly could not have done one year ago what I can do today, with these tools.

    Right, and if you look back at my original reply (not to you), this is what I'm trying to understand - the what and how of AI productivity gains, because if I evaluate the output I get it's almost always either something I could have built faster and better, or if not faster then at least better and not so much slower that the AI was enabling a week of work to be done in a day, and month of work to be done in a week (claims from the GP, not you).

    I would love to be able to realize those gains - and I can see the potential but just not the results.

    • kukkeliskuu a day ago

      >The mobile app wasn't complex (literally only does the things outlined above) and I've done enough mobile development and graphics/computer vision development before that the stack and concepts involved weren't completely unknown, just the specifics of the various iOS APIs and how to string them together - hence why I initially thought it would be a good use case for AI. > >It was also an incredible coincidence that the toy app I wanted to build had an apple developer tutorial that did almost the same thing as what I was looking to build, and so yes, I clearly would have been better off using the documentation as a starting point rather than the AI.

      Ok. I have done similar, too. For example, when starting a new Django project, I will rather copy an old project as basis than create a new from scratch with LLM.

      If there already exists full documentation or repo of exactly what you are trying to do and/or it is something you have already done many times, then LLM might not add too much value, and may even be a hindrance.