From 6c50fa584e1252c9b626a532a0eebc8745ac7dce Mon Sep 17 00:00:00 2001
From: Hui Lan <lanhui@zjnu.edu.cn>
Date: Mon, 2 Mar 2020 10:03:21 +0800
Subject: spm-slides.tex: add lots of stuff, the most recent one being on form
 and substance.

---
 spm-slides.tex | 331 +++++++++++++++++++++++++++++++--------------------------
 1 file changed, 183 insertions(+), 148 deletions(-)

(limited to 'spm-slides.tex')

diff --git a/spm-slides.tex b/spm-slides.tex
index a349383..19c09cc 100644
--- a/spm-slides.tex
+++ b/spm-slides.tex
@@ -490,9 +490,17 @@ Many Distractions, One True North.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Rhythm of Releases}
 
+Successful software releases new versions regularly, e.g., \href{https://wiki.ubuntu.com/Releases}{Ubuntu}.
 
+To do that, the developers must have a release plan.
 
+Users know people behind the software are still improving it.
 
+Therefore, they feel more secure on continue using the software.
+
+A new release is like a booster shot to boost users' interest.
+
+Make sure you give people at least one Big booster shot yearly.
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -609,7 +617,7 @@ Make themselves successful.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Software demo}
 
-Software demo is a marketing effort.
+Software demo is a marketing effort for ``\href{https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/}{speculative}'' software.
 
 Image matters most.
 
@@ -666,230 +674,230 @@ Customer acquisition.
 
 %A record of the past activities for future reference.
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\foilhead{Choosing a license and applying it}
+\foilhead{Choosing a license and applying it}
 
 
 
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The nature of software engineering}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The nature of software engineering}
 
-{\em Software is hard.  --  Jamie Zawinski}
+%% %% {\em Software is hard.  --  Jamie Zawinski}
 
-\begin{itemize}
-\item Complex
-\item Iterative
-\item Creative and cooperative
-\item Changing technology
-\end{itemize}
+%% %% \begin{itemize}
+%% %% \item Complex
+%% %% \item Iterative
+%% %% \item Creative and cooperative
+%% %% \item Changing technology
+%% %% \end{itemize}
 
-Common problems in software industry: unrealistic
-requirements/expectations, vague specifications, poor staff
-management, and ignoring user feedback.
+%% %% Common problems in software industry: unrealistic
+%% %% requirements/expectations, vague specifications, poor staff
+%% %% management, and ignoring user feedback.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Triple constraints for software projects}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{Triple constraints for software projects}
 
-Time, Cost and Quality.
+%% %% Time, Cost and Quality.
 
 
-{\em Defer the activity of detecting and correcting software problems
-until late in the project, i.e., in the “test and validation” phase
-after the code has been developed. There are two main reasons why
-this is a mistake: (1) Most of the errors have already been made
-before coding begins; and (2) The later an error is detected and
-corrected, the more expensive it becomes.  - Barry W. Boehm}
+%% %% {\em Defer the activity of detecting and correcting software problems
+%% %% until late in the project, i.e., in the “test and validation” phase
+%% %% after the code has been developed. There are two main reasons why
+%% %% this is a mistake: (1) Most of the errors have already been made
+%% %% before coding begins; and (2) The later an error is detected and
+%% %% corrected, the more expensive it becomes.  - Barry W. Boehm}
 
 
-The following figure shows ``increase in cost to fix or change software
-throughout life cycle''.
+%% %% The following figure shows ``increase in cost to fix or change software
+%% %% throughout life cycle''.
 
-\begin{center}
-\includegraphics[width=0.80\textwidth]{fig/BoehmCurve_real}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.80\textwidth]{fig/BoehmCurve_real}
+%% %% \end{center}
 
-{\bf Important lesson: the longer you wait to detect and correct an error, the more it costs you - by a long shot.}
+%% %% {\bf Important lesson: the longer you wait to detect and correct an error, the more it costs you - by a long shot.}
 
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Aspects of management}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{Aspects of management}
 
