The following is taken from Engineering Practices in Data Science. Machine learning project must have the following well defined (and followed!) phases:
data ingestion -> feature extraction -> training -> ensembling -> validation
“This allows disciplined data scientists to try out a lot more ideas than someone with a pile of spaghetti Python code”.