Xsane is a solid program with tons of options, but it did take me at least 15 minutes to figure out how to use it the first time, and I am constantly fiddling with the settings. The default dpi for Xsane is set to 75, so you will need to increase that value to at least 300 if you want good image quality. The interface of Xsane reminds me of Gimp. It has lots of little windows and tons of options which are hard to understand. I much prefer a single unified window, where I can see everything at once.
My biggest problem with Xsane is that it is hard to learn to use the program. There are tons of slider bars and text boxes which don’t have text labels to tell you their purpose. Instead they have cryptic little graphics which save lots of space but are hard to understand. You need to spend a lot of time hovering your mouse over each element and reading the popup messages to figure out what element to adjust. For example, a graphic of an upside-down L is the only label for Gamma level. I would rather have a text label even though it would take up more space and mean a larger window. Then there are cryptic things like a grayed out text box at the bottom of the main window with a value like: 640*480*8 (300.0 KB). There is no popup message to tell you want those values mean. I’m guessing that it means: width x height x bit level (file size), but I’m not really sure.
The menus don’t have underlined letters to show you the shortcut keys, so you can’t navigate the menus very easily from the keyboard (although there are CTL key shortcuts for some of the menu options, but not all of them). Most of the buttons in the dialog boxes don’t have underlined letters for Alt key short cuts, so you are forced to use the mouse, which is very annoying if you are doing repetitive tasks like scanning a whole book. A few of the dialog boxes have underlined letters in the buttons to indicate their Alt shortcut keys, but those shortcuts don’t work (at least they don’t work in Debian Testing with GNOME 3). The interface of Xsane really needs a lot of work in my opinion, which is a shame because it is the only scanning program that fully exposes the full range of options that the SANE backend offers. Hopefully some volunteer programmer will update the code to improve the interface.