Welcome to DD Development Studio!

My Initial Experiences with AI Assisted Development

By David Davis2025-06-24
TechnologySoftware Development

For the last several months, I have been dabbling with AI assisted development. The entire process has been the expected rollercoaster of emotions and outcomes that had kept me from diving into it in my already limited time. Circumstances changed and, after some initial struggles, I find myself really embracing it. Now that I have gained a productive level of skill in it, I thought I would share some of my experiences and lessons.

If you are steps, miles, light years down the road that I am on, I would love to hear your thoughts. For now, submit one of the Contact forms available to you and we can chat. In the near future, assuming you are signed into the website, we will provide you the ability to add comments on the blog pages directly. We are all learning on some level and it is best when we learn together.

My Initial Experiences with AI Assisted Development

I can only really speak on this from my perspective as an experienced software developer. I already know how to write solid, functional, and maintainable code. What I am looking for is efficiency. I want the AI assistant to understand my code pattern usage, detect errors in it that I have overlooked, and provide recommendations on how to improve it.

The AI can definitely do this. Whether it will or not will be up to you.

Think about AI as a hammer and you are using it to drive the nail of change into your codebase. Your hand is swinging the hammer. If you haven't instructed your muscular-skeletal system to move the hammer in the right direction and with the correct amount of force... you will not hit the nail correctly and the outcomes vary wildly.

This is the best analogy I can think of to describe the relationship between you and the AI. A skilled hammer wielder can drive a nail fully in one swing of the hammer. An amateur hammer wielder bends the nail, misses the nail entirely, or even hits their own thumb!

Think about AI as a hammer and you are using it to drive the nail of change into your codebase.

David Davis

After a few bent nails and sore thumbs, I finally started to understand how to swing a hammer, or in this case, how to put together a decent prompt. It was a difficult transition for me to make. I was struggling with the balance of writing a good prompt that didn't take longer to write than the actual code changes. How to properly 'educate' the AI on my code patterns and preferences. I already had a large codebase and it was difficult for the AI to 'remember' where things were and whether something already existed, maybe in a slightly different but usable form.

My latest methodology is to create an initial feature requirements document where I lay out my vision for the feature. The more complex the feature, the more details and notes I am providing. There are a few things that I try to include in these files:

  • Database tables and columns
  • Type definition changes
  • Business Rules
  • Validation Requirements
  • User Interface Requirements

Once I have this document ready, I ask the AI to review the document and understand how it would do that within my existing codebase. Then have it ask me any clarifying questions, updating the document with its questions and plans. Once this looks right to me, I ask the AI to track and execute its plan. When it thinks it is done, ask it to build the codebase and fix any errors. It can create tests for the features and generated mock data. I then run the tests, run the app, and see how it works.

The more experience that I have with this, the better my prompts are becoming. When it doesn't quite generate what I wanted, I can almost always go back to my prompt and see what went wrong. I then tuck that nugget into my hat and move on with iterating over the feature and adjusting the code until it works the way I had envisioned.

If you want a few examples of features that I put together using prompts, you can look at the My Account Addresses section of the website. I have built address verification systems before so I had a good understanding of the requirements when starting the feature. I also used prompts to put together an Informational Forms system that we are currently using for the Contact Us form, Feedback form, Technical Support form, and the 4 service inquiry forms for our service offerings. They are all config driven from rendering to validation to submission to persistence. I love how the features turned out, all using my architectural patterns, my vision, and the AI was able to generate the code to make it happen. Great stuff!

Even though I know there is a long way to go, I am very pleased with how the AI is working out for me. I mentioned in the beginning that my perspective and experiences are from a software development perspective. While I am certain that it would be possible to create these exact same features without having done development yourself, it sesme like a HUGE advantage if you can also create the code yourself. Who knows how much of the bad code generation was the result of bad prompting... probably a lot. My philosophy is to take ownership of the results of the prompt so that I can learn from it and improve my prompts. So here I am, still learning and growing. I love it!

Thanks for reading and stay tuned for more content. Don't hesitate to reach out if you have questions or ideas for future blog posts!