old-www/HOWTO/HighQuality-Apps-HOWTO/userfriendly.html

246 lines
5.0 KiB
HTML

<HTML
><HEAD
><TITLE
>User Friendly: Guaranteed Success</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Designing Integrated High Quality Linux Applications"
HREF="index.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="intro.html"><LINK
REL="NEXT"
TITLE="The Four Universal Parts of Any Software"
HREF="software.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Designing Integrated High Quality Linux Applications</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="intro.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="software.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="userFriendly">2. User Friendly: Guaranteed Success</H1
><P
>The <EM
>user-friendly</EM
> concept is missassociated with a good <SPAN
CLASS="acronym"
>GUI</SPAN
> (graphical user interface). In fact, it is much more than that. In systems like Linux (with more server-like characteristics), the user measures how easy a Software is, mainly in the installation and initial configuration. He can even forget how easy were to install and use a certain product, but it will never forget that a Software package has a complex configuration and installation process. A migration or new installation allways will be a nightmare, making the user avoid it.</P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="installAndUse">2.1. Embrace the <EM
>Install-and-Use</EM
> Paradigm</H2
><P
>Imagine you'll install that expansive product your company bought from ACME, and realized you'll have to do the following:</P
><P
></P
><OL
TYPE="1"
><LI
><P
>To have a manual that shows the installation process step-by-step. We know that a manual is the last thing the user reads</P
></LI
><LI
><P
>Read some README files</P
></LI
><LI
><P
>Uncompress huge files in your disk (after downloading them from net our CD), to create the installation environment</P
></LI
><LI
><P
>Read more README files that appeared in the installation environment</P
></LI
><LI
><P
>Comprehend that the installation requires you to execute in a special way some provided script (the inconvenient <TT
CLASS="filename"
>./install.sh</TT
>)</P
></LI
><LI
><P
>Uncomfortably answer some questions that the script does, like target directory, user for the installation, etc. To make it worse, it frequently happens in a terminal that has a missconfigured backspace</P
></LI
><LI
><P
>After the installation, configure some environment variables in your profile, like <TT
CLASS="envar"
>$PATH</TT
>, <TT
CLASS="envar"
>$LIBPATH</TT
>, <TT
CLASS="envar"
>$ACMEPROGRAM_DATA_DIR</TT
>, <TT
CLASS="envar"
>$ACMEPROGRAM_BIN_DIR</TT
>, etc</P
></LI
><LI
><P
>Edit OS files to include the presence of the new product (e.g. <TT
CLASS="filename"
>/etc/inetd.conf</TT
>, <TT
CLASS="filename"
>/etc/inittab</TT
>)</P
></LI
><LI
><P
>And the worse: Change security permissions of OS directories and files to let the product run OK</P
></LI
></OL
><P
>Sounds familiar? Who never faced this sad situation, that inducts the user to make mistakes? If your products' installation process sound like <EM
>Uncompress-Copy-Configure-ConfigureMore-Use</EM
>, like this one, you have a problem, and the user won't like it.</P
><P
>Users like to feel that your Product integrates well with the OS. You should not demand that the OS adapt himself to your Product (changing environment variables, etc). It must let the user <STRONG
>Install-and-Use</STRONG
>.</P
><P
>The <EM
>Install-And-Use</EM
> glory is easily achieved using a 3 ingredients receipt:</P
><P
></P
><OL
TYPE="1"
><LI
><P
>Understanding the Four Universal Parts of Any Software</P
></LI
><LI
><P
>Understanding how they are related to Linux's directory hierarchy</P
></LI
><LI
><P
>Aggressively use a package system, for process automation and leverage first items. In our case is RPM.</P
></LI
></OL
><P
>We'll discuss here what are these ingredients and how to implement them.</P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="intro.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="software.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>The Four Universal Parts of Any Software</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>