This is one of my favorite quotes because it's true. I have managed software projects for over a dozen years, and I have learned that nothing goes according to plan. Every project has a plan (even projects that don't have a plan have a plan – even if it's informal.)
Any number of variables that can go wrong (or not according to plan). You have assumptions that someone made that turned out to be false. Developers often overcommit what they can accomplish in a certain timeframe. Perhaps they don't have the skills and need to learn it, or something is more complex than it should be (which happens pretty frequently in software projects.) Then day-to-day emergency fires pop up and eat away the day. There are disconnects between the vision (the result) and the ‘devil in the details' (the reality) that often arises as you are designing software.
It's not uncommon that an executive wants to do X, and the team doing the work wants to do something entirely different.
AI projects experience these types of problems, but they encounter an entirely new set of issues based on the nature of the technology.
Reducing Risk of Failure
There are a lot of ways to reduce the risk of failure on any AI project.
First – target use cases that are commercialized. If you detect sentiment on tweets and link that to your customer support processes – there are many solutions on the market that support these cases. Existing models are likely available to support those tasks that can be leveraged and refined.
Second – stay away from controversial use cases. The worst area to target for AI is in the HR space because of the probability associated with lawsuits and the inherent bias in data. If you have an app that predicts which job candidates are screened, and it's trained on a white male workforce, well, be prepared for some problems. Data scientists aren't familiar with HR laws and this type of scenario can cause massive problems for a company if they inadvertently racially profile their candidates.
Third – be flexible in the beginning. You don't know the quality of your data. (You may think you know – but you don't.) So many sins are hidden in software development and dangers are lurking in every corner of the database. Be prepared that the first project may take longer. Be prepared that you might not have the data you need. Be prepared that people are different and that you may not be able to predict their behavior.