For me, the process generally goes:
(On paper)
- Figure out in broad strokes what stuff should go in my level. Which enemies, environment type(s), obstacles, items, ect...
- Create an outline with brief descriptions of individual sections of the level, describing the purpose of that section, and trying to never repeat myself. For example: "Introduce ranged enemy", "Introduce melee enemy", "Ranged enemies on other side of chasm", "many melee enemies", "combine ranged enemies and melee enemies", ect...
- I'll probably also sketch some diagrams of these sections.
- If the game is has some non-linear navigation, I'll sketch a map of the whole area and label the sections.
(On computer)
-Block out the level with all the sections from the outline. Just include enough detail so that you can read functional things like where you can walk and where you can't walk.
-Test out the blocked out level, alter as needed
-Do a visual pass on the level. If I'm working with tiles, this means getting all the walls, ground, pits, ect... looking right.
-Test, alter
-Do a second visual pass for aesthetic details
-Test, alter
Don't be afraid to stray from the outline that you wrote, either in removing sections that don't work, or adding sections that you think up while playing around in testing. But it's good to have that outline as a starting point.
(Obligatory link to the articles I wrote on my website about level design:
http://renegadesector.com/level-design-primer/ )