This is the introductory post for a blog post series detailing HTEC’s first-hand investigation into the feasibility of delegating the development of full-fledged software solutions to AI tools. The series will span HTEC’s experiences with relying exclusively on AI tools through all stages of the software development process, from defining initial software requirements, system architecture and design, source code generation (services, UI, and testing), all the way to deployment and the generation of technical documentation.
The potential of AI in a wide range of human endeavors is simply transformational. For the first time in human history, we have created a tool that is undoubtedly smarter than us in many areas and getting smarter by the day.
Artificial intelligence possesses an immense body of knowledge, unlimited memory and recollection, and an ability to learn and evolve at a pace unattainable to humans. It can provide answers and perform complex tasks faster than any human, or a collective of humans ever could.
All of these qualities can provide tremendous benefits to software development. Virtually all software engineering organizations are already exploring and/or actively adding AI tools to their processes.
AI technology is evolving at a rapid pace, but it is still not perfect or equally suitable for all stages of the development life cycle and still requires a great deal of human intervention to achieve satisfactory results.
Al of the previous statements are universally acknowledged and accepted. But looking beyond commonplace statements, what exactly are the limitations of AI tools, and how far can we take a software solution relying solely on AI tools? At HTEC, we set out to find answers to these questions.
The idea
To see how far AI tools can take us, we devised a simulation project that would match the scope and complexity of some of the biggest projects ever done in HTEC, involving a high number of variables and requiring a sizeable staff of software and QA engineers.
For the purpose of the experiment, we chose to treat AI tools as a substitute for a sizeable software development team that could cover all stages of the development process. We would rely solely on AI tools to generate the system design, documentation, and the source code itself.
As we feel that human supervision remains the crucial factor to the successful utilization of AI tools, we chose one of our most senior and experienced solution architects, Zoran Vukoszavlyev, to guide the AI tools through the development process. As a software architect with well over a decade’s worth of experience, Zoran has successfully guided teams on complex projects. In a role not too different from his everyday work, Zoran would be responsible for all major decision-making, while AI tools would handle all technical aspects of the development process under his guidance.
The AI tools selected for the project simulation are Claude AI and Amazon Q. Both are widely recognized as industry-leading AI tools for code generation and HTEC’s independent investigation has supported this consensus opinion. We opted for a limited number of AI tools as the goal of the experiment was not to produce a benchmark or a comparison matrix for a large number of different AI algorithms.
The framework
To conduct the experiment, we opted for an iterative approach that would attempt to improve the solution through repetitive efforts, allowing us to analyze the results of each iteration and refine our instructions to AI tools for better outcomes.
We entered the experiment with no predefined expectations, apart from three basic assumptions:
- AI models can save time and resources.
- Human refinement will be needed.
- Agile and testing strategy must be refined
While the first two assumptions are self-explanatory, the third item needs a bit of clarification. Even though the experiment substitutes a development team with AI tools, we felt that an Agile process and a testing strategy are still needed, albeit in an adjusted form. Traditionally, software development is done in smaller chunks, where we have an idea, then develop, validate, and repeat that process over and over again following Agile methodologies. Creating outcomes takes time, whereas with AI tools we can generate these outcomes almost instantaneously. This is why we need to reevaluate everything and formulate a different approach. Zoran has dubbed this new approach horizontal excellence.
Horizontal excellence
The Horizontal Excellence framework serves as a sort of process map for developing software with AI tools, defining the consecutive stages of the development process:
- Requirements
Based on stakeholder input, AI tools are used to finalize the requirements, including functional and non-functional roles.
- Architecture
Once we have solidly defined requirements, we can generate the software architecture. The outcome of the first two stages would be a design document which can be presented to the customer.
- Contracts
If all parties agree that the design document is ready to go, we can start thinking about the APIs and the contracts between the software components. The outcome of this process is an API document.
- Implementation: services
With the system design completed, we can start generating the source code of the services.
- Implementation: UI
We will also attempt to generate the source code for the UI. We are somewhat skeptical about the current potential of AI tools in this specific area, but also curious to see the results.
- Implementation: tests
While manual evaluation and review of AI-generated source code is vital, automated test scenarios are also necessary.
- Implementation: deployment
AI tools will also be tasked with generating automated deployment scripts .
- Regulatory documentation
Our project simulation involves a high volume of regulatory papers. This is an area where AI could provide tremendous savings in time and resources, as complex regulatory documentation requires both a high degree of expertise and substantial time to produce.
It is important to note that the presented framework is not necessarily in its definitive form. It is a starting point for the research, and it may be revised and modified based on our experiences with implementing AI tools into our processes.
The goals
The primary goal of the experiment is to investigate just how useful AI algorithms are through each stage of the development process, and measure how much manual work is needed to come up with a satisfactory solution. We are approaching the research with an open mind and without any predefined outcomes.
We believe that the experiences gained through this experiment will be immensely valuable for the continued evolution of HTEC’s internal AI strategy. The research was envisioned, coordinated, and supervised by HTEC’s Tech Excellence Office, and its findings are reviewed and evaluated by a committee of solution architects throughout its progress.
Ultimately, the insights gained through the experiment will inform a manifesto—a guidebook on how HTEC interacts with AI tools in the development process.
The pathway to efficient and impactful implementation of AI tools into software development
Over the coming months we will present HTEC’s experiences with AI tools through different stages of the development process. These experiences will paint a clear picture of the current strengths and limitations of AI tools spanning the entire software development life cycle.
We believe that our findings will provide us with a pathway towards efficient and impactful utilization of AI resources in our development practices. This in turn unlocks a plethora of benefits both for our development teams and our clients, from accelerated time-to-market and reduced costs to optimized processes and improved outcomes that eliminate human error and reduce the need for excessive team management.
AI-assisted software development is already here, and it will only grow in scope in the future. As technology continues to evolve, so must our practices. HTEC is dedicated to harnessing and maximizing the power of AI by establishing the highest standards of technical excellence and both defining and embracing the best practices of utilizing AI tools to engineer better products faster.
Stay tuned for the next article in this blog series.