And in software, both work, as long as you're paying attention. Software isn't like rocket engine design in this sense, because you can still perform unit tests without incurring a huge cost, even if the units are the result of a carefully considered top-down design.
In any case, you begin to get into trouble if you're not clear on what your goal is.
Top down design: outline your goal system and work down to create the components (or usually one off custom made stuff) to create your system.