Vous êtes sur la page 1sur 62

Qualidade e Produtividade

A receita da Competitividade
Gibeon Aquino e Silvio Meira

m 1968, especialistas se renem em Garmisch, para discut problemas de desenvolvimento de software

Eng.Software: A gnesis

http://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html

problemas da poca
Produtos de Software de baixa qualidade e sem atender requisitos e Projetos realizados acima
do oramento e do

tempo previsto e vez por outra ingerenciaveis

problemas do passado?

qual era a preocupao?

quanto melhoramos?
Chaos Report 2006 2004 2002 2000 1998 1996 1994 35% 29% 34% 28% 26% 27% 16% 0% 20% 31% 40% 60% 19% 18% 15% 23% 28% 40% 46% 53% 51% 49% 46% 33% 53% 80% 100% Sucesso Cancelados Desafiados

Talvez....
Tenhamos que reaprender o que significa Qualidade

E
Redefinir como alcan-la

O que Qualidade??
Para Crosby (Crosby, 1979) ela pode ser definida como Conformidade com os requisitos do usurio Baldrige National Quality Program (BNQP, 2007) referem-se qualidade como Qualidade dirigida ao cliente e declaram a satisfao do cliente como ponto mais relevante

Na ISO 9000, a qualidade o grau em que um conjunto de caractersticas inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes.

QUALIDADE
(o

que isso mesmo?)

Six-Sigma, TQM, ISO... e em Software?


CMM, CMMi, ISO...

e... funcionam mesmo? e... a que custo?

critrio de qualidade MERCADO


Windows XP com 50.000 defeitos: 1d/KLOC $50...

custo e preo:

Windows XP com 50 defeitos: 1d/MLOC $50.000?...

o que as empresas [de software, inclusive] querem?

qualidade?
NO...

querem SOBREVIVER
e para sobreviver preciso ser COMPETITIVO

uma receita para competitividade


Descobrir
o que os clientes vo comprar

Produzir com mais


Agilidade Qualidade

do que a competio e... Vender


com margens razoveis (Com um menor custo)

como produzir mais rpido?


Agilidade na produo Melhorar Produtividade Minimizar erros (No ter que refazer) Melhorar Qualidade de Processo

como produzir com custo mais baixo?


Produzir mais com menos (Produtividade = Sadas/Entradas) Melhorar Produtividade No cometer erros (que implicam em retrabalho) Melhorar Qualidade de Processo

como produzir com mais qualidade do que os outros?


Investimento {alto} na preveno de erros (Melhorar Qualidade)
O QUE PODE CUSTAR MUITO CARO...

Melhorar a produtividade na execuo destas tcnicas essencial

deus e o diabo na terra do software


bem e mal yin & yang logo:
no podemos ver uma sem ver a outra uma responsvel pela vida da outra paradoxalmente, ao mesmo tempo em que parecem antagnicos, um fortalece a existncia do outro

produtividade & qualidade

o LEGO no est montado


Qualidade do processo Qualidade do produto Eficincia na produo (?) Eficincia nas Vendas (?)

Qualidade e Produtividade devem ser tratadas em mltiplas dimenses

Humanas Organizacionais Tcnicas Econmicas

porque no se melhorou significativamente a capacidade de produzir software nestes 40 anos?


talvez a engenharia de software tenha se voltado para apenas um dos lados da dicotomia Q&P e... ...aes ...teorias, mtodos, modelos, ambientes e ferramentas visavam desenvolvimento de software

por que?
Um dos objetivos bsicos da Engenharia de Software transformar a criao de sistemas software realizada de maneira artstica, indisciplinada e pouco entendvel para uma forma devidamente controlada, quantificada e previsvel.

E os Modelos de Maturidade?

Qualidade

Produtividade Tempo

...strong due diligence is recommended when evaluating the application of the highest levels of CMM to every project. There is a cost vs. productivity balance that needs to be assessed to ensure that the right decision is made in each specific context...
Gartner Research: Weigh Costs vs. Productivity When Pursuing CMM Initiatives Partha Iyengar, Steve Bittinger, Matthew Hotle

Experimento de Stanley Milgram, 1961


