The developer who wrote the feature is the best person to write the automation. Because of this, I would suggest that the most effective practice is to have a tester assist in identifying which test cases offer the most value and specify the parameters. From there, the developers can implement those test cases.