<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Profissionais TI - Pra quem respira informação &#187; Valor</title>
	<atom:link href="http://www.profissionaisti.com.br/tag/valor/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.profissionaisti.com.br</link>
	<description>Pra quem respira informação</description>
	<lastBuildDate>Fri, 10 Feb 2012 16:02:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Quanto vale o software que você produz? Boa pergunta, hein?!</title>
		<link>http://www.profissionaisti.com.br/2009/06/quanto-vale-o-software-que-voce-produz-boa-pergunta-hein/</link>
		<comments>http://www.profissionaisti.com.br/2009/06/quanto-vale-o-software-que-voce-produz-boa-pergunta-hein/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 09:00:17 +0000</pubDate>
		<dc:creator>Jackson Caset</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Dia-a-Dia]]></category>
		<category><![CDATA[Dinheiro]]></category>
		<category><![CDATA[Engenharia de Software]]></category>
		<category><![CDATA[Metodologia]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Valor]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=2657</guid>
		<description><![CDATA[Estive na semana passada discutindo com meus sócios algo que, eu creio, já tenha sido discutido no mínimo uma vez em qualquer empresa de desenvolvimento de software: quanto vale nosso software? Buscando na web, encontrei um artigo bacana escrito por José Carlos Macoratti no qual estarei abaixo compartilhando com vocês com o consentimento do próprio [...]]]></description>
			<content:encoded><![CDATA[<p>Estive na semana passada discutindo com meus sócios algo que, eu creio, já tenha sido discutido no mínimo uma vez em qualquer empresa de desenvolvimento de software: quanto vale nosso software?</p>
<p>Buscando na web, encontrei um artigo bacana escrito por <strong><a href="http://www.macoratti.net/eng_qvs.htm" target="_blank">José Carlos Macoratti</a></strong> no qual estarei abaixo compartilhando com vocês com o consentimento do próprio autor.</p>
<p>Se você é um desenvolvedor de software , quer como consultor independente quer trabalhando em uma empresa de desenvolvimento de software , com certeza já ouviu muitas vezes as seguintes indagações:</p>
<h3>Quanto custa o desenvolvimento deste sistema?  ou Quanto você cobra para desenvolver este sistema? </h3>
<h3>Qual o prazo de entrega do sistema? ou Quanto tempo você leva para desenvolver este sistema?</h3>
<p align="left">Isto é perfeitamente normal e previsível , afinal um cliente tem o direito de saber quanto vai custar e em quanto tempo vai ficar pronto o produto que ele deseja receber.</p>
<p align="left">O que não é normal é o fato de que mesmo convivendo com estas indagações no seu dia dia a tanto tempo , você , quer como gerente de projeto ou desenvolvedor , não ter condições de responder com segurança a nenhuma delas.</p>
<p align="left">Quando você contrata o serviço de um pedreiro , ele , após saber exatamente o que tem que fazer faz alguns cálculos e lhe da o preço final do seu trabalho. O mesmo ocorre nas áreas de engenharia civil , mecânica , etc.</p>
<p align="left">Por que é tão difícil estimar o valor de um projeto de software ? Por que é tão complexo fazer estimativas nesta área ?</p>
<p align="left">Seria porque software não têm peso , nem cheiro ? ou seria o fato de que não vemos e nem sentimos um software ?</p>
<p align="left">Creio que as respostas a estas indagações seriam feitas se você soubesse responder a seguinte pergunta:</p>
<h3>Qual o tamanho do sistema?</h3>
<p align="left">Para saber o tamanho do sistema é necessário realizar medições ou medidas. Certo ?</p>
<p align="left">Certo, pois, &#8220;não se consegue controlar o que não se consegue medir&#8221;. (Tom DeMarco)</p>
<p align="left">A métrica é o número que você vincula a uma idéia. Para o projeto de software comum , os aspectos quantitativos onde mais precisamos usar a métrica são:  <span style="color: #0000ff;">escopo, tamanho, custo, risco e tempo empregado.[1]</span></p>
<p align="left">Para que a métrica usada seja útil ela deve possuir as seguintes características: <span style="color: #0000ff;">ser mensurável , ser independente, ser explicável e precisa.</span></p>
<p align="left">Creio que agora você concorda em que há fortes motivos para medir o seu sistema , dentre estes motivos temos:</p>
<ul>
<li>
<div>Fornecer subsídios para determinar o esforço, os recursos, a duração e os custos de desenvolvimento</div>
</li>
<li>
<div>Avaliar a produtividade do processo de desenvolvimento adotado</div>
</li>
<li>
<div>Formar uma base histórica para embasar estimativas futuras</div>
</li>
<li>
<p align="left">Indicar a qualidade do produto</p>
</li>
</ul>
<p align="left">Então qual a medida que você deve usar para determinar o tamanho do seu sistema ?</p>
<h3>Tipos de medidas de tamanho de software</h3>
<p align="left"><strong>1- SLOC &#8211; linhas de código</strong></p>
<p align="left">Medir software contando as linhas de código (SLOC) é uma das medidas mais antigas para determinar o tamanho, esforço e produtividade no desenvolvimento de software.</p>
<p align="left">È muito fácil de usar e aplicar; basta contar a quantidade do número de linhas de código de um programa.</p>
<p align="left">A medida de SLOC é considerada uma medida física do tamanho de software por medir o volume de código-fonte de um programa.</p>
<p align="left">Ela tem no entanto as seguintes desvantagens :</p>
<ul>
<li>Depende da linguagem de programação usada (o número de linhas de um programa Cobol é totalmente diferente de um em Java)</li>
<li>Ausência de padrões de contagem. (Cada linguagem possui suas características de sintaxe e semântica)</li>
<li>
<p align="left">Não pode ser aplicada nas fases iniciais de desenvolvimento (No início o programa ainda não esta escrito)</p>
</li>
</ul>
<p align="left">Nota: No site <a href="http://sunset.usc.edu/research/COCOMOII/" target="_blank">http://sunset.usc.edu/research/COCOMOII/</a> você pode fazer o download de um aplicativo demo da Softstar para realizar estimativas de tamanho usando SLOC.</p>
<p align="left"><strong>2- APF &#8211; Análise de Pontos por função</strong></p>
<p align="left">Podemos dizer que atualmente á a técnica mais usada para medir o tamanho de projetos de software. Foi criada por Alan Albrecht na IBM na década de 70 e consiste em determinar o tamanho funcional (o que é entregue) do sistema através da visão do usuário.</p>
<p align="left">Ela possui as seguintes vantagens:</p>
<ul>
<li>Independe da tecnologia utilizada</li>
<li>É simples de usar e ser entendida pelo usuário e desenvolvedores</li>
<li>é consistente e intercambiável</li>
<li>Pode ser utilizada desde o início do sistema.</li>
</ul>
<p align="left">A APF (Análise de Pontos por Função) pode ser vista como um técnica que permite dimensionar o tamanho de um software a ser desenvolvido , melhorado ou adquirido; e também um técnica para realizar estimativas de custo e recursos para o desenvolvimento e manutenção de software.</p>
<p align="left">A utilização da APF esta normalizada em um manual de contagem de pontos de função da IFPUG (<a href="http://www.ifpug.org/">International Function Point Users Group</a>) constituída em 1996.</p>
<p align="left">Obs: O chapter do IFPUG no Brasil é o BFPUG &#8211; <a href="http://www.bfpug.com.br/" target="_blank">Brazilian Function Point Users Group</a>. (Constituído em 1998)</p>
<p align="left">O esquema do processo de contagem de pontos por função é dado na figura abaixo:</p>
<p style="text-align: center;" align="left"><span style="font-family: Verdana; font-size: x-small;"><a href="http://www.profissionaisti.com.br/wp-content/uploads/2009/06/apf_pc1.jpg"><img class="aligncenter size-medium wp-image-2658" title="Esquema do processo de contagem de pontos por função!" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/06/apf_pc1-300x108.jpg" alt="Esquema do processo de contagem de pontos por função!" width="300" height="108" /></a></span></p>
<p align="justify">Para que você tenha uma idéia dos PF como medida de volume de software abaixo é apresentada uma tabela que mostra o tamanho aproximado de algumas aplicações tipos em pontos por função.[2]</p>
<table border="1" cellspacing="2" cellpadding="5" width="542">
<tbody>
<tr>
<td width="40%" valign="top" bgcolor="#ffff00">
<p align="center">Aplicação</p>
</td>
<td width="10%" valign="top" bgcolor="#ffff00">
<p align="right">PF</p>
</td>
<td width="35%" valign="top" bgcolor="#ffff00">
<p align="center">Aplicação</p>
</td>
<td width="10%" valign="top" bgcolor="#ffff00">
<p align="right">PF</p>
</td>
</tr>
<tr>
<td width="40%" valign="top"><strong>1. Produtos de Software</strong></td>
<td width="10%" valign="top"> </td>
<td width="35%" valign="top"><strong>2. Sist. Comerciais Diversos</strong></td>
<td width="10%" valign="top"> </td>
</tr>
<tr>
<td width="40%" valign="top">
<p align="justify">Ferramenta CASE IEF (Texas)</p>
</td>
<td width="10%" valign="top">
<p align="right">20.000</p>
</td>
<td width="35%" valign="top">
<p align="justify">Imposto de Renda Pessoal</p>
</td>
<td width="10%" valign="top">
<p align="right">2.000</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">Compilador Visual Basic (Microsoft)</p>
</td>
<td width="10%" valign="top">
<p align="right">3.000</p>
</td>
<td width="38%" valign="top">
<p align="justify">Contabilidade Geral</p>
</td>
<td width="10%" valign="top">
<p align="right">1.500</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">SGBD IMS (IBM)</p>
</td>
<td width="10%" valign="top">
<p align="right">3.500</p>
</td>
<td width="38%" valign="top">
<p align="justify">Processamento de Pedidos</p>
</td>
<td width="10%" valign="top">
<p align="right">1.250</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">Gerenciador de TP CICS (IBM)</p>
</td>
<td width="10%" valign="top">
<p align="right">2.000</p>
</td>
<td width="38%" valign="top">
<p align="justify">Recursos Humanos</p>
</td>
<td width="10%" valign="top">
<p align="right">1.200</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">Word 7.0 (Microsoft)</p>
</td>
<td width="10%" valign="top">
<p align="right">2.500</p>
</td>
<td width="38%" valign="top">
<p align="justify">Suporte a Vendas</p>
</td>
<td width="10%" valign="top">
<p align="right">975</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">Excel 6.0 (Microsoft)</p>
</td>
<td width="10%" valign="top">
<p align="right">2.500</p>
</td>
<td width="38%" valign="top">
<p align="justify">Preparação de Orçamento</p>
</td>
<td width="10%" valign="top">
<p align="right">750</p>
</td>
</tr>
<tr>
<td width="41%" valign="top">
<p align="justify">MS Project (Microsoft)</p>
</td>
<td width="10%" valign="top">
<p align="right">3.000</p>
</td>
<td width="38%" valign="top"> </td>
<td width="10%" valign="top"> </td>
</tr>
</tbody>
</table>
<p align="left">Eu não vou dar detalhes sobre como usar o manual de contagem mas vou dar um exemplo de como você pode usar o resultado obtido usando a APF para estimar esforço , prazo e custo de um software.</p>
<p align="left">Vamos supor que você foi consultado sobre o desenvolvimento de um sistema <strong>cadastro de clientes</strong> onde é possível realizar as seguintes tarefas:</p>
<ul>
<li>Listagem por ordem alfabética</li>
<li>exportar o cadastro para outro sistema via arquivo texto</li>
</ul>
<p align="left">Usando o manual de contagem da APF teríamos:</p>
<p align="left"><strong>ALI &#8211; 01 ( o arquivo de clientes )<br />
AIE &#8211;  0<br />
EE &#8211;  01 ( inclusão de cliente )<br />
SE &#8211;  01 ( listagem por ordem alfabética )<br />
CE &#8211;  01 ( exportar arquivo texto)</strong>
</p>
<p align="left">Se considerarmos todos os tipos de função como de complexidade <strong>Baixa</strong> teremos:</p>
<p align="left">Pontos de função Brutos não ajustados :</p>
<p align="left"><span style="color: #ff0000;">PFB = ALI x 7 + AIE x 5 + EE x 3 + SE x 4 + CE x 3 = 1 x 7 + 0 x 5 + 1 x 3 + 1 x 4 + 1 x 3 = 17</span></p>
<p align="left">Contando os fatores de ajustes  teremos um total igual a 45.</p>
<p align="left">Valor de fator de ajuste :</p>
<p align="left"><span style="color: #ff0000;">VFA =  0,65  + (0,001 x 45 ) = 1.1 </span></p>
<p align="left">Valor dos pontos de função Ajustados:</p>
<p align="left"><span style="color: #ff0000;">PFA = VFA  x  PFB =  1,1 x  17  = 18,7</span></p>
<p align="left">Pronto!</p>
<p align="left">Usando APF chegamos ao tamanho do sistema.</p>
<p align="left"><span style="color: #ff0000;">O seu tamanho é 18,7 pontos por função.</span></p>
<p align="left"><strong>E agora ?</strong></p>
<p align="left"><strong>Nota:</strong>  <em>Dizer que o tamanho de um projeto é de 1000 PF nada significa.  Quando podemos comparar medidas feitas em APF é que as coisas começam a fazer sentido. Assim se temos dois projetos , um com 1000 PF e outro com 2000 PF, podemos concluir que o segundo temo o dobro do tamanho do primeiro.</em></p>
<p align="left"><em>Assim como dizer que uma construção possui 400 metros quadrados de área construída não nos permite estimar , apenas levando em conta esta medida , valor da mesma;  dizer que um projeto possui 3000 PF também não nos dá a idéia do custo do projeto.</em></p>
<p align="left">Agora podemos estimar <strong>esforço , prazo e custo</strong>. Para isto iremos usar as seguintes considerações:</p>
<p align="left">1- Considerando que uma produtividade média de 10 hs / PF.</p>
<p align="left">2- Considerando que a média de jornada de trabalho é de 6 horas.</p>
<p align="left">3- Considerando que o valor de uma hora de trabalho é de R$ 25,00.</p>
<p align="left">Concluímos que :</p>
<p align="left"><strong>Esforço =  10hs / PF  =   10 x 18,7 =  187 horas<br />
Prazo =   187 h / ( 4 x 6 ) =  7,8 dias<br />
Custo =  187 h x R$ 25,00 = R$ 4.675,00</strong>
</p>
<p align="left">Foram usadas as seguintes fórmulas:</p>
<p align="left"><span style="color: #ff0000;">Produtividade no desenvolvimento = Horas por PF<br />
Esforço de desenvolvimento = Produtividade(H/PF) * Tamanho(PF)<br />
Custo de software = Tamanho (PF) * Custo(R$/PF)</span>
</p>
<p align="left">Neste artigo procurei abordar de forma simples e objetiva a importância da utilização de métricas no desenvolvimento de projetos software com a finalidade de realizar estimativas.</p>
<p align="left">A métrica de software e suas implicações é um assunto muito vasto que você poderá pesquisar nos links dos sites indicados e também em:</p>
<p align="left">NESMA &#8211; <a href="http://www.nesma.nl/english/nesma&amp;ifpug.htm" target="_blank">http://www.nesma.nl/english/nesma&amp;ifpug.htm</a><br />
COCOMO &#8211; <a href="http://www1.jsc.nasa.gov/bu2/COCOMO.html" target="_blank">http://www1.jsc.nasa.gov/bu2/COCOMO.html</a><br />
FATHO &#8211; <a href="http://www.fattocs.com.br/" target="_blank">http://www.fattocs.com.br/</a><br />
Aplicativo para auxiliar na contagem APF &#8211; <a href="http://www.bsb.netium.com.br/mecenas/apf.htm" target="_blank">http://www.bsb.netium.com.br/mecenas/apf.htm</a>
</p>
<p align="left">Por enquanto lembre-se sempre que :</p>
<p align="left"><em>&#8220;Se você não sabe para onde deseja ir , um mapa não vai lhe ajudar.&#8221;</em></p>
<p align="left">Referências</p>
<p align="left">[1] &#8211; DeMarco, Tom &#8211; Controle de projetos de Software &#8211; Editora Campus, 1991.<br />
[2] &#8211; Jones, Capers &#8211; Estimating Sofware Costs &#8211; McGraw-Hill, 1998. Veja também <a href="http://www.spr.com/">www.spr.com</a> site da empresa do autor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/06/quanto-vale-o-software-que-voce-produz-boa-pergunta-hein/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

