Agile is a software development approach that has become very popular of late. Agile emphasizes flexibility, collaboration, and continuous improvement. Scrum, based on Agile values, principles and practices, is one of the most-used project management frameworks for Agile-based development.
The Scrum framework has four dimensions to it. 1. An incoming prioritized backlog of user requirements (product backlog) (this is a dimension external to the scrum);2. The roles and players associated with the development; 3. Sprints or the actual development process; and 4. Scrum events like daily scrum (standup); sprint review; and retrospective. (2,3 and 4 are dimensions internal to the scrum)
Artificial Intelligence (AI), has over the recent years, become a game-changer in software development. AI-based systems like ChatGPT can be used by software development teams to increase their effectiveness and efficiency.
In this article, we will look at how we can leverage a system like ChatGPT to be used with the Scrum framework to improve the effectiveness and efficiency of the three internal scrum dimensions.
(The term ChatGPT can mean that for any similar AI system. ChatGPT is used here since it is now the most used and most well-known such system).
Dimension 1 – Product backlog (not covered in this article)
Dimension 2 – Roles and players
ChatGPT can assist in defining the various roles in the Scrum framework by providing help in clearly understanding each role and its responsibilities and expectations from it. It can assist in understanding the qualifications and skills required for each of these roles in the team or organization context, so that the right candidates can be considered for each role. ChatGPT can also help in the interview process for selection by formulating appropriate questions to be asked for evaluating candidates for the roles. ChatGPT can also assist in providing training and resources to support the development of Scrum roles.
Dimension 3 – Sprints/ development process
First and foremost, ChatGPT can help with project management. Setting of project goals, setting priorities, and selection of tasks by team members can be done with the help of ChatGPT. ChatGPT can also generate project reports, help track progress, and provide real-time updates on project status. This not only saves time but also ensures that everyone is on the same page, leading to better collaboration and teamwork.
Another key role that ChatGPT plays is in refining various artefacts incrementally.
Thus ChatGPT can help in iterative articulation of stories and epics refining them each time. Team members responsible can ask progressively relevant questions with feedback to arrive at the most appropriate story or epic to their satisfaction.
Another key aspect where ChatGPT can help is User Interface (UI) design. UI that is intuitive and easy to understand and use is a critical aspect of software design that helps create a good user experience and value. ChatGPT can help with generating and refining good design ideas and negotiating different ideas with users and picking the best one. ChatGPT can also help in suggesting and refining accessibility as required by the users and industry standards.
After the above two steps we have a user story that can be developed into code.
The next step is developing code. It is at the core of any Agile sprint. ChatGPT can help developers by generating code snippets (including non-functional aspects), and offering suggestions on how to optimize code performance. Thus generation, refactoring, testing and debugging, optimization and version control of code can be done highly efficiently and effectively with ChatGPT. The code can be progressively made better through iteration by asking more and tighter questions of ChatGPT. This saves development time and ensures that the code is of high quality. Again, iteration can give the best code possible under the circumstances. It is to be noted that the model can learn from the the ‘expertise’ of the team and need fewer questions over time. This will also help leverage the scarce expertise of seniors.
Unit testing is also an activity where ChatGPT can help. Test plan creation, test case design, helping with the test execution, defect reporting and tracking and debugging are all areas that ChatGPT can supplement the work of testing tools. These processes can be made better and better refining them with ChatGPT interaction.
After this step we have tested code (the increment) ready for integration with the main system.
Moving on, ChatGPT can help in the creation of integration plans in an iterative manner, integration testing and version control. Continuous integration and deployment is a further aspect that can be done with the help of ChatGPT.
After this step we have the increment ready for deployment into the mainline system.
The next important step where ChatGPT can help is deployment. Iterative release planning is one key area where inputs from ChatGPT can be crucial. Key areas like deployment environment setup, user acceptance testing, and rollback (if needed) and monitoring post deployment – all these are areas where the AI tool can provide valuable insights.
At this stage the increment has been integrated and deployed.
Another area that has relevance to all these steps and where ChatGPT can help is test automation and deployment automation. Creation of systems/ scripts that help with this can be done very efficiently with help from ChatGPT.
Dimension 4 – Scrum Events
ChatGPT can also be used to help facilitate scrum events like standups, reviews, and retrospectives.
Standup meetings are an important part of the Agile development process, as they help teams to stay on track and ensure that everyone is on the same page. ChatGPT can help communication during standups, prompt team members, identify blockers, improve collaboration and thus improve the focus of the meeting. It can also help support the documentation of the process.
It can also help in sprint reviews. Analyzing sprint metrics, identifying trends and patterns, provide insights and analysis of feedback by team members, and give feedback on sprint goals and their achievement. Of course, to achieve this, some integration with other systems and the ability to gather and process data across systems would need to be built. Teams may choose the level of automation based on their contexts.
ChatGPT can also help in events like retrospectives. People can reflect on their work using inputs from ChatGPT. It can be used to analyze data and generate insights into what went wrong and what went right and thus improve future sprints. It can be used as a tool to encourage meeting participation. ChatGPT can also possibly generate some trigger questions and capture the team responses. ChatGPT thus helps in the continuous improvement of the sprint process.
It can thus be seen that an AI tool like ChatGPT can be used for increasing the effectiveness and efficiency of all the internal dimensions of the Scrum. In addition to the above, generative solutions can help in the better articulation of requirements, making sure that dependencies are called out and possibly simplify the activities of prioritization and planning.
Thanks to our ShivG for reviewing this article and suggesting improvements.