summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Lan <lanhui@zjnu.edu.cn>2020-02-13 21:36:55 +0800
committerHui Lan <lanhui@zjnu.edu.cn>2020-02-13 21:36:55 +0800
commitb3641021e02ad514f98ef9884887841103e293a4 (patch)
treea0dd75c9baf8ad6d0f70e5846cc0cbe8ac0e9811
parent19d641c9d7dfa88c740df072da0f2705054633c4 (diff)
spm-slides.tex: difficulties and solutions
-rw-r--r--spm-slides.tex137
1 files changed, 89 insertions, 48 deletions
diff --git a/spm-slides.tex b/spm-slides.tex
index ccd8b2c..b2a330d 100644
--- a/spm-slides.tex
+++ b/spm-slides.tex
@@ -87,6 +87,95 @@ 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}
Free and open-source software are quite prevalent today. You can access the source code.
@@ -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}