Traditionally software development has begun with gathering the requirements. This is and always will be a very important step in software design. How can you ever hope to build a successful application unless you first know what the client wants? So you start meeting with different users and stakeholders slowly collecting requirements and features that the new application should have. More times than not this process produces a list of requirements or sometimes a multilevel list showing the different areas of the application and how they may relate to one another. Now the architect takes the requirements and, using his or her experience in software design, starts to decide just how the application should be built, what structured and what foundations it may need for today and in the future. At this point the developers can start coding up the new application following the structure the architect has provided while meeting all of the requirements from the clients. Now we have a functioning application but it just doesn't look real pretty. Coders are usually more concerned about the esthetics of the code rather than that of the screens. So the process of applying look-and-feel begins.
But instead of waiting until the end of the project cycle to apply the look-and-feel why not start with that. Making mockups can be fast and simply, sometimes as simple as paper and pencil. But there can be a big difference from drawing what you would like to have verse trying to make a list of what you would like. When listing items and features out it is all too easy to miss things. With a visual mock everything is right there in front of you. If you don't see it, it's not included. Also the usability of the application is addressed up front. Not only are you defining how everything should look, you are also defining how the different pieces should work with each other. Usability is often the most important thing to the end users. Whereas the code is the most import thing to the developers. Now the architect and developers can work from the mockups and deliver exactly what the client wants and nothing else. Because for better or worse a lot of code is written because you may need it later or in order to make extending the application easier in the future. But truth be told often this extra code is never truly needed. Start with a good visual design and everything else will fall into place.