%$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 $ \chapter{Introduction and Overview} \label{ciov0} \beginchapterquote{``One way to prevent progress is by arguing that any first step is unfair to somebody.''} {Unknown} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Overview of \emph{\productbasename{}}} %Section tag: pov0 \label{ciov0:spov0} \emph{\productbasename{}} is a server-based and primarily web-based collaboration product to serve the enterprise that develops software. The \emph{\productbasename{}} software (all of which runs on the server-side) will run only on *nix platforms. The clients that use the software (web browsers) may be run on any platform; including \emph{Windows}, \emph{Linux}, and various embedded platforms such as intelligent cellphones and PDAs. The \emph{\productbasename{}} software may be used in two primary ways (not mutually exclusive): \begin{itemize} \item The product may be used as-is with no modifications. \item The existing authentication and database framework may be used to speed development of custom database applications; either supplanting or completely replacing existing database functionality. \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Challenges in the Software Development Enterprise} %Section tag: CEN0 \label{ciov0:scen0} Software development is typically characterized by: \begin{itemize} \item Awesome complexity and hundreds or thousands of details. \item The need to resolve every detail correctly (this stems directly from the nature of software and the requirement for absolute correctness). \item The need to create or import workproducts and move them through a defined process. \item The need to capture many different forms of data (for example, scanned documents as \emph{.PDF}\index{PDF file@\emph{.PDF} file} files or images of product defects as \emph{.JPG}\index{JPG file@\emph{.JPG} file} files) and integrate them into a defined process. \item The need to integrate individuals who are only peripherally part of the enterprise (for example, customers and suppliers) into the process. \item The need to work and access data securely from remote locations (for example, from home, from coffee shops, from libraries, from cellphones and PDAs, from customer sites, and from foreign countries and airport kiosks while traveling). \end{itemize} The complexity and need for correctness conflict directly with human limitations in the following ways: \begin{itemize} \item Humans cannot reliably manage large numbers of details without the danger of neglecting some of the details. \item In the presence of large numbers of tasks to be completed, humans often have difficulty identifying the tasks that need to be completed and selecting a task. \item When forced to switch between tasks, humans cannot efficiently save and restore context. Typically, resuming a task involves a brief period of reviewing the status of the task and planning how to proceed. \end{itemize} Standard web database and \index{two-factor authentication}two-factor authentication technology can address all of the needs cited above. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{The \emph{buy-versus-build} Decision} %Section tag: BVB0 \label{ciov0:sbvb0} \index{buy-versus-build} Many software development organizations are reluctant to develop collaboration tools in-house, citing the standard arguments against crafting solutions. For certain commodity items---such as software development tools, version control systems, and defect tracking systems---the \emph{buy} decision works well. However, for non-commodity items, it usually happens that the commercial tools available for purchase don't precisely fit enterprise processes and can't be modified or customized. The enterprise is left with two choices: \begin{itemize} \item Purchase commercial tools that don't fit enterprise processes, forcing the enterprise to misuse the tools or modify its processes to fit the processes supported by the tools. \item Fail to purchase commercial tools and forego tool support. \end{itemize} If, at every opportunity to make a buy-versus-build decision, the enterprise chooses \emph{buy}, the end result after several years will be persistent gaps in enterprise tool coverage. Most organizations in fact end up with persistent gaps in tool coverage. \emph{\productbasename{}-\productversion{}} is essentially a ``catch-all'' database framework designed to allow an organization to satisfy all unmet database/collaboration needs in \emph{one} alternate framework. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Obtaining Assistance with \emph{\productbasename{}-\productversion{}}} %Section tag: OAS0 \label{ciov0:soas0} TBD. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Records Retention Todos} %Section tag: RRT0 \label{ciov0:srrt0} Need to incorporate the following capability into the tool: \begin{itemize} \item \textbf{Legal Hold:}\\ Tool must be able to suspend deletion of some or all records to support ``legal hold'' and similar notions. This probably means that in addition to suspending records retention deletions, the database views have to disregard older records as if they have been deleted (i.e. virtual non-existence). \item \textbf{Visible Record of Changes:}\\ The tool must not allow changes to be made that are ``silent'' where the new data appears with no clear record that the data has been changed. \emph{Bugzilla}, for example, shows changes via ``bug history''. For all data, there has to be a view of how, when, and by who it was modified. \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \noindent\begin{figure}[!b] \noindent\rule[-0.25in]{\textwidth}{1pt} \begin{tiny} \begin{verbatim} $RCSfile: c_iov0.tex,v $ $Source: /home/dashley/cvsrep/e3ft_gpl01/e3ft_gpl01/webprojs/pamc/gen_a/docs/manual/man_a/c_iov0/c_iov0.tex,v $ $Revision: 1.7 $ $Author: dashley $ $Date: 2008/02/14 16:44:47 $ \end{verbatim} \end{tiny} \noindent\rule[0.25in]{\textwidth}{1pt} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %$Log: c_iov0.tex,v $ %Revision 1.7 2008/02/14 16:44:47 dashley %Addition of records retention thoughts. % %Revision 1.6 2007/07/11 01:36:52 dashley %Edits. % %Revision 1.5 2007/06/05 00:42:10 dashley %Edits. % %Revision 1.4 2007/06/04 06:26:36 dashley %Edits. % %Revision 1.3 2007/06/04 03:26:55 dashley %Edits. % %Revision 1.2 2007/06/03 06:38:55 dashley %Edits. % %Revision 1.1 2007/06/03 04:57:26 dashley %Initial checkin. % %End of $RCSfile: c_iov0.tex,v $.