Essential Guidelines
When to Use Devin
TLDR: Treat Devin like a junior engineer. Assign Devin tasks a junior engineer or intern could figure out if provided with sufficient, clear instructions. Remember to instruct Devin with the level of detail that you would give to a human coworker.
Best Practices
Start your day by putting multiple Devins to work in parallel:- Think through your TODOs, and carve out small tasks that a team of interns (Devins) can help with.
- Return to draft PRs waiting for review around lunch.
- Devin is great for tasks that take 30 minutes but often end up in large backlogs for weeks.
- The Devin VSCode Extension makes it easy to hand off work while you focus on your primary task.
- Use Cmd+G to quickly share code snippets with Devin.
- Ideally, it’s as easy as checking that CI passes or testing an automatic deployment. Avoid ambiguous tasks where it can seem like the task was completed properly but something else is happening.
- As you’re getting started, start many small runs to find the best use cases for Devin.
- Try not to spend too many (>10) ACUs on one run. Devin’s performance degrades in long sessions.
Evaluating Tasks for Devin
When deciding if a task suits Devin, the first question to ask yourself is: Could a junior engineer figure this out given enough time and context?
Pre-Task Checklist
Task Complexity
- Consider what judgment calls and hard decisions are needed
- Identify potential failure routes an intern might run into
- For tasks requiring advanced domain knowledge, break them down further or provide relevant context
Task Definition and Scope
- Good tasks have a clear start and end, plus success criteria (e.g., passing tests, matching an existing pattern)
Available References
- Are there examples or patterns for Devin to follow?
- Can you provide prototypes, partial code, or existing patterns from the codebase or docs?
- It’s really helpful to provide links or filenames for Devin to look at.
Success Validation
- Tasks with test suites, lint checks, or compilation steps yield better results
- Tasks with subjective standards can be trickier
Review Effort
- Ideally, you just need to see that CI passes, or you can quickly test an automatic deployment
Task Size
- For large tasks, consider breaking them down into sub-tasks or multiple sessions
- Splitting large requests into smaller, manageable chunks helps Devin stay on track
Post-Task Review
Monitor Session Time
- If Devin repeatedly encounters session usage limits, the task might be too complex
- You might need to provide more detailed instructions and guardrails
- Consider investigating where Devin is spending its time
- If Devin is struggling with its dev environment, revisit the Workspace setup
- Finishing the task yourself can be faster than trying to get Devin back on track
Learning from Devin’s Mistakes
- In your future sessions, provide more context or instructions to help Devin get past previous obstacles
- Consider adding or approving Knowledge so Devin remembers things it learned from previous sessions