diff options
Diffstat (limited to 'spm-slides.tex')
-rw-r--r-- | spm-slides.tex | 331 |
1 files changed, 183 insertions, 148 deletions
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} |