A benefit and drawback of writing software to replace an antiquated process, is adding new functionality. The less obvious part about it being a drawback is simply do to education.
I have been thinking about this ever since I recently used one of the new(ish) soda machines produced by Coke. The older soda machines just had pictures and a lever, simple enough! The new one has more than the typical 10 sodas - it has dozens. While, this is exciting, how do you show the user all this information? You could have them all in a scrolling line very similar to what was before. However, this is incredibly ineeficient.
How about a search? Filter by brand could work. Everyone recognizes the logos of their favorite drinks and can click to see all the options. For those who have used one of these machines, this is what they do. This is familiar because at the grocery store you search for a brand then look at the options. At a restaurant you can also ask, “what flavors of lemonade do you have?”
This works really well if you roughly know what you want. But what about the person who wants to explore the options? Before they could just scan, but what about now? Are they supposed to click on every brand to see if matches what they want? To fix this, they added a search by fruit option. You can click an option from grape, strawberry, orange, etc. and see all the drinks that match that flavor profile.
If no one had ever used a drink machine before, this would be a grat feature, but it’s confusing to look at soda options from an abstract perspective of fruit before knowing the taste. And really it does not accomplish more than filtering by brand because if I know the flavor I want, I know typically what brand to get it from.
My point is I believe if the user is going to be forced to use software in a new way, the benefits should outweigh the cost of learning/confusion.