When I introduce Monoids, Functors, Semilattices to some people at my work their main criticism is that you don’t need it and it’s “just a different way you move the code around.”<p>Now I operate as a product engineer as well as a software engineer and I get that the business has needs that need to be satisfied. However I am convinced myself that in order to handle complex state changes you will need to think about FP and ADTs to some degree.<p>I’ve even built my own in-house FP/ADT framework that I plan to sell people on.<p>My question is for those who run into these types of people — “You don’t need FP or ADTs the end user does not care about how the code is structured” — how do you convince these people that there is inherent product and engineering value here?