I would like to implement enemy movement on a X-Y grid. Would it be a good idea to have a predefined table with an initial X-Y position and a predefined "surveillance path"? Each enemy will follow its path until it detects a player, at this point it will start chasing the player using a chasing algorithm. According to a friend of mine this implementation is good because the design of a good path will provide to the user a sort of reality sensation.
It all depends on the kind of gameplay you want to achieve.
If you want a game that's all about finding the best strategy to finish a level, then this deterministic approach can fit very well, as accomplishing the same actions will always lead to the same results. Random behaviors could just be an annoyance for the player.
But if you want an action-oriented shooting game, you might want to introduce some randomness to give your game more replay value. If your game is all about aiming well and shooting fast, it can get boring to get the exact same enemy configuration for each play-through.