The Fine approach encapsulates our method of software development in the Software 3.0 era, a practice we follow within our team.
Design over coding
Software 3.0 presents in a paradigm shift: skills that once dominated our profession, like writing code, are now stepping aside to make room for often overlooked skills such as writing technical specifications and reviewing code.
At its core, Software 3.0 prioritizes design over coding. This approach frees engineers from the burden of dealing with complex syntax and technical nuance, thus creating space to focus on breaking down problems and conceptualizing solutions -- the very essence of engineering work.
In Software 3.0, AI operates the intricate process while humans ace the last mile. The typical workflow comprises the following stages:
Every task starts by creation of clear, comprehensive specifications. Specs serve as a contextual guide for the AI as well as a documentation for the intention and the thought process preceding code-work. AI can help with that, too.
Delegate to an AI Agent
These elaborate specifications are then delegated to an AI agent, who does the heavy lifting and generates most of the code. Each Agent has different set of skills and executes a different workflow (e.g. We may have a Python Agent, or React Agent, TDD Agent, etc.) -- therefore, different agents are optimized for different kind of tasks.
Like humans, AI agents also need feedback. The code generated by the AI agent undergoes a review by a human to ensure quality and alignment with the proposed specifications.
Some Agents may have an automated feedback loop strategy to build & refine the generated code.
Ace the last mile
The final stretch is where humans get involved. This stage involves making critical adjustments and adding the unique human touch, something beyond AI's reach -- and shipping to production.
The anatomy of an Agent
AI agents work best for us when they are configured to perform domain-specific tasks, equipped with tools and relevant context. We build Agents that are skilled in doing certain tasks (e.g. generating React components, or spinning up CRUD APIs) and familiar with our ecosystem and styling.
Here's a typical breakdown of an AI Agent:
- Identity: Each agent has a unique identity and a set of skills.
- Tools: Agents are armed with a set of tools required for task execution (for example, browsing a repository or 3rd party documentation). LLMs can also be considered as tools.
- Workflow: Agents execute a pre-defined workflow to accomplish tasks by using tools and LLMs. For example a TDD agent may have a workflow that involves writing a test, running it, and then writing the code to pass the test.
Bring the flow back
Software 3.0 is about redefining the Developer Experience. It empowers developers to fixate on problem-solving, liberating them from the tedious distractions of syntax errors and import statements. With Software 3.0, we don't just enhance productivity and creativity; we ignite it. We're not just improving the workflow; we're bringing back the flow.