The AI Team Checklist


Intro
So, you have a web or software engineering team that uses AI, huh?
How is that going for you?
Using AI is a good thing. We encourage the use of AI tools like ChatGPT, Grok, Claude, Gemini, and Cursor (which relies on them). However, using AI can also cause some issues. I want to address these issues with a "checklist." Engineers, if you are using AI to generate code, please consider the checklist before putting up your PR!
AI Checklist
1. Did I read the entire file before asking the AI to accomplish a task?
Reason: AI will accomplish a task according to the problem you present it. The AI does not have in mind principles like Do Not Repeat Yourself, creating re-usable functions in shared utility folders, or other architectural principles. Architecture is up to the developer!
2. Ask yourself lots of questions about the generated code.
Questions to ask:
Is this DRY?
Do we have a utility function somewhere else that should have been included in this solution?
Is this how I would have solved this problem?
Is this over-engineered?
Does this solution fit with the patterns we have used elsewhere in the code base?
3. Consider readability and maintainability
AI does not have in mind readability or maintainability in the sense of how a human engineer might debug code. A lot of our time as engineers is spent reading and understanding an area of code we have not seen before, or have not seen in a long time. So, we need to write code the way we read code.
Not easy to understand, debug, or update code
// not too bad, especially if formatted differently. But, not great.
const result = users.filter(u => u.age > 18).map(u => `${u.firstName} ${u.lastName}`).sort((a, b) => a.localeCompare(b)).slice(0, 5);
Easy to understand, debug, and update
const getTopAdultUserNames = (users: User[]): string[] => {
// Filter adults
const adults = users.filter(user => user.age > 18);
// Map to full names
const fullNames = adults.map(user => `${user.firstName} ${user.lastName}`);
// Sort alphabetically
const sortedNames = fullNames.sort((a, b) => a.localeCompare(b));
// Return top 5
return sortedNames.slice(0, 5);
};
const result = getTopAdultUserNames(users);
4. Do I understand the code I am pushing up?
This is a must!
Before AI existed, code reviewers, team leads, and engineering managers only needed to deal with a stray copy-pasted answer from StackOverflow. Now, it is daily or hourly that code reviewers must look more closely at the solutions presented in pull requests to make sure there are no hallucinations, that it jives with the codebase, and that it follows the team's patterns, etc.
Conclusion
AI has sped things up for all of us, but it will slow our code reviews down if the engineers putting up code are not going back through the code and refactoring AI generated solutions to match human engineering practices.
Engineers—You have super powers now, but as Uncle Ben said,
With great power, comes great responsibility.
-Benjamin Franklin "Ben" Parker
What about you?
How have AI tools affected your life as a developer, code reviewer, or engineering manager?
Subscribe to my newsletter
Read articles from Brian Scramlin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Brian Scramlin
Brian Scramlin
I am a full-stack developer, CTO, and Engineering Manager from Battle Creek, MI. My focus is on enterprise TypeScript applications. I have worked with startups and legacy companies as a senior engineer and currently serve as CTO of Ministry Designs.