Devin needs guidance on what your preferences are and how to check if it’s on the right track. If not specified, Devin will make its own judgment calls. We recommend following a simple structure in your prompts to make sure Devin stays on track and checks its own work:
Example: Identify and replace deprecated Java 7 APIs with their Java 8 equivalents. Analyze the codebase for potential Java 8 language and API enhancements.
Example: Run the test suite and verify that all tests pass successfully. Build the project using the updated Java 8 configuration and verify that the application is up and running.
As with any entry-level engineer, Devin is more likely to succeed if complex projects are broken down into clear sub-tasks. For example, rather than asking Devin to upgrade your application code, test suite, and CI configuration in one session, you may want to break this down into three separate sessions.
For particularly complex tasks, we recommend working with Devin across multiple separate sessions as Devin’s performance can sometimes degrade as the session gets longer. If this happens, consider using snapshots as a way to maintain the progress on Devin’s machine image in your new sessions.