기본에 충실하지 않고는 획기적인 것이 나올 수 없고, 방향성에 문제가 있을 수 있다. 그래서 반드시 중심에 있는 철학에 깊이 생각하고, 집중하는 것이 좋다.

MS의 있는 자료이다.  디자인에 대한 부분이긴 하지만, 여전히 아키텍처에도 충분한 적용할 수 있는 부분이 있다.

 

http://msdn2.microsoft.com/en-us/library/aa511335.aspx

 

1. 기본에 충실하라

2. 가장 탁월한 것이 되라

3. 모든 사람에게 모든 것을 제공하려 하지 말라

4. 어려운 결정을 내려라

5. 친밀한 대화 같은 경험을 만들어라

6. 가장 적합한 것을 디폴트로 하라.

7. 바로 동작하게 하라

8. 신중하게 질문하라

9. 사용하기에 즐겁게 하라

10. 보기에 즐겁게 하라

11. 간결하게 유지하라

12. 나쁜 경험을 막아라

13. 공통된 문제들을 위해 디자인 하라

14. 성가신 것이 되지 말라

15. 사용자의 수고, 지식, 생각을 줄여라

16. 가이드 라인을 따르라

17. 테스트하라.

 

 

 

 
How to Design a Great User Experience

While simply expressed, each of these ideas is profound. We could make each an article, but we'll give a short explanation instead. Fill in any missing details with examples from your own experience.

  1. Nail the basics
    The core :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511441.aspx">scenarios—the primary reasons people use your Windows Vista® program—are far more important than the fringe scenarios—things people might do but probably won't. Nail the basics! (And if you do, users will overlook fringe problems.)
  2. Be great at something
    Think about how real users (not the marketing or PR departments) will describe your program. Identify your target users and make sure they can say "I love this program! It does A, B, and C super well!" If users can't say that about your program, what's the point? Today, "good enough" is no longer good enough—make your users love it.
  3. Don't be all things to all people
    Your program is going to be more successful by delighting its target users than attempting to satisfy everyone.
  4. Make the hard decisions
    Do you really need that feature, command, or option? If so, do it well. If not, cut it! Don't avoid difficult decisions by making everything optional or configurable.
  5. Make the experience like a friendly conversation
    Think of your UI as a conversation between you and your target users. Suppose you're looking over a user's shoulder and he or she asks, "What do I do here?" Think about the explanation you would give...the steps, their order, the language you'd use, and the way you explain things. Also think about the things you don't say. That's what your UI should be—like a conversation between friends—rather than some arcane thing that users have to decipher.
  6. Do the right thing by default
    Sure, you can :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl02',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/bb545456.aspx">pile on options to allow users to change things, but why? Choose safe, secure, convenient default values. Also, make the default experience the right experience for your target users. Don't assume that they will configure their way out of a bad initial experience. They won't.
  7. Make it just work
    People want to use your program, not configure it or learn a bunch of things. Choose an initial configuration, make it obvious how to do the most common and important tasks, and get your program working right away.
  8. Ask questions carefully
    Avoid asking unessential questions using :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511268.aspx">modal dialogs—prefer modeless alternatives. If you must ask a question in your UI, express it in terms of users' :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/bb545456.aspx">goals and tasks, not in terms of technology. Provide options that users understand (again, phrased in terms of goals and tasks, not technology) and clearly differentiate. Make sure to provide enough information for users to make informed decisions.
  9. Make it a pleasure to use
    Make sure your program serves its purpose well. Have the right set of features and put the features in the right places. Pay :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511327.aspx">attention to detail.
  10. Make it a pleasure to see
    Use the standard Windows Vista look, including standard :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl06',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa974173.aspx">window frames, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl07',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511282.aspx">fonts, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl08',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511283.aspx">system colors, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl09',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511456.aspx">common controls and :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl10',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511268.aspx">dialog boxes, and standard :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl11',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511279.aspx">layout. Avoid custom UI and use :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl12',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511284.aspx">branding with restraint. Use standard Windows Vista :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl13',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511280.aspx">icons, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl14',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511281.aspx">graphics, and :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl15',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511285.aspx">animations whenever possible (and legal!) For your own graphics and icons, use a professional designer. (If you can't afford one, use a few simple graphics—or even none at all.)
    And don't assume that providing skins will compensate for an unexciting look. Most users won't bother with them and having one great look makes a much better impression than having dozens of not-so-great ones.
  11. Make it responsive
    Your program's responsiveness is crucial to its overall experience—users find unnecessarily slow and unresponsive programs unusable. For every feature where performance is an issue, first understand your users' goals and expectations, then choose the lightest weight design that achieves these goals. Generally, tasks that can take longer than 10 seconds need more informative feedback and the ability to cancel. Keep in mind that users' perception of speed is just as important as the actual speed, and the perception of speed is primarily determined by how quickly a program becomes responsive.
  12. Keep it simple
    Strive for the :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl16',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511332.aspx">simplest design that does the job well. Expand the design beyond that only as required. Don't have three ways to do something when one will do. Eliminate or reduce all that unnecessary junk!
  13. Avoid bad experiences
    Easier said than done, but users' overall perception of your program is more often determined by the quality of the bad experiences than of the good ones.
  14. Design for common problems
    Is your design great—until the user makes a mistake or the network connection is lost? Anticipate and design for common problems, user mistakes, and other errors. Consider things like the network being slow or unavailable, devices being not installed or unavailable, and users giving incorrect input or skipping steps. At each step in your program, ask yourself: What are the worst likely things that could happen? Then see how well your program behaves when they do happen. Make sure all :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl17',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511267.aspx">error messages clearly explain the problem and give an actionable solution.
  15. Don't be annoying
    Most likely, anything users routinely dismiss without performing any action should be redesigned or removed. This is especially true for anything users see repeatedly, such as error messages, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl18',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511263.aspx">warnings, :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl19',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511273.aspx">confirmations, and :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl20',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511497.aspx">notifications. Use :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl21',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511278.aspx">sound with extreme restraint. UI related to security and legal issues (for example, consent or license terms) are possible exceptions.
  16. Reduce effort, knowledge, and thought
    To reduce the effort, knowledge, and thought required to use your program:
  17. Follow the guidelines
    Of course! Consider UX Guide to be the minimum quality and consistency bar for Windows Vista-based programs. Use it to follow best practices, make routine decisions, and to just make your job easier. Focus your creative energy on the important things—whatever your program is all about—not the routine. Don't create that weird program that nobody can figure out how to use. Follow the guidelines and make your experience stand out while fitting in.
  18. Test your UI
    You won't know if you've got it right until you've tested your program with real target users with a :Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl25',this);" tabIndex=0 href="http://msdn2.microsoft.com/en-us/library/aa511441.aspx">usability study. Most likely, you'll be (unpleasantly) surprised by the results. Be glad to have your UI criticized—that's required for you to do your best work. And be sure to collect feedback after your program ships.

'디자인-아키텍쳐' 카테고리의 다른 글

Inhertiance와 composition  (0) 2009.03.16
캐쉬 서버 - 웹 어플리케이션 서버간.  (0) 2008.08.26
개발 프로세스 정립  (0) 2008.06.10
일일 빌드 시스템의 장점  (0) 2008.05.03
Powerful & Simple  (0) 2008.04.25
Posted by '김용환'
,