A couple of years ago, a friend and I were debating about how to implement a function for a website, one that we were working on for fun. I came up with an elaborate, thorough way to do editorial reviews of user submitted images. Needless to say, it would have required many more coding hours to implement than not doing editorial review at all. My friend then said, “Why do we need a computer to do this? Can a human do it” He was right. A human can do the job for the short-term and if the work load becomes overwhelming (which is a good thing), we could consider automating then.
When I think about some software problems, I often think about what steps a human would need to take in order to do the tasks manually. I often get more clarity about how to tackle a problem one way then I can think more about how to optimize with the help from machines. I’d like to think that using humans is a good option to go to market faster so that you can ship, learn, iterate and repeat. Google hired people to scan books in libraries and hired people to drive with cameras on top of the cars. Now people can do a Book search and see a Maps street view of many locations.
Question the need to “automate” a function if there is some runway (e.g., no to little users) before the function needs to scale (e.g., many users galore).