\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Natalie Moore (NatalieMoore)} \pdfinfo{ /Title (project-estimating.pdf) /Creator (Cheatography) /Author (Natalie Moore (NatalieMoore)) /Subject (Project estimating Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{961FA3} \definecolor{LightBackground}{HTML}{F8F1F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Project estimating Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Natalie Moore (NatalieMoore)} via \textcolor{DarkBackground}{\uline{cheatography.com/19119/cs/2255/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Natalie Moore (NatalieMoore) \\ \uline{cheatography.com/nataliemoore} \\ \uline{\seqsplit{www}.jchmedia.com/} \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 7th November, 2015.\\ Updated 12th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{What we estimate and why it is important}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{Effort vs duration}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Activities often take longer than planned even though the effort has not increased} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Effort = amount of work if one person were doing it} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Duration = actual amount of work with however many people available doing it} \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{The effects of over- and under-estimating}}} \tn % Row Count 8 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Under-estimate} \tn % Row Count 9 (+ 1) % Row 6 \SetRowColor{LightBackground} - & Project can fail due to budget being exceeded \tn % Row Count 11 (+ 2) % Row 7 \SetRowColor{white} - & The allocation of not enough money can result in substandard work as staff work extra hard to produce what they can \tn % Row Count 15 (+ 4) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Overestimate} \tn % Row Count 16 (+ 1) % Row 9 \SetRowColor{white} - & An excessively high estimate may lead to the work being lost to a competitor \tn % Row Count 19 (+ 3) % Row 10 \SetRowColor{LightBackground} - & Parkinsons Law ('work expands to fill the time available') means that an exces¬sively generous estimate may lead to lower productivity \tn % Row Count 23 (+ 4) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Estimates and targets}}} \tn % Row Count 24 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Hard to be exact} \tn % Row Count 25 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{An estimate of effort or time is really a most likely effort/time with a range of possibilities on each side of it} \tn % Row Count 28 (+ 3) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Choose a target:} \tn % Row Count 29 (+ 1) % Row 15 \SetRowColor{white} - & Aggressive – could get done quickly but high chance of failure \tn % Row Count 31 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{What we estimate and why it is important (cont)}} \tn % Row 16 \SetRowColor{LightBackground} - & Generous – likely to expand the length of time needed, but have a safer chance of the target being met' \tn % Row Count 3 (+ 3) % Row 17 \SetRowColor{white} - & A reasonable target can become a self-fulfilling prophecy \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Checklist}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{If you are using someone elses estimates, if you can then ask them:} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} - & What methods were used to produce the estimates? \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} - & How is the relative size of the job measured (in other words, what are the size/effort drivers)? \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} - & How much effort was assumed would be required for each unit of the size driver (in other words, what productivity rates are you assuming)? \tn % Row Count 11 (+ 4) % Row 4 \SetRowColor{LightBackground} - & Can a past project of about the same size be identified which had about the same effort? \tn % Row Count 14 (+ 3) % Row 5 \SetRowColor{white} - & If a job with a comparable size cannot be identified, can past jobs which had similar productivity rates be found? \tn % Row Count 18 (+ 4) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Estimation best practices} \tn % Row Count 19 (+ 1) % Row 7 \SetRowColor{white} - & Use the most reliable data available \tn % Row Count 20 (+ 1) % Row 8 \SetRowColor{LightBackground} - & Spend as much time as possible to produce the estimates \tn % Row Count 22 (+ 2) % Row 9 \SetRowColor{white} - & Use appropriate methods \tn % Row Count 23 (+ 1) % Row 10 \SetRowColor{LightBackground} - & State the basis of the estimate \tn % Row Count 24 (+ 1) % Row 11 \SetRowColor{white} - & Establish best practices through lessons learned \tn % Row Count 26 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Using expert judgement}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Use completion of other tasks to get information for estimates} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{You need to know:} \tn % Row Count 3 (+ 1) % Row 2 \SetRowColor{LightBackground} - & What activities are going to be carried out \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} - & How much work for each \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{The {\bf{best person}} to tell us about the time it takes to complete a task is someone familiar with the tasks to be carried out and the environment in which they are done} \tn % Row Count 10 (+ 4) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Advantages} \tn % Row Count 11 (+ 1) % Row 6 \SetRowColor{LightBackground} - & People doing the work are involved with the estimating process \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} - & Involves the people with the best experience of similar work and work environment in the past \tn % Row Count 16 (+ 3) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Risks:} \tn % Row Count 17 (+ 1) % Row 9 \SetRowColor{white} - & Task may be a new one of which there is no prior experience \tn % Row Count 19 (+ 2) % Row 10 \SetRowColor{LightBackground} - & Human error \tn % Row Count 20 (+ 1) % Row 11 \SetRowColor{white} - & Estimate is essentially a guess and its hard to know how accurate \tn % Row Count 22 (+ 2) % Row 12 \SetRowColor{LightBackground} - & May need to talk to several 'experts' \tn % Row Count 24 (+ 2) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{The Delphi approach} \tn % Row Count 25 (+ 1) % Row 14 \SetRowColor{LightBackground} - & A group of experts are asked to produce, individually and without consulting others, an estimate supported by some kind of rationale \tn % Row Count 29 (+ 4) % Row 15 \SetRowColor{white} - & Replies collected by a moderator \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Using expert judgement (cont)}} \tn % Row 16 \SetRowColor{LightBackground} - & Circulated anonymously \tn % Row Count 1 (+ 1) % Row 17 \SetRowColor{white} - & Everyone reads everyone else and has opportunity to revise opinion \tn % Row Count 3 (+ 2) % Row 18 \SetRowColor{LightBackground} - & Opinions should converge on a consensus \tn % Row Count 5 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Estimating by analogy}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{The function point approach (and, indeed, the more generic approach of using size drivers and productivity rates) is based on the assumption that we have the details of the size driver values and actual effort of past projects. Often, however, such records do not exist.} \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Analogy or comparative approach could be used.} \tn % Row Count 7 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Steps:} \tn % Row Count 8 (+ 1) % Row 3 \SetRowColor{white} 1. & Identify the key characteristics of the new project. \tn % Row Count 10 (+ 2) % Row 4 \SetRowColor{LightBackground} 2. & Search for a previous project which has similar characteristics. \tn % Row Count 12 (+ 2) % Row 5 \SetRowColor{white} 3. & Use the actual effort recorded for the previous project as the base estimate for the new one. \tn % Row Count 15 (+ 3) % Row 6 \SetRowColor{LightBackground} 4. & Identify the key differences between the old and the new projects (it is unlikely that the old project is an exact match for the new one). \tn % Row Count 19 (+ 4) % Row 7 \SetRowColor{white} 5. & Adjust the base estimate to take account of the identified differences \tn % Row Count 21 (+ 2) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{If there is no single past project then use parts of old projects} \tn % Row Count 23 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Agile estimation}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Need a way to estimate that:} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} - & Allows budget creation \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} - & Plans for the future \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} - & Reminds us that estimates are guesses \tn % Row Count 5 (+ 2) % Row 4 \SetRowColor{LightBackground} - & Acknowledges inherent complexities and uncertainty with software dev \tn % Row Count 7 (+ 2) % Row 5 \SetRowColor{white} - & Keep things simple – estimate includes everything \tn % Row Count 9 (+ 2) % Row 6 \SetRowColor{LightBackground} - & Be fast \tn % Row Count 10 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Relative sizing}}} \tn % Row Count 11 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Estimating absolutely is harder than relatively} \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Relative sizing means how big is this compared to that} \tn % Row Count 14 (+ 2) % Row 10 \SetRowColor{LightBackground} 1. & How fast can the team go \tn % Row Count 15 (+ 1) % Row 11 \SetRowColor{white} 2. & Size stories relatively \tn % Row Count 16 (+ 1) % Row 12 \SetRowColor{LightBackground} 3. & Set expectations around dates \tn % Row Count 17 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Agile estimates are unit less}}} \tn % Row Count 18 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Point based system} \tn % Row Count 19 (+ 1) % Row 15 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{1 point = small, no sweat easy} \tn % Row Count 20 (+ 1) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{3 points = medium, bigger but we can handle it} \tn % Row Count 21 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{5 points = large, this will take some effort} \tn % Row Count 22 (+ 1) % Row 18 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Sit down with customer, ask a lot of questions, guess how big this is} \tn % Row Count 24 (+ 2) % Row 19 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Do this for each part of the project} \tn % Row Count 25 (+ 1) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Do it better as a team – get team involvement} \tn % Row Count 26 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Agile because there are problems with waterfall estimates: \newline - Clear on being guesses \newline - Usually overly optimistic \newline - Beginning has too many unknowns \newline - The only question we should be attempting to answer at the beginning is "is this project even possible with the time and resources we have got?"} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} x{4.4793 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Approaches to estimating}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\bf{Bottom up (analytical or activity-based estimating)}}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} 1. & Break the task into component sub-tasks \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} 2. & and then break the component sub-tasks into sub-sub-tasks \tn % Row Count 6 (+ 2) % Row 3 \SetRowColor{white} 3. & And so on, until we get to elements that we think would not take one or two people more than a week to complete \tn % Row Count 10 (+ 4) % Row 4 \SetRowColor{LightBackground} 4. & To get an overall estimate of the effort needed add up all the effort for the component tasks \tn % Row Count 13 (+ 3) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Recommended if you have no historical records of relevant past projects to guide you} \tn % Row Count 15 (+ 2) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Disadvantage: time-consuming as you have, in effect, to draw up a detailed plan of how the project is to be carried out first} \tn % Row Count 18 (+ 3) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Top Down}}} \tn % Row Count 19 (+ 1) % Row 8 \SetRowColor{LightBackground} 1. & Look for some overall characteristics of the job to be done \tn % Row Count 21 (+ 2) % Row 9 \SetRowColor{white} 2. & From these, produce a global effort estimate \tn % Row Count 23 (+ 2) % Row 10 \SetRowColor{LightBackground} 3. & Nearly always based on our knowledge of past cases \tn % Row Count 25 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.24425 cm} x{3.73275 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Parametric approach}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{One way of base number calculation in top down} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Size drivers: & Number of variables to be completed \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Other drivers often include:} \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} - & Availability of tools \tn % Row Count 5 (+ 1) % Row 4 \SetRowColor{LightBackground} - & Communication overheads, including time waiting for approval \tn % Row Count 7 (+ 2) % Row 5 \SetRowColor{white} - & Stability of the work environment. (Risk of changes to resources and requirements) \tn % Row Count 10 (+ 3) % Row 6 \SetRowColor{LightBackground} - & Size of the project team. Larger jobs with lots of people involved are often less efficient \tn % Row Count 14 (+ 4) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{{\bf{Function points}}} \tn % Row Count 15 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{Not all IT projects involve writing software} \tn % Row Count 16 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Many use off the shelf} \tn % Row Count 17 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{If do need programming tradition to use lines of code to estimate the size, but problems with this:} \tn % Row Count 19 (+ 2) % Row 11 \SetRowColor{white} - & The code is a very technical product – it would need a software expert to estimate the number of lines of code \tn % Row Count 23 (+ 4) % Row 12 \SetRowColor{LightBackground} - & You will not know the exact number of lines of code until quite near the end of the project; most other size drivers are known at the beginning, or at least at an early stage, of the project \tn % Row Count 30 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{1.24425 cm} x{3.73275 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Parametric approach (cont)}} \tn % Row 13 \SetRowColor{LightBackground} - & Lots of languages and some need less code \tn % Row Count 2 (+ 2) % Row 14 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{Better to use function points which estimates the amount of work based on the outputs of the project / features of the program} \tn % Row Count 5 (+ 3) % Row 15 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{We can use a function point count to find out the relative productivity of develop-ment projects that have already been completed} \tn % Row Count 8 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}