Cidados comuns, instigados por alguma forma de autoridade, tambm teriam a capacidade de infligir dor e sofrimento a pessoas que nunca lhes fizeram mal?

Resultados iniciais mostraram que 65% das cobaias obedeciam at o fim.

no sabemos muito sobre performance... nem se melhoramos... depois de 40 anos...


Dentre os projetos de sucesso....
Chaos Report 2001

estado da arte e pratica de produtividade e

qualidade
tem que evoluir muito...

e...
tratar as questes de Q&P de software tecnicamente ou atravs de aes pontuais no leva a ganhos significativos:
preciso investigar as INSTITUIES ...e ORGANIZAES ...e pensar fora da caixa, em termos de economia, sociologia, recursos humanos, administrao...

porque o PROBLEMA vai ficar AINDA MAIS COMPLEXO...

Receita do Sucesso?

MAS... ser que h uma

como?

Quer dizer...
O caminho para o Sucesso [ou sobrevivncia] passa [necessariamente] por iniciativas de melhoria da Produtividade e Qualidade

E agora, pra onde ir?


Qualidade CMMi PSP, TSP, People CMM ISO Six Sigma SWEBOK e PMBOK Produtividade

Como melhorar a Produtividade?

Diminuindo os custos de desenvolvimento...


Contratando os servios da PPI...

O dia a dia dos Programadores

Reunio de acompanhamento

Pair Programming

Diminuindo a ociosidade

Quais so as outras alternativas?

Aumentando a produtividade!!!
Mas como??
Gerando cdigo automaticamente Reusando componentes Usando os Paradigmas de L.P mais modernos (OO, AOP, etc) Melhorando os processos de desenvolvimento (RUP, MSF, XP, SCRUM....) Implantando modelos de qualidade (CMM, CMMI, ISO, PCMM) Aplicando Patterns (Organizational, Process, Analisys, Architecture, Design, Implementation,...) Usando ferramentas de apoio Investindo no capital humano Gesto do conhecimento

Problema
Falta de uma viso sistmica
Iniciativas e avanos isolados

Pouco conhecimento sobre as foras que regem a Produtividade Falta de uma perspectiva econmica para engenharia de software

Comparando a Produtividade
Projeto 1 Java 20 KLOC 50 PM Prod = 0,4 KLOC/PM DD = 1d/kloc Jogo de Celular 50 FPs Prod = 1 FP/PM Projeto 2 .NET 50 KLOC 100 PM Prod = 0,5 KLOC/PM DD = 5d/kloc Locadora on-line 300 FPs Prod = 3 FP/PM

Antes de responder Como melhorar a produtividade precisamos saber responder....

O que produtividade?
Productivity is the amount of output created (in terms of goods produced or services rendered) per unit input used. wikipedia Productivity is a measure relating a quantity or quality of output to the inputs required to produce it. Cambridge Dictionary Em geral.... a razo entre a Quantidade produzida e o custo para produzi-la.

Simples assim.... Quantidade Produzida Produtividade = --------------------------Custo para produzi-la

Conseqncias...
Aumentar a quantidade produzida
Produo de quantidades sem preocupao com a qualidade Incorporao de funcionalidades que no agregam valor (no so usadas)

Diminuir o custo de produo


Controle excessivo do tempo (Ambiente sem espao para inovao)

Investigando a origem do conceito


Economistas j vem estudando a mais de um sculo o conceito de produtividade
Capital Productivity output per unit of capital goods employed Labor Productivity average output per worker or per worker-hour, an output which could be measured in physical terms or in price terms

Em 1860, Karl Marx, rejeitou a idia da produtividade convencional quando publicou Labour Theory of Value
A sharp distinction is drawn by Marx for the productivity of labor in terms of physical outputs produced, and the value or price of those outputs. A small physical output might create a large value, while a large physical output might create only a small value - with obvious consequences for the way the labor producing it would be rewarded in the marketplace. Moreover if a large output value was created by people, this did not necessarily have anything to do with their physical productivity; it could be just due to the favorable valuation of that output when traded in markets. Therefore, merely focusing on an output value realized, to assess productivity, might lead to mistaken conclusions. http://en.wikipedia.org/wiki/Productivity_(economics) http://www.marxist.com/Economy/theory_of_value_1.html

