As a Scrum Master for diverse Agile projects, I coach software development teams over processes and tools. I monitor scrum processes and scrum meetings.
In one of my recent projects for Kualitatem, the goal was to set up a virtual assistant for a shopping mobile app, which could guide the user with product selection and related interests.
This feature is a subset of Artificial Intelligence (AI). AI processes typically have components of learning information, reasoning, and self-correction. AI has taken over a versatile range of industries in the last few years. Smart searches, voice to text features, automated online customer support and language recognition are all AI applications.
The virtual assistant for the shopping app should understand user preferences from their search and verbal expressions, direct the user to their desired products, make recommendations for alternative products, make payment calculations of items in the shopping cart, etc. The bot must recognize multiple languages and voice tones.
While the team was a talented group of developers, testers, designers, and engineers, they were all overwhelmed by working on an AI feature, as they had no prior experience of it. A little effort from my end into team building, quickly geared the team towards productive sprints.
Here are 3 tips that I used for coaching my team in dealing with AI apps:
1. Enjoy the impediments
A typical agile sprint involves planning, analyzing, building, testing and deploying features. However, for AI, development involves identifying data sources, gathering and curating content. Machine learning requires plenty of data, as the bot has to be trained to pluck relevant information and arrive at accurate conclusions. Fewer data will generate limited or biased results. In the case of the shopping mobile app, the data was centered on common questions asked by users. Dealing with enormous volumes of data is stressful as the tests will repeatedly fail until the bot goes through maximum data and thereafter addresses the user needs correctly. My first advice to my team was to not be afraid of failures as they were opportunities for learning. A journey is memorable only because of the labor put into overcoming the roadblocks. Team members gained the drive to proactively tackle the exhaustive testing processes to improve, refine and expand the bot.
2. Set clear goals
While the project has a long-term goal, setting a broad target for a sprint is not feasible. Have a measurable sprint goal. Make sure the goal feels like a doable challenge; it should be neither too simplistic nor unmanageable. For example, in the first sprint, data engineers can prepare data. They will write and combine algorithms and access unique data. A data model accommodates new data sources. The second sprint goal would be how to generate insight from the data. Begin the iterative process of data design and neural network model. In another sprint, start testing the bot to ensure it reaches the accuracy threshold planned.
3. Communicate positively
During peer code reviews in the feedback sprint, a few team members became judgmental of each other. It was important for me to remind them of nurturing an atmosphere of acceptance. As a team, you are not competitors but partners working for a common cause. If there is a performance metric, teamwork is one of them. It is best not to engage in bickering or be distracted by a leg-pulling colleague. Redirect your attention to the project objectives. However, we do not live in an ideal world and some clashes inevitably surface in human interactions. Escalate the issue to the Scrum Master, in the event your productivity is being impacted by a negative work culture.