In my usage and conversations with other "builders", here is the spectrum of GenAI usage I've come across.
L1. Ask/Discover/Learn - AI as a Knowledgeable Expert
Use AI as a replacement for Google or Stack Overflow
- Manual/Documentation Lookup
- Explain/Understand Code
- Ask about Best Practices and Options
L2. Augment - AI as a Pair Programmer
Work together with the AI in small iterative increments where you bounce off ideas and take turns where you do some of the work and the AI does some of the work.
- Auto Complete
- Debugging
- Refactoring
- Code Quality Review
- Optimisation and Performance Review
- Security Review
L3. Delegate - AI as a Junior Programmer
After some planning and discussion with the AI, give it tasks and have it write the code that you review before accepting the pull request.
- Specs, Requirements, Plan with Tasks
- Assign Tasks to AI to writes code
- Review pull request for the code written by AI
L4. Outsource - AI as an Outsourced Freelancer or Agency
You only care about the outward functionality of the software and you outsource the engineering/development to the AI.
- Come up with the Spec and Requirements
- Tell the AI to come with a plan and tasks
- Ask the AI to "build" the software.
- Test the functionality of the software as a user
Questions for the Reader
- How do you use GenAI?
- Do you have a different model for thinking about this?
- Have you come across other ways of GenAI usage in software development?
No comments:
Post a Comment