Produtividade (visto de outra forma)


Valor Produzido Produtividade = --------------------Valor Consumido
Valor Produzido
Valor para o cliente Qualidade do produto
Interna Externa

Inovao embutida no produto Componentes reusveis Conhecimento e experincia que o desenvolvimento do produto incorporou na organizao?

Valor consumido
Custos diretos do projeto Qualidade de Vida das pessoas envolvidas Desvio do Foco da empresa

Value-based software engineering: a case study


Developers perform much of current software engineering practice and research in a value-neutral setting, in which they tend to do the following:
treat every requirement, use case, object, and defect as equally important; express and practice methods as largely logical activities involving mappings and transformations; use earned-value systems to track project cost and schedule, but not stakeholder or business value; practice a separation of concerns that confines software engineers responsibility to turning software requirements into verified code; and set goals for improving productivity or correctness independent of stakeholder value considerations.

A project can be tremendously successful with respect to cost-oriented earned value, but an absolute disaster in terms of actual organizational value earned"
Boehm, B. and Huang, L. G. 2003. Value-Based Software Engineering: A Case Study. Computer 36, 3 (Mar. 2003), 33-41. DOI= http://dx.doi.org/10.1109/MC.2003.1185215

Engenharia de Software <-> Economia Onde esto as ligaes?


Anlises econmicas sobre questes relacionadas computao Economics of advertising and search for best prices [Stigler, 1961] The economics of investments in research and development [Arrow, 1962] The economics of the overall knowledge industry [Machlup, 1962] Economic Theory of Teams [Marschak & Radner, 1972] The Economics of Computers [Sharpe, 1969] Modelos de estimativa de custos SLIM [Putnam, 1978], PRICE S [Freiman-Park, 1979], COCOMO [Boehm, 1981], SEER [Jensen, 1983], Estimacs [Rubin, 1985] and SPQR/Checkpoint [Jones, 1986]. Software Engineering Economics Barry Boehm Kevin Sullivan Economics-Driven Software Engineering Research (EDSER)

Software economics is the sub-field of software engineering that seeks improvements which enable software engineers to reason more effectively about important economic aspects of software development, including cost, benefit, risk, opportunity, uncertainty, incomplete knowledge and the value of additional information, implications of competition, and so forth.
Boehm, B., Sullivan, K. Software economics: a roadmap

Conseqncias...

Se o conceito sobre produtividade no muito claro, o que podemos dizer sobre a medio da produtividade?

Medindo a produtividade

Produtividade (visto de outra forma)


Valor Produzido Produtividade = --------------------Valor Consumido
Valor Produzido
Como medir a complexidade do produto (aspectos no funcionais)? Como medir o valor baseado na viso do cliente para o produto (timeto-market, impacto nos negcios, etc.)? Como medir o grau de inovao embutido no produto? Como medir a qualidade do produto entregue (interna e externa)? Como medir o potencial do reuso do produto? Como medir o conhecimento e experincia que o desenvolvimento do produto incorporou na organizao?

Valor consumido
Como medir o que foi consumido das pessoas em projetos estressantes? Como medir o impacto de projetos que andam em caminhos diferentes do direcionamento da empresa?

A realidade
Apesar de sabermos que... A maioria dos dados que se tem anlise de produtividade se baseiam na perspectiva quantitativa de produo

Maxwell, K. D., Van Wassenhove, L., and Dutta, S. 1996. Software Development Productivity of European Space, Military, and Industrial Applications.

Medio e o Efeito Hawthorne


Pesquisa comandada pela General Electric (entre 1924 e 1927), tinha como objetivo encontrar o melhor nvel de iluminao para Produtividade
Estudo 1: Produtividade melhorada em trs departamentos, com a iluminao aumentando ou diminuindo Estudo 2: Dois grupos foram testados, em um deles no se melhorou a iluminao e no outro a iluminao foi melhorada a cada passo No houve diferena entre a produtividade dos grupos Estudo 3: Dois grupos foram testados, em um deles a iluminao manteve-se constante e no outro a iluminao foi diminuda a cada passo No houve diferena entre a produtividade dos grupos Estudo 4: Duas mulheres foram testadas A produo das duas manteve-se constante, mesmo aps grandes variaes na iluminao.

