What I’ve learned is no matter how you go about it. Try to:
Avoid unnatural naming, and make sure whatever taxonomy you choose works. Personally I use (room name-whatever my wife calls this thing). It usually results in names like Kitchen overhead light or living room fan and my not necessarily be what I would have called something but I’ve never had her complain about what something is called nor has she had problems with voice commands.
Don’t unnecessarily complicate your system. Just because you CAN add something doesn’t mean you should. Half my devices have skills in Alexa or GH but I haven’t installed the skills because doing so creates another device that complicates the device naming… I have a Fireboard thermometer for my barrel smoker. It’s linked through Alexa and does what I need very well. I originally thought I needed an integration to ST. But thought why? What would it do for me and then didn’t do it. The corrilary has also happened… I have my Xbox in ST with a Harmony activity but then needed to enable the Alexa skill so I could login to the Xbox with voice. (and a weekend of comedic device renaming ensued)
Try to keep your automations in one place.
Some (like me) love webcore and others hate it. That’s fine. Just pick one format and stick with it unless you have a specific reason. Trust me. Nothing sucks worse than trying to figure out why a device is doing something when you have automation for 200 ‘things’ spread across seven automation platforms.
Don’t be tied to local, but plan for it.
No way around it, ST is a cloud system. Sometimes the internet is not available. If. You haven’t planned for the eventuality, one day you will get a phone call from your wife when she can’t disarm the security system… You don’t have to move off the platform to something like Hubitat to avoid these issues but it does take a lot of planning.
Avoid unnecessary hops…
With cloud to cloud integration possible you could setup really complex chains of things tied together with things like SharpTools or IFTTT… That’s great, just remember each integration has its own potential issues and difficulties troubleshooting. Reduce the number of hops to the absolute minimum to keep consistency.
Thats just a few, but I consider them every time I’m adding something new.