diff options
author | Hui Lan <lanhui@zjnu.edu.cn> | 2020-02-13 21:36:55 +0800 |
---|---|---|
committer | Hui Lan <lanhui@zjnu.edu.cn> | 2020-02-13 21:36:55 +0800 |
commit | b3641021e02ad514f98ef9884887841103e293a4 (patch) | |
tree | a0dd75c9baf8ad6d0f70e5846cc0cbe8ac0e9811 | |
parent | 19d641c9d7dfa88c740df072da0f2705054633c4 (diff) |
spm-slides.tex: difficulties and solutions
-rw-r--r-- | spm-slides.tex | 137 |
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} |