O que afeta a produtividade?


(segundo os estudos baseados nas medidas tradicionais)

O que afeta a produtividade?


O Chartered Institute of Personnel and Development (CIPD) estima uma perda de produtividade de 21 dias/ano pelo uso indevido de E-mail1

Um estudo realizado pelo arquiteto McCue com apoio da rea de gesto da IBM concluiu que o espao ideal deve ser de 100 ps2 (9m2) Marco, T., Peopleware.
1 - http://www.bized.ac.uk/current/mind/2003_4/220304.htm

Reunies so indispensveis quando se quer no fazer nada (john kenneth galbraith)

O que afeta a produtividade?


[Waltson & Felix, 1977] encontraram 29 fatores que afetam a produtividade em um estudo na IBM [Bailey & Basili, 1981] identificaram 21 parmetros para a produtividade [Vosburgh, 1984] encontrou 14 fatores significantes, aponta duas macro categorias
Controladas pela organizao (Tamanho da equipe, processos, ferramentas) Influncia de 37% No-controladas pela organizao (Complexidade do negcio, envolvimento do cliente, ...) Influncia de 28% Os outros 35% so inexplicados pela modelo estatstico adotado (Erros na medio)

[Boehm, 1981] aponta 15 fatores (COCOMO) [Jones, 1986] aponta mais de 40 variveis
Descreve problemas e paradoxos relacionados ao assuntos

O que afeta a produtividade?


[Boehm, 1981] e [Scacchi, 1984] reportam que a baixa produtividade est diretamente relacionada a m gesto [Behrens,1983 ] concluiu em seu estudo que pequenos times so mais produtivos [Bruckhaus, 1996] demonstra que a incluso de ferramentas em projetos pode aumentar ou diminuir a produtividade dependendo do tamanho da equipe e do processo de desenvolvimento [Clincy,2003] prope que existem quatro reas que mais impactam na habilidade da organizao aumentar sua produtividade
Estrutura e clima organizacional Sistemas de recompensa Processos de desenvolvimento de Software O uso de ferramentas.

O que afeta a produtividade (segundo o SPR- Software Productivity Research)?


Tipo de Software
Embarcado, Sistemas de Informao, Mobile, Outsourced, etc.

Fatores especficos do projeto


Tamanho, complexidade, requisitos no-funcionais, natureza (melhoria, desenvolvimento, correo)

Questes tcnicas
Metodologia, Ferramentas, prticas, linguagem de programao, reusabilidade

Questes sociais
Experincia do time e do gerente, Experincia e tipo de cliente, Estrutura organizacional, Motivao, polticas de recompensa, etc.

Questes ergonmicas
Nveis de interrupo e distrao, tamanho e conforto do espao de trabalho, equipamentos e conectividade

Questes relacionadas localidade


Leis trabalhistas, hbitos, educao, etc.

Impacto na Produtividade
New Development Factors
Reuse of high-quality deliverables High management experience High Staff experience Effective method/process Effective management tools Effective technical CASE tools High-level programming languages Quality estimating tools Specialist occupations Effective client participation Formal cost/schedule estimates Unpaid overtime Use formal inspections Good office ergonomics Quality measurement Low project complexity Quick response time Moderate schedule pressure Productivity measurements Low requirements creep Annual training > 10 days No geographic separation High team morale Hierarchical organization SUM

Positive Range
350% 65% 55% 35% 30% 27% 24% 19% 18% 18% 17% 15% 15% 15% 14% 13% 12% 11% 10% 9% 8% 8% 7% 5% 800%

New Development Factors


Reuse of poor-quality deliverables Management inexperience Staff inexperience High requirements creep Inadequate technical CASE tools No use of inspections Inadequate management tools Ineffective method/processes No quality estimations High project complexity Excessive schedule pressure Slow response time Crowded office space Low-level languages Geographic separation Informal cost/schedule estimates Generalist ocuupations No client participation No annual training No quality measurements Matrix organization No productivity measurements Poor team morale No unpaid overtime SUM