-Organisational policy management. Specific organisation-wide procedures for designing, implementing, estimating, tracking and reporting.  Beneficial in the long-term.
+%% %% Organisational policy management. Specific organisation-wide procedures for designing, implementing, estimating, tracking and reporting.  Beneficial in the long-term.
 
-Personnel management.   Specific organisation-wide procedures for hiring, training, motivating and promoting people.
+%% %% Personnel management.   Specific organisation-wide procedures for hiring, training, motivating and promoting people.
 
-Communication management.
+%% %% Communication management.
 
-Portfolio management.  Having an overall vision not only of the software under development, but also of the software already in use in an organisation.  
+%% %% Portfolio management.  Having an overall vision not only of the software under development, but also of the software already in use in an organisation.  
 
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Elements of project management}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{Elements of project management}
 
-People, Product, Process, Project.
+%% %% People, Product, Process, Project.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The people}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The people}
 
-The \underline{people factor} is the most important factor in SPM.  Anyhow, we need right people to do the right thing.
-The manager who forgets that SE work is an {\em intensely human endeavor} will never success in project management.
+%% %% The \underline{people factor} is the most important factor in SPM.  Anyhow, we need right people to do the right thing.
+%% %% The manager who forgets that SE work is an {\em intensely human endeavor} will never success in project management.
 
-\newpage
-VP1: I guess if you had to pick one thing out that is most important to our environment, I'd say it is not the tools that we use; it is \underline{the people}.
+%% %% \newpage
+%% %% VP1: I guess if you had to pick one thing out that is most important to our environment, I'd say it is not the tools that we use; it is \underline{the people}.
 
-VP2: The most important ingredient that to be success on this project was having \underline{smart people}...very little else matters in my opinion.
+%% %% VP2: The most important ingredient that to be success on this project was having \underline{smart people}...very little else matters in my opinion.
 
-VP3: The only rule I have in management is to ensure I have \underline{good people} -- real, good people -- and that I grow good people -- and that I provide an environment in which good people can produce.
+%% %% VP3: The only rule I have in management is to ensure I have \underline{good people} -- real, good people -- and that I grow good people -- and that I provide an environment in which good people can produce.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{People Capability Maturity Model}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{People Capability Maturity Model}
 
-Capability Maturity Model Integration.
+%% %% Capability Maturity Model Integration.
 
-A maturity model describes maturity level of an organisation.
+%% %% A maturity model describes maturity level of an organisation.
 
-Originally called SEI, now called CMMI Institute. CMU (now acquired by ISACA), adopted and funded by U.S. DoD.
+%% %% Originally called SEI, now called CMMI Institute. CMU (now acquired by ISACA), adopted and funded by U.S. DoD.
 
-Generic, not just for software engineering.
+%% %% Generic, not just for software engineering.
 
-For organisations, for organisations seeking to improve their process,  for appraising/evaluating an organisation's maturity level (1-5).
+%% %% For organisations, for organisations seeking to improve their process,  for appraising/evaluating an organisation's maturity level (1-5).
 
-For people, PCMM is an integrated set of best practices that improves performance and key capabilities for organizations that want to improve their critical people management processes.
+%% %% For people, PCMM is an integrated set of best practices that improves performance and key capabilities for organizations that want to improve their critical people management processes.
 
-\begin{center}
-\includegraphics[width=0.95\textwidth]{fig/PCMM}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.95\textwidth]{fig/PCMM}
+%% %% \end{center}
 
-\begin{center}
-\includegraphics[width=0.95\textwidth]{fig/P-CMM}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.95\textwidth]{fig/P-CMM}
+%% %% \end{center}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The product}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The product}
 
-Define product \underline{objectives} and \underline{scope}.  Consider alternative solutions.
+%% %% Define product \underline{objectives} and \underline{scope}.  Consider alternative solutions.
 
