AIDD Manifesto

Alberto BasaloAlberto Basalo
5 min read

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

Human in the Loop

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

AI Quality

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.

0
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.