1 |
dashley |
19 |
%$Header: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/webprojs/pamc/gen_a/docs/manual/man_a/c_iov0/c_iov0.tex,v 1.7 2008/02/14 16:44:47 dashley Exp $
|
2 |
|
|
|
3 |
|
|
\chapter{Introduction and Overview}
|
4 |
|
|
|
5 |
|
|
\label{ciov0}
|
6 |
|
|
|
7 |
|
|
\beginchapterquote{``One way to prevent progress is by arguing that
|
8 |
|
|
any first step is unfair to somebody.''}
|
9 |
|
|
{Unknown}
|
10 |
|
|
|
11 |
|
|
|
12 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
13 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
14 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
15 |
|
|
\section{Overview of \emph{\productbasename{}}}
|
16 |
|
|
%Section tag: pov0
|
17 |
|
|
\label{ciov0:spov0}
|
18 |
|
|
|
19 |
|
|
\emph{\productbasename{}} is a server-based and primarily web-based
|
20 |
|
|
collaboration product to serve the enterprise that develops software.
|
21 |
|
|
The \emph{\productbasename{}}
|
22 |
|
|
software (all of which runs on the server-side) will run only
|
23 |
|
|
on *nix platforms. The clients that use the software (web browsers)
|
24 |
|
|
may be run on any platform; including \emph{Windows}, \emph{Linux}, and
|
25 |
|
|
various embedded platforms such as intelligent cellphones and PDAs.
|
26 |
|
|
|
27 |
|
|
The \emph{\productbasename{}} software may be used in two primary ways
|
28 |
|
|
(not mutually exclusive):
|
29 |
|
|
|
30 |
|
|
\begin{itemize}
|
31 |
|
|
\item The product may be used as-is with no modifications.
|
32 |
|
|
\item The existing authentication and database framework may be used
|
33 |
|
|
to speed development of custom database applications; either
|
34 |
|
|
supplanting or completely replacing existing database
|
35 |
|
|
functionality.
|
36 |
|
|
\end{itemize}
|
37 |
|
|
|
38 |
|
|
|
39 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
40 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
41 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
42 |
|
|
\section{Challenges in the Software Development Enterprise}
|
43 |
|
|
%Section tag: CEN0
|
44 |
|
|
\label{ciov0:scen0}
|
45 |
|
|
|
46 |
|
|
Software development is typically characterized by:
|
47 |
|
|
|
48 |
|
|
\begin{itemize}
|
49 |
|
|
\item Awesome complexity and hundreds or thousands of details.
|
50 |
|
|
\item The need to resolve every detail correctly (this stems
|
51 |
|
|
directly from the nature of software and the requirement
|
52 |
|
|
for absolute correctness).
|
53 |
|
|
\item The need to create or import workproducts and move them through
|
54 |
|
|
a defined process.
|
55 |
|
|
\item The need to capture many different forms of data (for example,
|
56 |
|
|
scanned documents as
|
57 |
|
|
\emph{.PDF}\index{PDF file@\emph{.PDF} file} files or
|
58 |
|
|
images of product defects as
|
59 |
|
|
\emph{.JPG}\index{JPG file@\emph{.JPG} file} files) and integrate
|
60 |
|
|
them into a defined process.
|
61 |
|
|
\item The need to integrate individuals who are only peripherally part
|
62 |
|
|
of the enterprise (for example, customers and suppliers) into the
|
63 |
|
|
process.
|
64 |
|
|
\item The need to work and access data securely from remote locations (for example,
|
65 |
|
|
from home, from coffee shops, from libraries, from cellphones and PDAs,
|
66 |
|
|
from customer sites, and from foreign countries and airport kiosks
|
67 |
|
|
while traveling).
|
68 |
|
|
\end{itemize}
|
69 |
|
|
|
70 |
|
|
The complexity and need for correctness conflict directly
|
71 |
|
|
with human limitations in the following ways:
|
72 |
|
|
|
73 |
|
|
\begin{itemize}
|
74 |
|
|
\item Humans cannot reliably manage large numbers of details without
|
75 |
|
|
the danger of neglecting some of the details.
|
76 |
|
|
\item In the presence of large numbers of tasks to be
|
77 |
|
|
completed, humans often have difficulty identifying
|
78 |
|
|
the tasks that need to be completed and selecting
|
79 |
|
|
a task.
|
80 |
|
|
\item When forced to switch between tasks, humans cannot
|
81 |
|
|
efficiently save and restore context.
|
82 |
|
|
Typically, resuming a task
|
83 |
|
|
involves a brief period of reviewing the status of
|
84 |
|
|
the task and planning how to proceed.
|
85 |
|
|
\end{itemize}
|
86 |
|
|
|
87 |
|
|
Standard web database and
|
88 |
|
|
\index{two-factor authentication}two-factor authentication
|
89 |
|
|
technology can address all of the needs cited above.
|
90 |
|
|
|
91 |
|
|
|
92 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
93 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
94 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
95 |
|
|
\section{The \emph{buy-versus-build} Decision}
|
96 |
|
|
%Section tag: BVB0
|
97 |
|
|
\label{ciov0:sbvb0}
|
98 |
|
|
|
99 |
|
|
\index{buy-versus-build}
|
100 |
|
|
|
101 |
|
|
Many software development organizations are reluctant to develop collaboration
|
102 |
|
|
tools in-house, citing the standard arguments against crafting solutions.
|
103 |
|
|
|
104 |
|
|
For certain commodity items---such as software development tools, version control
|
105 |
|
|
systems, and defect tracking systems---the \emph{buy} decision works well.
|
106 |
|
|
|
107 |
|
|
However, for non-commodity items, it usually happens that the commercial tools
|
108 |
|
|
available for purchase don't precisely fit enterprise processes and can't be
|
109 |
|
|
modified or customized. The enterprise is left with two choices:
|
110 |
|
|
|
111 |
|
|
\begin{itemize}
|
112 |
|
|
\item Purchase commercial tools that don't fit enterprise processes, forcing
|
113 |
|
|
the enterprise to misuse the tools or modify its processes to fit the
|
114 |
|
|
processes supported by the tools.
|
115 |
|
|
\item Fail to purchase commercial tools and forego tool support.
|
116 |
|
|
\end{itemize}
|
117 |
|
|
|
118 |
|
|
If, at every opportunity to make a buy-versus-build decision, the enterprise
|
119 |
|
|
chooses \emph{buy}, the end result after several years will be persistent gaps
|
120 |
|
|
in enterprise tool coverage. Most organizations in fact end up with
|
121 |
|
|
persistent gaps in tool coverage.
|
122 |
|
|
|
123 |
|
|
\emph{\productbasename{}-\productversion{}} is essentially a ``catch-all''
|
124 |
|
|
database framework designed to allow an organization to satisfy all unmet
|
125 |
|
|
database/collaboration needs in \emph{one} alternate framework.
|
126 |
|
|
|
127 |
|
|
|
128 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
129 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
130 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
131 |
|
|
\section{Obtaining Assistance with \emph{\productbasename{}-\productversion{}}}
|
132 |
|
|
%Section tag: OAS0
|
133 |
|
|
\label{ciov0:soas0}
|
134 |
|
|
|
135 |
|
|
TBD.
|
136 |
|
|
|
137 |
|
|
|
138 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
139 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
140 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
141 |
|
|
\section{Records Retention Todos}
|
142 |
|
|
%Section tag: RRT0
|
143 |
|
|
\label{ciov0:srrt0}
|
144 |
|
|
|
145 |
|
|
Need to incorporate the following capability into the tool:
|
146 |
|
|
|
147 |
|
|
\begin{itemize}
|
148 |
|
|
\item \textbf{Legal Hold:}\\
|
149 |
|
|
Tool must be able to suspend deletion of some or all records
|
150 |
|
|
to support ``legal hold'' and similar notions. This probably
|
151 |
|
|
means that in addition to suspending records retention deletions,
|
152 |
|
|
the database views have to disregard older records as if they have been
|
153 |
|
|
deleted (i.e. virtual non-existence).
|
154 |
|
|
\item \textbf{Visible Record of Changes:}\\
|
155 |
|
|
The tool must not allow changes to be made that are ``silent'' where
|
156 |
|
|
the new data appears with no clear record that the data has been changed.
|
157 |
|
|
\emph{Bugzilla}, for example, shows changes via ``bug history''. For all data,
|
158 |
|
|
there has to be a view of how, when, and by who it was modified.
|
159 |
|
|
\end{itemize}
|
160 |
|
|
|
161 |
|
|
|
162 |
|
|
|
163 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
164 |
|
|
\noindent\begin{figure}[!b]
|
165 |
|
|
\noindent\rule[-0.25in]{\textwidth}{1pt}
|
166 |
|
|
\begin{tiny}
|
167 |
|
|
\begin{verbatim}
|
168 |
|
|
$RCSfile: c_iov0.tex,v $
|
169 |
|
|
$Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/webprojs/pamc/gen_a/docs/manual/man_a/c_iov0/c_iov0.tex,v $
|
170 |
|
|
$Revision: 1.7 $
|
171 |
|
|
$Author: dashley $
|
172 |
|
|
$Date: 2008/02/14 16:44:47 $
|
173 |
|
|
\end{verbatim}
|
174 |
|
|
\end{tiny}
|
175 |
|
|
\noindent\rule[0.25in]{\textwidth}{1pt}
|
176 |
|
|
\end{figure}
|
177 |
|
|
|
178 |
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
179 |
|
|
%$Log: c_iov0.tex,v $
|
180 |
|
|
%Revision 1.7 2008/02/14 16:44:47 dashley
|
181 |
|
|
%Addition of records retention thoughts.
|
182 |
|
|
%
|
183 |
|
|
%Revision 1.6 2007/07/11 01:36:52 dashley
|
184 |
|
|
%Edits.
|
185 |
|
|
%
|
186 |
|
|
%Revision 1.5 2007/06/05 00:42:10 dashley
|
187 |
|
|
%Edits.
|
188 |
|
|
%
|
189 |
|
|
%Revision 1.4 2007/06/04 06:26:36 dashley
|
190 |
|
|
%Edits.
|
191 |
|
|
%
|
192 |
|
|
%Revision 1.3 2007/06/04 03:26:55 dashley
|
193 |
|
|
%Edits.
|
194 |
|
|
%
|
195 |
|
|
%Revision 1.2 2007/06/03 06:38:55 dashley
|
196 |
|
|
%Edits.
|
197 |
|
|
%
|
198 |
|
|
%Revision 1.1 2007/06/03 04:57:26 dashley
|
199 |
|
|
%Initial checkin.
|
200 |
|
|
%
|
201 |
|
|
%End of $RCSfile: c_iov0.tex,v $.
|