I love cucumber. When you join the development of a project it's a great place to start and learn what the project is about.
The whole 'customer writes features' thing never worked for me either, but just having it as automated specifications for my projects makes it very valuable for me.
Customer writes features may not work. But writing features and asking customers to confirm that the description matches their expectations works a lot better.
I've used Cucumber for years, and I've never had a customer write a feature. Customers reading features after I've written them and checking them works much better in my experience.
If I go to my stakeholders and customers with Spec or Unit code, and ask them: "Does this test represent your idea of how this feature should work" I'll get no useful answers.
I can read it to them, or we could collaborate on a user story that doesn't get directly mapped to tests, but then we have room for the interpretation/translation process to create the wrong assumptions in the test code.
There are plenty of tests I'd never show the customer because they involve implementation details, and those aren't going to be written in Gherkin because I don't hate myself enough to juggle that many regexps.
The gherkin language is nice to describe features. I've worked in environment where business analysts did exactly that. As for making them executable scenarios... this never panned out for the reasons described in the article. It doesn't add any value.
The whole 'customer writes features' thing never worked for me either, but just having it as automated specifications for my projects makes it very valuable for me.