-Objectives: overall goals for the product (from the customer's point of view) without considering how these goals will be achieved.
+%% %% Objectives: overall goals for the product (from the customer's point of view) without considering how these goals will be achieved.
 
-Scope: primary data, functions, behaviours that charaterises and bounds these characteristics in a quantitative manner.
+%% %% Scope: primary data, functions, behaviours that charaterises and bounds these characteristics in a quantitative manner.
 
-Alternatives: do we have better alternatives, considering the constraints on delivery deadline, budgets, personnel availability, etc. 
+%% %% Alternatives: do we have better alternatives, considering the constraints on delivery deadline, budgets, personnel availability, etc. 
 
-%Talk about OMG's SRS.
+%% %% %Talk about OMG's SRS.
 
-%SE\_UserRequirementsDocument.
+%% %% %SE\_UserRequirementsDocument.
 
-%{\tiny https://lumos-hello.readthedocs-hosted.com/en/latest/}  
+%% %% %{\tiny https://lumos-hello.readthedocs-hosted.com/en/latest/}  
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The process}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The process}
 
-Use new and existing processes to move a project forward to success.
+%% %% Use new and existing processes to move a project forward to success.
 
-Waterfall
+%% %% Waterfall
 
-\begin{center}
-\includegraphics[width=0.80\textwidth]{fig/waterfall_marsic}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.80\textwidth]{fig/waterfall_marsic}
+%% %% \end{center}
 
-Prototyping
+%% %% Prototyping
 
-The spiral model (Boehm)
+%% %% The spiral model (Boehm)
 
-Agile (popular nowadays)
+%% %% Agile (popular nowadays)
 
-\begin{center}
-\includegraphics[width=0.80\textwidth]{fig/ExtremeProgramming}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.80\textwidth]{fig/ExtremeProgramming}
+%% %% \end{center}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The project}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The project}
 
-Projects: 26\% failed, 46\% experienced cost and schedule overruns.
+%% %% Projects: 26\% failed, 46\% experienced cost and schedule overruns.
 
-We have to conduct {\em planned} and {\em controlled} software projects.
+%% %% We have to conduct {\em planned} and {\em controlled} software projects.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{PMBOK}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{PMBOK}
 
-Project Management Body of Knowledge includes the following KAs (knowledge areas):
+%% %% Project Management Body of Knowledge includes the following KAs (knowledge areas):
 
-project integration
+%% %% project integration
 
-project scope
+%% %% project scope
 
-project time
+%% %% project time
 
-project cost
+%% %% project cost
 
-project quality
+%% %% project quality
 
-project human resource
+%% %% project human resource
 
-project communication
+%% %% project communication
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{SWBOK}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{SWBOK}
 
-A closely related body of knowledge (Software Engineering Body of Knowledge).
+%% %% A closely related body of knowledge (Software Engineering Body of Knowledge).
 
-\begin{center}
-\includegraphics[width=0.50\textwidth]{fig/swebok_wiki}
-\end{center}
+%% %% \begin{center}
+%% %% \includegraphics[width=0.50\textwidth]{fig/swebok_wiki}
+%% %% \end{center}
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Measurement and management}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{Measurement and management}
 
-Management without measurement suggests a lack of rigor.
+%% %% Management without measurement suggests a lack of rigor.
 
-Measurement without management suggests a lack of purpose or context.
+%% %% Measurement without management suggests a lack of purpose or context.
 
-Management and measurement without \underline{expert knowledge} is equally ineffectual.
+%% %% Management and measurement without \underline{expert knowledge} is equally ineffectual.
 
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The top 5 factors found in successful projects}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The top 5 factors found in successful projects}
 
