From b3641021e02ad514f98ef9884887841103e293a4 Mon Sep 17 00:00:00 2001
From: Hui Lan <lanhui@zjnu.edu.cn>
Date: Thu, 13 Feb 2020 21:36:55 +0800
Subject: spm-slides.tex: difficulties and solutions

---
 spm-slides.tex | 137 +++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 89 insertions(+), 48 deletions(-)

(limited to 'spm-slides.tex')

diff --git a/spm-slides.tex b/spm-slides.tex
index ccd8b2c..b2a330d 100644
--- a/spm-slides.tex
+++ b/spm-slides.tex
@@ -86,6 +86,95 @@ Something I would talk later in this semester.
 For now, I think that it will be a closed-book, 90-minute test.
 
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\foilhead{Software Project Management Concepts}
+
+Application of management activities - planning, coordinating,
+measuring, monitoring, controlling, and reporting - to ensure that the
+development and maintenance of software is systematic, disciplined,
+and quantified.
+
+{\it dis·ci·plined: showing a controlled form of behavior or way of working.}
+
+{\em Textbook management looks so easy and real-world project management
+  is in fact so hard.  -- Barry W. Boehm}
+
+
+{\bf Capable people are no longer available.}
+
+For example, the LRR's original author is no longer available to work
+on the project.  He has other more important commitments.
+
+Some people (e.g., Jin Mingyi), maybe also including the original
+author, think LRR is not maintainable.
+
+
+
+{\bf Old plan becomes outdated very soon.}
+
+You have a plan but you continuously get distracted by additional
+``requests''.  A flood of them is a phenomenon called {\em request
+  creep}.
+
+
+\begin{itemize}
+  \item A request to add ``a few small capabilities'' to the product without changing the budget or
+    schedule.
+  \item A request to take on some personnel who are between projects and find something useful for them to do.
+  \item A request to reduce the scope of design review (in order to make up some schedule).
+\end{itemize}
+
+
+Should you simply be a nice guy and accommodate any request?  No.
+You should think carefully about the impact of the request.  You
+should be able to negotiate a corresponding change in plans, schedules
+and budgets.
+
+Steps I suggest you to follow.
+
+\begin{enumerate}
+\item Politely say ``No''.
+\item Tell that I am willing to help if I am not that busy.
+\item Analyze the impact of the additional requests on my current schedule.
+\item Ask for more money or time, or both.  (The management board would usually agree as they have already invested a lot, as long as your counter-requests are reasonable.)
+\end{enumerate}
+
+
+{\bf Other difficulties}.
+
+Programmers with various background and various personal goals.
+
+Programming languages.
+
+Licenses.
+
+Development processes.
+
+Infrastructures.
+
+
+{\bf Solutions}.
+
+\begin{itemize}
+  \item Organizational.
+    \begin{itemize}
+    \item Get a lot of money.  Get a lot of resources.  Get a lot of support from government and funding bodies.
+    \item Make sure employees write clear documentation and self-documenting code before they leave the project.
+    \item Have a requirements management procedure.
+    \item Incentives.   Make sure hard and productive workers are rewarded and project parasites are not rewarded (if not downgraded).
+    \item Make sure useful developers don't get marginalized due to personal idiosyncrasy.
+    \end{itemize}
+  
+  \item Motivational.
+    \begin{itemize}
+    \item Establish a shared belief that people can do better together.  The goal of management is to make people continue to believe so.
+    \item Get deep personal satisfaction from doing one's best work, and from appreciating and being appreciated by one's peers.
+    \end{itemize}
+  \item Set standards for communications.
+
+\end{itemize}
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Free and Open-source software}
 
@@ -145,54 +234,6 @@ project to get started:
 \item Automate compilation, packaging and installation.
 \end{itemize}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\foilhead{Software Project Management}
-
-Application of management activities - planning, coordinating, measuring, monitoring, controlling, and reporting - to ensure that
-the development and maintenance of software is systematic,  disciplined, and quantified.
-
-dis·ci·plined: showing a controlled form of behavior or way of working.
-
-
-{\em Textbook management looks so easy and real-world project management
-  is in fact so hard.  -- Boehm}
-
-
-You have a plan but you continuously get distracted by additional ``requests''.
-
-\begin{itemize}
-  \item A request to add ``a few small capabilities'' to the product without changing the budget or
-    schedule.
-  \item A request to take on some personnel who are between projects and find something useful for them to do.
-  \item A request to reduce the scope of design review (in order to make up some schedule).
-\end{itemize}
-
-Should you simply be a nice guy?  No.  You should think carefully
-about the impact of the request.  You should be able to negotiate a
-corresponding change in plans, schedules and budgets.
-
-Steps you can follow.
-
-\begin{enumerate}
-\item Politely say ``No''.
-\item Tell that I am willing to help if I am not too busy.
-\item Analyze the impact of the additional requests on my current schedule.
-\item Ask for more money or time, or both.  (People would usually agree as they have already invested a lot, as long as your counter-requests are reasonable.)
-\end{enumerate}
-
-
-Other things: programmers with various background and various personal goals, programming language, license, development process, infrastructure,  publicizing the project, etc.
-
-
-Shared belief that people can do better together.  The goal of management is to make people continue to believe so.
-
-Deep personal satisfaction from doing one's work in the open, and from appreciating and being appreciated by one's peers.
-
-\begin{itemize}
-\item Set standards for communications.
-\item Make sure useful developers don't get marginalized due to personal idiosyncrasy.
-\end{itemize}
-
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \foilhead{Benefits of opening a project}
-- 
cgit v1.2.1

