AIDD Manifesto


Software development is undergoing a radical transformation with the advent of AI models. As any disruption generates uncertainties and concerns. In this case, two very clear ones have been identified:
AI destroys jobs by replacing the role of the developer.
AI generates solutions that are wrong, incomplete, or unmaintainable.
This manifesto sets out two fundamental principles to create confidence in the use of AI in software development, leading us to meet the following objectives:
The Human is strategic, collaborative, and accountable.
The Development is productive, maintainable, and of high quality.
♻️ Human-In-The-Loop
AI can speed up processes, suggest solutions, and detect bugs, but the human role is irreplaceable. As a developer, your primary responsibility is to lead, collaborate, and supervise. Let's see how you can maximize this approach:
Start with Purpose and Goals.
Before using any AI tool, define the “what” and “why” of the project. It's not enough to ask the AI to “do something”; you need to lay the foundation for the work.
Your role begins long before the first line of code. As a human, you have the unique ability to:
Understand the real needs of the business and users.
Define clear and measurable objectives
Establish the strategic vision for the project
Define the non-functional requirements
Bring Context to Requests
AI works best when you understand how to formulate your requirements. Clearly describe the problem, provide examples, and point out constraints. For example, if you need an optimized algorithm, specify use cases and time or resource constraints.
AI is powerful, but your context needs to be truly effective. When you interact with it:
Provide information about the technical and business environment.
Explain existing constraints and limitations
Share knowledge about end users
Define specific use cases
Collaborate, Guide, and Learn
Consider the AI as a co-worker. Evaluate their suggestions, ask questions, and iteratively improve answers. In addition, collaboration with AI offers you an opportunity to learn new perspectives and approaches.
Development with AI is not a one-way process. It is a collaboration where:
You drive the iterative development process.
Refine AI proposals
Learn new techniques and approaches
Share your domain-specific experience and knowledge.
Decide with Responsibility
The final decision always rests with you. The AI does not understand the full human context nor the ethical or commercial implications of your answers. You are the one who validates and approves the final result.
The final decision-making always rests with you. This involves:
Evaluating the alternatives proposed by the AI
Considering the ethical and safety implications.
Assuming responsibility for the generated code
Maintain control over the direction of the project.
Trust but Verify
Although AI tools are often accurate, they are not infallible. Always review generated code, suggestions, or automatic results. Rigorous reviews ensure quality and avoid critical errors.
Verification is essential. Your role includes:
Reviewing AI-generated code.
Validating that solutions meet requirements
Perform exhaustive testing
Ensuring the quality of the final product
The human is a strategist, collaborator, and accountable.
✅ AI Efficient Quality
AI-driven development must focus on producing software that not only works but is also reliable, maintainable, and scalable. Below, we break down the key principles:
Comprehensive and Applicable Throughout the Cycle.
AI can not only help you in coding, but also in testing, documentation and deployment. Leverage its potential at all stages of the development cycle.
The approach covers the entire development cycle:
Planning and architectural design
Implementation and coding
Testing and QA
Documentation and maintenance
Deployment and operations
Kaizen: Iterative Refinement
Embrace the philosophy of continuous improvement. Every interaction with AI is an opportunity to refine the product. Request reviews, iterate on solutions, and constantly look for ways to improve.
Iterative refinement is key:
Each iteration improves quality.
Feedback is continually incorporated.
Optimize the development process
Learn from mistakes and successes
Maintainability: Design and Documentation
Code without documentation is forgotten code. Use AI to generate comments, diagrams, and guidelines that make your software understandable to other developers (and to your future self).
Code must be maintainable from day one:
Clear and well-documented architecture
Appropriate design patterns
Clean and readable code
Complete and up-to-date documentation
Robustness: Error Control and Logging
AI can suggest patterns to handle errors effectively or set up detailed logging systems. Prioritize a design that anticipates failures and keeps clear logs to facilitate debugging.
Error handling is critical:
Comprehensive exception handling
Detailed and useful logging
Effective monitoring
Failure recovery
Reliability: Validation with Testing
Never assume that AI-generated code is ready for production. Design unit, integration, and performance tests to ensure that your software meets the required standards.
Validation must be rigorous:
Complete unit tests
Integration testing
Performance testing
Security validation
Development is productive, maintainable, and of quality.
🌿 Conclusion: A New Development Paradigm
The Manifesto AIDD establishes a framework for leveraging the best of both worlds: human creativity, experience, and judgment, combined with the efficiency and capabilities of AI.
As a developer, your role is more important than ever. You are not replaced by AI, but empowered by it. Your responsibility is to guide the process, make informed decisions and ensure that the end result meets the highest quality standards.
The key to success lies in maintaining a balance between the efficiency that AI brings and the quality control that only a human can provide. This manifesto is your guide to achieving that balance and creating exceptional software in the age of AI.
Subscribe to my newsletter
Read articles from Alberto Basalo directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Alberto Basalo
Alberto Basalo
I am a full-stack developer with over 25 years of experience. I can help you with: Angular and Nest architecture. Testing with Cypress. Cleaning your code. AI Drive Development.