-%{\tiny \texttt{http://www.umsl.edu/_titlt_sauterv/analysis/6840_f03_papers/frese/}}
-\begin{itemize}
-\item \underline{User Involvement}
-\item Executive Management Support
-\item Clear Statement of Requirements
-\item Proper Planning
-\item Realistic Expectations
-\end{itemize}
+%% %% %{\tiny \texttt{http://www.umsl.edu/_titlt_sauterv/analysis/6840_f03_papers/frese/}}
+%% %% \begin{itemize}
+%% %% \item \underline{User Involvement}
+%% %% \item Executive Management Support
+%% %% \item Clear Statement of Requirements
+%% %% \item Proper Planning
+%% %% \item Realistic Expectations
+%% %% \end{itemize}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{The top 5 indicators found in challenged projects}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{The top 5 indicators found in challenged projects}
 
-\begin{itemize}
-\item Lack of \underline{User Input}
-\item Incomplete Requirements \& Specifications
-\item Changing Requirements \& Specifications
-\item Lack of Executive Support
-\item Technical Incompetence
-\end{itemize}
+%% %% \begin{itemize}
+%% %% \item Lack of \underline{User Input}
+%% %% \item Incomplete Requirements \& Specifications
+%% %% \item Changing Requirements \& Specifications
+%% %% \item Lack of Executive Support
+%% %% \item Technical Incompetence
+%% %% \end{itemize}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{All the top factors found in {\em failed} projects}
+%% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %% \foilhead{All the top factors found in {\em failed} projects}
 
-\begin{itemize}
-\item Incomplete Requirements
-\item Lack of \underline{user involvement}
-\item Lack of Resources
-\item Unrealistic Expectations
-\item Lake of Executive Support
-\item Changing Requirements \& Specifications
-\item  Lack of Planning
-\item  Didn't Need it Any Longer
-\item Lack of IT management
-\item Technical Illiteracy  
-\end{itemize}
+%% %% \begin{itemize}
+%% %% \item Incomplete Requirements
+%% %% \item Lack of \underline{user involvement}
+%% %% \item Lack of Resources
+%% %% \item Unrealistic Expectations
+%% %% \item Lake of Executive Support
+%% %% \item Changing Requirements \& Specifications
+%% %% \item  Lack of Planning
+%% %% \item  Didn't Need it Any Longer
+%% %% \item Lack of IT management
+%% %% \item Technical Illiteracy  
+%% %% \end{itemize}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Effort and reward}
@@ -897,28 +905,55 @@ Management and measurement without \underline{expert knowledge} is equally ineff
 When \underline{effort} and \underline{reward} do not correlate reliably, most people will lose faith and stop investing effort.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Form and substance}
+\foilhead{Form and Substance}
+
+Non-technical management.
+
+Language of customers (pretty pixels) versus language of programmers (data structure and algorithms).
+
+You should {\em look} prepared.
 
 Appearances matter.
 
+Iceberg Secret: 90\% underwater is programming work. 10\% which customers can see is user interface work.  \href{https://www.joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed/}{People Who Aren’t Programmers Do Not Understand This}.
+
 Form is substance.  E.g., project presentation gives people an {\em immediate first impression}.
 
-Project home page is the first thing (maybe also the last thing) a visitor learns about a project.
+Joel Spolsky's Corollaries:
 
-Project home pages:
+\begin{itemize}
+  \item If you show a nonprogrammer a screen which has a user interface that is 90\% worse, they will think that the program is 90\% worse.
+  \item If you show a nonprogrammer a screen which has a user interface which is 100\% beautiful, they will think the program is almost done.
+  \item When you’re showing off, the only thing that matters is the screen shot. Make it 100\% beautiful.
+\end{itemize}
 
-* vim: https://www.vim.org/
+Project home page is the first thing (probably also the last thing) a visitor learns about a project.
 
-* emacs: https://www.gnu.org/software/emacs/
+Text editor project home pages:
 
-* notepad++: https://notepad-plus-plus.org/
+\begin{itemize}
 
-* nano: https://www.nano-editor.org/
+\item nano: https://www.nano-editor.org/
+  
+\item vim: https://www.vim.org/
 
-How would you describe each look and feel?  ``Your time will not be wasted if you get involved''.
+\item emacs: https://www.gnu.org/software/emacs/
+
+\item notepad++: https://notepad-plus-plus.org/
+
+
+\end{itemize}
+
+How would you describe each's look and feel?
+
+Convey this message: ``your time will not be wasted if you get involved.''
 
 One most important principle to make a project home page: people should have a rough idea where a link goes before clicking on it.
 
+Supply information, also supply comfort.
+
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Canned hosting}
 
-- 
cgit v1.2.1

