Programming productivity: Difference between revisions

Content deleted Content added
BG19bot (talk | contribs)
m WP:CHECKWIKI error fix for #61. Punctuation goes before References. Do general fixes if a problem exists. - using AWB (11751)
Line 2:
 
==Terminology==
Productivity is an important topic investigated in disciplines as various as manufacturing, organizational psychology, industrial engineering, strategic management, finance, accounting, marketing and economics. Levels of analysis include the individual, the group, divisional, organizational and national levels [5]. Due to this diversity, there is no clear-cut definition of productivity and its influencing factors, although researched has been conducted for more than a century. Like in software engineering, this lack of common agreement on what actually constitutes productivity, is perceived as a major obstacle for a substantiated discussion of productivity. <ref>Neal, A., Hesketh, B., Anderson, N., Ones, D. S., Sinangil, H. K., Viswesvaran, C. (ed.) Handbook of Industrial, Work and Organizational Psychology Productivity in Organizations. Sage Publications Ltd, 2002, 8-24</ref> The following definitions describe the best consensus on the terminology.<ref name="tangen2005">Tangen, S. Demystifying productivity and performance, International Journal of Productivity and Performance, 2005, 54, 34-36</ref>
 
===Productivity===
Line 12:
However, across the various disciplines different notions and, particularly, different measurement units for input and output can be found. The manufacturing industry typically uses a straight-forward relation between the number of units produced and the number of units consumed.<ref>Chew, B. W. No-Nonsense Guide to Measuring Productivity. Harvard Business Review, 1988, 66, 110-115</ref> Non-manufacturing industries usually use man-hours or similar units to enable comparison between outputs and inputs.
 
One basic agreement is that the meaning of productivity and the means for measuring it vary depending of what context is under evaluation. In a manufacturing company the possible contexts are:<ref name="tangen2005" />:
 
* the individual machine or manufacturing system;
Line 29:
 
It has a wider scope than performance, i.e. the number of factors that influence profitability is greater than the number of factors than influence productivity. Particularly, profitability can change without any change to the productivity, e.g. due to external conditions like cost or price inflation. Besides that, the interdependency between productivity and profitability is usually delayed, i.e. gains in productivity are rarely reflected in immediate profitability gains are more likely realized on the long-term.
 
===Performance===
 
The term performance is even broader than productivity and profitability and covers a plethora of factors that influence a company’s success. Hence, well-known performance controlling instruments like the [[Balanced Scorecard]] do include productivity as a factor that is central but not unique. Other relevant factors are e.g. the customers’ or stakeholders’ perception of the company.
 
===Efficiency and Effectiveness===
 
Line 37 ⟶ 39:
 
Generally, it is assumed, that efficiency can be quantified, e.g. by utilization rates, considerably more easily than effectiveness.
 
===Quality===
 
Tangen states: "Improvements in quality, other than the fact that no-fault products add to output levels, ought not to be included in the concept of productivity."<ref name="tangen2005" /> However, most of the classic literature in non-software disciplines, especially in the manufacturing area, does not explicitly discuss the role of quality of the output in the productivity ratio.<ref>Thomas, B. E. & Baron, J. P. Evaluating Knowledge Worker Productivity: Literature Review Construction Engineering Research Lab (USACERL), 1994</ref> More recent works from non-manufacturing disciplines have a stronger focus on knowledge, office or white-collar work and hence increasingly discuss the role of quality with respect to quality.<ref name="drucker1999" /><ref name="ramirez2004" /><ref>Al-Darrab, I. A. Relationships between productivity, efficiency, utilization, and quality. Work Study, 2000, 49, 97-104</ref><ref name="saari2006">Saari, S. Productivity: Theory and Measurement. In Business Proc. of the European Productivity Conference (EPC), 2006</ref><ref>Ray, P., Sahu, S. The Measurement and Evaluation of White-collar Productivity. International Journal of Operations & Production Management, 1989, 9, 28-47</ref><ref name="drucker1999" /><ref name="ramirez2004 />
 
Drucker stresses the importance of quality for the evaluation of knowledge worker productivity: "Productivity of knowledge work therefore has to aim first at obtaining quality—and not minimum quality but optimum if not maximum quality. Only then can one ask: "What is the volume, the quantity of work?""<ref name="drucker1999" />
Line 48 ⟶ 51:
 
However, it appears that these efforts to include the quality in the determination of productivity did not lead to an operationalizable concept yet. It currently remains unclear how to quantify the vague terms “Output quality and quantity” as well as “Input quality and quantity”, let alone to calculate the ratio.
 
==State-of-the-Art in Programming Productivity==
 
In software development things are more complicated than in the production of goods. Software development is an engineering process.
 
===COCOMO II===
 
Line 69 ⟶ 74:
===Peopleware===
 
The famous book [[Peopleware: Productive Projects and Teams]] by de Marco and Lister<ref>Tom DeMarco, Timothy Lister. Peopleware: Productive Projects and Teams, 1987</ref> brought the importance of people-related factors to the attention of a broader audience. They collected in many software projects experiences with good and bad management practice that have an influence on the productivity of the team. They and others showed that these are the decisive issues in software engineering but were only able to describe them anecdotally.
 
== Factors influencing programming productivity ==
There are probably a large amount of factors influencing the programming productivity of individuals and teams. For example, the used [[software development process]] probably influences the effectiveness and efficiency of a team.
 
The [[personalities]] of software programmers influence the used coding styles which, in turn, influence the productivity of the programmers.<ref>{{Cite journal|title = Links between the personalities, styles and performance in computer programming|url = http://elib.uni-stuttgart.de/opus/volltexte/2015/10315/|journal = Journal of Systems and Software|date = 2016|pages = 228-241228–241|volume = 111|doi = 10.1016/j.jss.2015.09.011|first = Zahra|last = Karimi|first2 = Ahmad|last2 = Baraani-Dastjerdi|first3 = Nasser|last3 = Ghasem-Aghaee|first4 = Stefan|last4 = Wagner}}</ref>
 
== References ==