AI Coding
Software at the speed of thought.
AI prompting is the future of software development. AI Agents are required to simplify chaos and complexity.
Products
Endgame: Closed Loop Engineering Flow
IDE | Value | Notes |
---|---|---|
Aider | ?/5 | |
Bolt New | ?/5 | Green fields |
Cline | ?/5 | |
Copilot | ?/5 | Outpaced |
Cursor | ?/5 | All Purpose |
Devin | ?/5 | |
Genie | ?/5 | |
Replit | ?/5 | |
v0 | ?/5 | UI/UX Design |
qodo | ?/5 | Enterprise |
Performance Benchmarking
SWE Benchmark is a tool for evaluating the performance of AI coding agents.
SWE-Bench-Verified is the best benchmark for software engineering agents. It’s a set of 500 Github issues, Docker images, and held out unit tests. That's because typical agents operate autonomously within Docker containers as a human programmer would, iteratively reading and writing code and tests until they believe the issue is solved.
Context
Best Practices
Those that can leverage AI coding tools to write code by directing the intended purpose have a significant advantage.
Balancing Inputs
Balance between prompt detail, just enough context and the right model for the task at hand.
- Keep things simple, particularly when starting out
- Choose the right tools to constrain agent behavior
- Aim to only use prompts over writing code
- Plan out specs with prompts
- Factor out a library of reusable prompts
See AI Coding Plan
AI Coding Use Cases
Automating coding tasks
- Building entire web applications with unfamiliar technologies
- Converting programs to more efficient languages for performance improvements
- Simplifying and trimming down large codebases
- Writing initial experimental code
- Automating monotonous tasks and one-off scripts
Rapid prototyping and development
- Improving coding speed by 50% or more
- Quickly building proof-of-concept applications
- Iterating on designs through conversation with AI
Code optimization and refactoring
- Identifying opportunities to improve code efficiency
- Suggesting refactoring to simplify complex codebases
Documentation and explanation
- Generating code documentation
- Explaining complex code or algorithms
AI Coding Problems
Common problems with AI coding agents:
- Next Action Prediction
- Multi-File Edits
- Multi-hop Context
- Bug Detection and Debugging
See Cursor Problems
Traditional Agile
How will best practices for developing software evolve with AI? How you identify signal through the noise?
Traditional roles evaporate when solving fuzzy problems. The focus instead shifts to two main roles, customers and engineers.
Evolving Understanding
The primary goal is to gain confidence, surface issues, learn faster, and design systems that scale well.
- Ask dumb questions. Ask a minimum number of "dumb" questions every day when you join a new team. It surfaces important issues others were too scared to ask about.
- Learn git really well and don't learn a codebase through the code tab, start in the PR tab to see what is changing and why.
- Learn git early. The confidence from realizing making changes isn't scary is huge.
- Make it deploy, then make it useful. Deploy code as soon as you make it before building out all the features. It makes debugging and learning much easier.
- Aim for simplicity, simple architectures and designs tend to scale surprisingly well compared to starting with complex ones.
- Interview a lot, at least once every 6 months. Companies have an incentive not to promote you, so you need to know your true market value by interviewing elsewhere frequently.
Flow of Data
Understand how data flows through a system, how it created, stored, what impacts it's change of state, and who/what needs to know about that.
- Flow of Information: For information to be valuable it must be timely and actionable.
- Flow of Progress: The smooth, uninterrupted advancement of a project. Principles include clear process logic, synchronization, and minimizing waste. Practical steps to achieve this include defining clear steps and responsibilities and coordinating tasks and timelines.
- Flow of Value: The flow of value focuses on delivering maximum value to the customer with minimal waste. This involves value stream mapping, lean principles, and continuous improvement. Strategies include implementing lean methodologies and regularly assessing and improving processes.
Data is the new oil, and also must be clean to be valuable.
Teamwork
- Managers serve the team: Management inversion is important, where the manager (or "concierge") works for the team rather than the other way around.
- The age of agents is driving the need for new approaches. This involves programs running on behalf of users, making suggestions and assisting with tasks.
- Speed is crucial in solving fuzzy problems. The competitive advantage comes from being able to try ideas out quickly and aggressively.
- Trust is essential in creating a manager-less process. This includes trusting that programmers care, leaders will emerge, and problems will be solved without constant management intervention.
- The organization should have a delivery focus, with everyone supporting the goal of getting code out the door faster.
- Simplify Titles: Specialization institutionalized with titles can be a barrier. The speaker suggests creating new, more flexible titles for new projects to overcome this.
- Lead via Action: leaders still contribute to coding and other tasks rather than being full-time managers.
- Invest in Teamwork: Keeping teams together and bringing work to them is more effective than constantly reshuffling team members for each new project.
- Progress: Appraisals and coaching should be separated in manager-less teams, with coaching preferably done by outside mentors.