The development of chatbot software requires an understanding of software engineering and of AI programming, along with the use of data sets in order to train the AI system. Additionally, designing a conversation based on an understanding of NLP and linguistics, as well as operating according to a defined business model and strategy are all required.