Negative Range
-300% -90% -87% -77% -75% -48% -45% -41% -40% -35% -30% -30% -27% -25% -24% -22% -15% -13% -12% -10% -8% -7% -6% 0% -1067%

Software Assesments, Benchmarks and Best Practices Caper Jones

Relao entre tamanho e produtividade


MIS productivity Levels
50 Function Points per Staff Month 40 30 20 10 0 1 10 100 1000 10000 100000 Size in Function Points New Maintenance Average

10.000 5.000 2.500 1.250 625 300 150 70 30 10 25

Application size in Function Points

Fonte: Software Assesments, Benchmarks and Best Practices, Figura 2.3 e 7.1

50

Function points per Person-Month

Adio de pessoas ao projeto [Simmons, 2001]


Adio de pessoas ao projeto no aumenta a produtividade global na mesma proporo!!!

O pior que pode diminuir...

Relao entre LP e Produtividade


Qtde. Amostras
Linguagem ISBSG TI Mtricas min COBOL 258 1 1,2 CSP 17 0 2,1 DELPHI 51 6 1 JAVA 44 18 2,8 PHP 9 3 1,5 VB 48 6 1 .NET 9 3 2,7

Produtividade
max media mediana CEF 15 15 327,4 22,5 7,4 15 39,8 10,3 7,1 14 115,9 13,3 20,9 17 259,7 32,6 6,8 12 29,1 9,1 7,1 14 115,9 13,6 8,3 29,1 10,6

Um projeto em Java varia de 2.8 a 259.7 h/pf!!! Por que ser???? .NET mais produtiva que Java? O que essa tabela diz?

Presso de Prazo

Melhorando a produtividade
Segundo [Boehm, 1999], trs so as estratgias:
working faster (tem um impacto de 8%)
Ferramentas e processos

working smarter (impacto de 17%)


Planejamento, Gerenciamento e Eficincia

working avoidance (impacto de 47%)


Reuso

Referncias
[Vosburgh, 1984] Vosburgh, J., et al. Productivity factors and programming environments. In Proceedings of the 7th international conference on Software engineering, Orlando, Florida, United States, pp. 143 152, 1984. [Jones, 1986] Jones, C., Programming Productivity, McGraw-Hill, New York, 1986. [Demarco, 1999] Demarco, T., Peopleware: productive projects and teams, 2nd Ed. Dorset House Publishing, 1999. [Clincy, 2003] Clincy, V. A., Software Development Productivity and Cycle Time Reduction. pp. 278-287, (2003). [Boehm, 1981] Boehm, B., Software Engineering Economics (Prentice-Hall Advances in Computing Science & Technology Series). Prentice Hall, 1981. [Scachi, 1984] Scacchi, W., Managing Software Engineering Projects: A social Analysis. IEEE Trans. Soft. Engr.,SE-10(1), 1984, 49-59. [Behrens, 1983] Behrens, C. A., Measuring Software Productivity of Computer System Development Activities with Point Functions. IEEE Trans. Soft. Engr. SE-9(6), (1983), 648-652. [Boehm, 2003] Boehm, B. W. and Sullivan, K. J. 2000. Software economics: a roadmap. In Proceedings of the Conference on the Future of Software Engineering (Limerick, Ireland, June 04 - 11, 2000). ICSE '00. ACM Press, New York, NY, 319-343. DOI= http://doi.acm.org/10.1145/336512.336584 [Maxwell, 1996] Maxwell, K. D., Van Wassenhove, L., and Dutta, S. 1996. Software Development Productivity of European Space, Military, and Industrial Applications. IEEE Trans. Softw. Eng. 22, 10 (Oct. 1996), 706-718. DOI= http://dx.doi.org/10.1109/32.544349 [Bruckhaus, 1996] Bruckhaus, T., Madhavji, N. H., Janssen, I., and Henshaw, J. 1996. The Impact of Tools on Software Productivity. IEEE Softw. 13, 5 (Sep. 1996), 29-38. DOI= http://dx.doi.org/10.1109/52.536456

Gibeon Aquino gibeon.aquino@cesar.org.br Silvio Meira silvio@cesar.org.br

Vous aimerez peut-être aussi