How to Develop a Map That Works

For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.
This page is intended to give advice to the fledgling mapper about how to start a map so that it has a better chance of being playable in the end. It does not go into any technical detail, so you should follow other pages to become proficient in the basic construction of a Source level first.
Planning on paper
It's much, much harder to change the fundamental layout of a map once you start adding detail.
Don't touch Hammer. Always start with pen and paper. Sketch up your basic idea, drawing on real-life environments you've seen, but recognising that - if reproduced precisely - most real-life environments would make terrible gaming environments. Then think of as many variations on that as you can. If you're constructing a Counter-Strike map, think about where the meeting points will be (when the two teams see each other for the first time). Think about snipers and campers. Think about bombsites, their accessibility and defensibility (both for the CounterTerrorists and Terrorists). Think about visibility, both player to player (when players can see each other) and player to world (how much world is going to be rendered for the player as they move around).
Building
It is a good idea to concentrate on the layout of your level, and apply textures & lighting afterwards. Create the basic map structure using dev textures (type "dev" in the filter box) and big, simple blocks. For a Counter-Strike map, place some spawn points, some buyzones and some bombsites. No stairs, just ramps.
Optimization
For Counter-Strike maps, consider optimization during every step of map creation. Make sure Snap to Grid is On. Use the Carve tool cautiously (don't use it to carve odd-shaped holes). Reduce the size of your grid for detail work so you can still Snap to Grid. Make use of the nodraw tools texture for brush faces that will be hidden. Do not overlap brushwork. This isn't to say that you should actually start optimising your map now (adding hint brushes, portals, etc) but you should be mindful of the concepts mentioned here so that your map is constructed optimally and doesn't hinder optimisation later.
Fire the map up and see how it flows. Make sure meeting points are timed correctly. Make sure visibility works the way you intended. Make sure spaces feel the way you intended.
Multiplayer Game Balance
Then unleash 20 bots on the map, and let them go at it for an hour. If the result of that comes out significantly in favour of one side or another, try to figure how to re-balance the map. Watch where the bots meet up, or see whether there's a camping or sniping position that you didn't think of that gives one team too much of an advantage.
Once you're sure that the map works correctly, then you can start thinking about making it pretty by adding textures, details, props, sound, etc.