“Tesco Labs placements is a program where graduates work in teams on assigned mini-projects under the Tesco Labs team. The purpose of this exercise is to build teams, understand a range of problems and challenges faced by the business, and ideate around them with the aim of developing a prototype solution.
Phase 1: Understanding the Problem
We were given six problem statements, and spent our first week understanding these problems. Having developed some understanding of the business and existing processes, at the end of the week we were assigned the problem of making recruitment process more efficient.
Phase 2: Ideate, Create an MVP
After delving into the problem statement, our team came up with a few ideas; which ranged from ways to better extract information from resumes, to creating an end-to-end solution for recruiters. We reached the consensus that the purpose of our minimum viable product (MVP) should be the development of a chatbot which would be able to answer retrieval based questions promptly, whilst also profiling and archiving users for future reference. In my experience of applying for roles, I’ve found that waiting for replies from recruiters can become frustrating – our use of chatbots aims to ease that pain and improve the user experience.
After a lot of online research, we came to a conclusion that the chatbot industry is still in its infancy; there is no well established framework, and players are competing against each other. With the current hype around chatbots, the team were hopeful that this would open up a world of possibilities for our work.
Phase 3: Build
Prototyping is a way to test our idea with a small scale implementation. We worked for four weeks to develop the prototype of our chatbot. On a personal level, through our team work I’ve been stretching myself to check on everybody’s progress to see if anybody needs help. I had to think of various events and tasks so that we could divide the work fairly, which is something I have never done before, and at times it was quite difficult to convince fellow team members to do something. I soon realised that anything proposed has to be backed by the proper resources to justify that ask.
On another note, it’s hard to digest the call back concept of Node JS when all you’ve played is with CPP and Java. Node JS was new to my teammates, and a number of times they ended up writing sync functions and returning values which required asynchronous computations. I was happy to take the role of teacher, and help them understand the essence of call backs.
For the bot itself, we used Microsoft’s bot framework. The advantage of using a framework like this is that it comes with a lot of developed, tested, secure and optimised code which speeds up the process of development. Since a framework has a developer community around it, the chances of scaling and finding help are much improved, but my team and I found it difficult to get relevant answers to our questions related to the bot framework. If you look into questions on stackoverflow tagged “botbuilder”, you won’t find more than 100 questions, so we had to ask a few questions on stackoverflow of our own – but I am glad that we could add to it.
We did come across a few challenges in the process, which started with the lack of time. I always try to find best possible solution to a problem and write elegant code, but soon realised that in a few cases, it is wise to compromise. Sometimes it’s about getting things done. Hovering through various blogs on chatbots, I realised how mind maps can be helpful to impart a common understanding to the team, but since we had little time at hand we had to start digging. We couldn’t draw mind maps.
I also realised while writing code/building, how easy it is to forget our goal. Our team found standup meetings important to keep the us on track for the final goal.
We made sure to follow some of the good practices mentioned in the botframework’s documentation. Like narrowing down the user choices to broader questions like “how can I help?”, which gives users a perspective of what the bot can assist them with. Such suggestions help the users make decisions quickly and properly and are therefore regarded as an industry best practice. We also added carousels to enhance the users’ experience.
On a sidenote
During the build phase, we had to nominate people from other teams and acknowledge the help that we get from our peers every week. I was eager to be the resource guy. And on second week people acknowledged that I was of great help. The Bot industry is still in its infancy and there is great potential in it. Working on this was an enriching and motivating experience for me.
It was fun working on the Labs placement, and I learnt a lot. During the development our team clearly felt there was a need for a more integrated and common platform for communication like Facebook or LinkedIn. If appropriate to the business, we think that this project could be taken forward in the form of a Facebook Chatbot or an independent bot that could be integrated with our company’s official website. Thanks to the Labs team for giving us the opportunity to work in this way and explore these options!”