What are the steps in algorithm development that freelance developers should follow?