Usability is also a major concern in software development and I have developed pretty usable programs. Graphical user interfaces and aesthetic issues are a different story, because my expertise and skills in those areas are much more limited.
I am quite flexible on the format, environment or technology fronts. In fact, these aspects aren't even always a major concern for me. For example, when building an efficient algorithm completely from scratch, it doesn't always matter whether the final product will be part of a desktop or a mobile application.
My whole programming approach is very compatible with the previous paragraph and even with some of my non-technical skills. I try to avoid my code to rely on external dependencies or on too new/complex features as much as possible. My deliverables are usually portable and third-party independent. Having to install certain library or to upgrade to the latest version aren't typical requirements of the software I develop.
Most of the previous ideas are also applicable to data-analysis projects, although they do have their own peculiarities. With generic software development, even when dealing with data-intensive scenarios, the final goals are more or less well-defined since the start. With data analysis, the final results or even the actual effort requirements aren't always too clear. This is true, at least, when working in the only way which I consider acceptable, namely: trying hard to get a worthy result, accepting any outcome, including impossibility, and clearly conveying everything.
In general, I trust my own expertise, research or tests more than generic ideas and good practices, but I am very pragmatic and adaptable on this front too. Actual, tangible, relevant results will always be the most persuasive argument to me. In any case, the only thing that really matters is that my deliverables meet all the client's expectations.