The workflow I believe is one where by you create your game object(s), configure them as you would want, this is done using the Hierarchy so that you can see them actually in the scene, giving you the ability to interact/view etc.
The practice of creating a prefab is really just a way of storing a kind of cookie cutter, so that you can make one or more clones of the same game object(s) later.
You could of course just right-click and choose “Create Prefab” but you would still need to drag some form of game object into that in order for it to be of much use.
The point here is that you are designing the thing that you want to turn into the cookie cutter. Once that step is done, you now have the cookie cutter to use to make many cookies… or, in this case, enemy space ships.
For example, I could create an enemy spaceship here for you, package it up and send it to you, you could then drop it straight into that exposed GameObject field and use what I had created. Your code would still run as it should. You could then switch back very easily to your own enemy spaceship prefab by dragging yours into the exposed property.
The prefabs are just for storying game objects with their specific components and properties.
Hope this is of help.
See also;
Unity - Manual : Prefabs