Developing your own games...
So, if you have access to a good developer take advantage. How do you know if someone is a good developer? Well for starters they won't pull any punches when they explain what's wrong with your game. So if all your friends tell you your game is awesome, you probably don't have a good developer friend. But if one of them tears into it a bit... pay attention. At the very least they are probably good playtester and depending on the details of their feedback they may be a good developer.
However, there is a dearth of good developers out there compared to the number of games that need development so sometimes if you want to get a game finished and published you need to be able to self-develop. This can be tricky as you still need that distance to make good choices as a developer.
So what is the best way to get that distance? Stop working on the game. Start something else for a while and when you've forgotten how the game works or at least a few specific rules, then you can come back to it with fresh eyes. With a developers perspective. You may eventually get to close again, and if so you can repeat the process.
Assuming you have a project that has been sitting for a while and you have established some distance, what now? Play the game, from the rules, not memory. Or better yet, put it in front of someone who has never seen the game before and watch them play the game without any help from you. Take note of everything that felt unnatural or that your tester(s) does wrong. Especially if they do it more than once. That means it felt right to do it the way they did it. Did it break the game? If not, maybe that is the way the game should work now. Especially if it feels more natural. Rules that feel natural and intuitive are easier to remember. Were the testers constantly going back to the rules? Sometimes the same rule multiple times? You probably need to clarify or simplify the rule so they understand it the first time. In short, you are going to test and iterate.
You may consider a few thing. If you can take a mechanic out of the game and not seriously affect the gameplay, it should be removed. If players consistently do the same thing the first few turns, make that part of the setup. If you can abstract something without losing the impact of what you are abstracting, do it. Basically, do not be afraid to make changes. If something doesn't work, you can always go back to an earlier version of the game. But if you never try something you will never know if it works, and your game may be weaker because of it. Oh, and speaking of earlier versions, archive earlier versions in case you have to go back to them.
Okay, so let's assume you aren't afraid to make changes. Excellent. But, be careful not to change too much at once. If you do that and the game breaks you won't know what broke it. Change one thing at a time if you can. You should only change more than one mechanic if the mechanics being changed are dependent on each other. If you have five mechanics you want to change, change them one at a time and see how it affects the game.