In the world of software development, Generative AI has been a topic of both excitement and concern. Its potential to automate and enhance various aspects of the development process raises questions about its impact on the developer community. As developers, it is crucial to understand the reality behind the hype and explore how Generative AI can be effectively utilised in real-world project scenarios.
In this blog series, we capture our process and learnings from an experiment to develop a time-tracking application using Generative AI tools. (We have extended this experiment across various stages of software development cycle and documented our learnings for business analysis, software architecture and domain-driven design.)
Our objective was to gain insights into the capabilities and limitations of generative AI in different phases of software engineering. By diving into each phase, from business analysis to infrastructure, we aimed to uncover the potential applications and challenges of integrating Generative AI with the development workflow.
Method of Experimentation:
To conduct our experiment, we leveraged the prompting strategy suggested by deeplearning.ai’s ChatGPT Prompt Engineering for Developers course. Prompt engineering involves designing prompts for large language models to generate desired outputs. Developers can utilise OpenAI’s API to interact with the models and apply prompt engineering techniques to enable the creation of robust and effective prompts that interface with language models and other tools.
Jupyter Notebooks served as our primary tool for generating prompts while OpenAI’s powerful GPT model with chat completion’s endpoint in Python provided the backbone of our AI-powered development process. We followed a systematic approach, focusing on each phase of software engineering to assess how Generative AI tools could be incorporated.
Our journey began with business analysis where we employed GPT to identify high-level business objectives for our time-tracking application. Subsequently, we utilised prompt engineering techniques to figure out what could be the tech stack and architecture, etc. By employing GPT’s chat completion API, we engaged in interactive conversations, swiftly generating ideas and high-level requirements to kickstart the analysis process.
Through this series of blogs, we will share our findings and experiences from each phase, shedding light on the possibilities and considerations when integrating Generative AI into the software development lifecycle. By doing so, we aim to provide the community with insights for harnessing the potential of Generative AI effectively.
Stay tuned as we delve deeper into each phase and uncover the transformative power of generative AI in software development.