Arquivos da Categoria 'Desenvolvimento'

Inovar, pra quê?

“Tema a mudança e abra mão das melhorias.”
Tirinha auto-explicativa:

Planilha de Emissão de Proposta

Para quem trabalha com vendas, grande parte do seu dia a dia é dedicado a emissão de proposta de serviço/produto. É nela que o vendedor oficializa o oferecimento de produtos de sua empresa.

Apesar de sua importância, muitas empresas não possuem uma ferramenta ágil que permitem a emissão das propostas.

Para auxiliar nesse tarefa, proponho aqui uma planilha excel (acho que todos perceberam que me amarro em planilhas!) que poderá ajudá-lo enquanto não se tem um sistema destinado a essa operação.

A planilha contém:

1) Tabela de Preço: onde você adiciona seus produtos, com um código único, descrição, unidade e valor.

2) Planilha de proposta: Possui campos destinados a preencher o código da proposta, o nome do cliente, endereço, nome do contato e telefone.

A parte mais interessante fica por conta da planilha de produtos. Nela, você apenas seleciona o código do seu produto (coluna COD) e a planilha, através da função PROCV do excel, trás todas as informações do seu produto. A outra informação a ser inserida por você é a quantidade a ser vendida (Coluna Quantidade).

Feito isso, a planilha calcula o total por produto e o total geral.

Após o trabalho braçal, basta imprimi-la e torcer para que o cliente assine. De brinde, coloquei um botão que ativa uma macro para “limpar” a planilha.

Essa planilha se adequa a qualquer tipo de produto ou serviço. Vai vender salgadinhos? pode usar a planilha!! :)

Lembre-se: essa planilha é apenas uma apoio para a emissão (impressão) de propostas. Um sistema para essa finalidade é de fundamental importância para medir o seu desempenho em vendas: quantidade de propostas emitidas; total em valor das propostas emitidas; total em valor das propostas rejeitadas; quais os produtos mais vendidos; Quantos produtos já foram vendidos. E por aí vai.

Fiquem a vontade para propor melhorias.

Download da Planilha

Forte Abraço!!
Post publicado simultaneamente em Blog Renato Borges.

CrowdTest (Crowdsourcing)

O CrowdTest é um serviço realizado organizando mão-de-obra disponível na Internet para execução de testes. Esse modelo de trabalho, conhecido como crowdsourcing, permite que as empresas tenham seus produtos testados por usuários reais e que as pessoas sejam recompensadas pelo seu trabalho de encontrar as falhas.

Nos projetos de CrowdTest temos três papéis: o cliente, a equipe do CrowdTest e os testadores. O CrowdTest recebe as demandas dos clientes, organiza o projeto e a equipe que irá participar, recebe as falhas, faz a validação e disponibiliza o resultado para os clientes. O diagrama a seguir detalha como são os passos dentro de um projeto.

O modelo  começou a operar em março deste ano no Brasil e já realizou cerca de 20 ações com empresas como Buscapé, Sul-América, Via6, CupomNow, entre outras. O site (http://www.crowdtest.me/) surgiu a partir da experiência anterior de Barros à frente da a Base2, empresa especializada em testar softwares.

O Site uTest (http://www.utest.com/) é um dos maiores do mundo e conta com um grande número de testadores ao redor do globo que testam segmentos da industria de software como Mobile, Web e Sistemas Desktop.

A conversa sobre Crowdsourcing começa a fazer parte das discussões nos grupos de teste espalhados pelo Brasil, já que isso pode colocar em xeque equipes de Testes dentro de empresas que podem contar com um serviço executado coletivamente fazendo frente ao trabalho de equipes reduzidas dentro das empresas que geralmente custam mais caro.

 

Fonte:

Gerenciador de Cupons – Compra Coletiva

Com o crescimento do mercado online graças ao fenômeno das compras coletivas, novas necessidades começam a surgir para os amantes dos descontos oferecidos pelos sites de ofertas.

Consumidores necessitam controlar seus cupons, já que cada cupom tem prazo definido para utilização e são adquiridos em diferentes sites e inúmeros fornecedores. Diante deste cenário a empresa amazonense SOPIXEL desenvolveu uma solução para atender a demanda existente.

Consumidores necessitam controlar seus cupons, já que cada cupom tem prazo definido para utilização e são adquiridos em diferentes sites e inúmeros fornecedores. Diante deste cenário a empresa amazonense SOPIXEL desenvolveu uma solução para atender a demanda existente.

Depoimento:
O PortaCupom é simples, prático e evita que eu perca meus Cupons.
- Domingos Coelho

Dados do Aplicativo:
Plataforma: Android Versão 1.6 ou superior
Versão: 1.1 atualizada em 15/06/2011
Informações: http://portacupom.sopixel.com.br/
DOWNLOAD

Programação Paralela

Ultimamente, os processadores de computadores e notebooks estão sendo fabricados com mais de um núcleo. Isso requer um olhar especial por quem desenvolve software e o deseja fazer com qualidade, por isso, vamos falar sobre Programação Paralela.

Você sabe o que é isto? Muita gente confunde programação paralela com programação concorrente. Concorrência é quando um servidor atende a vários clientes escalando um determinado tempo para atender cada um, já o Paralelismo é quando vários servidores atendem vários clientes ao mesmo tempo, reduzindo o tempo de resposta para os clientes.

Com isso, há um ganho em performance, pois assim, desafoga o núcleo do processador e diminui o consumo de energia do computador, visto que isso é uma grande preocupação hoje em dia com o que é chamado de TI Verde.

Mas, escrever programas que utilizem paralelismo é um pouco diferente de escrever de maneira seqüencial, como estamos mais acostumados a fazer. Temos que escolher que partes do programa utilizarão código que serão executados em paralelo. Outras preocupações que devemos ter são quando as informações tiverem que ser processadas em uma determinada ordem ou definir até que nível de paralelismo será utilizado.

Visando facilitar essas decisões que o desenvolvedor terá que tomar, irei mostrar aqui a solução que a tecnologia .Net da Microsoft utiliza para paralelismo.

A partir da versão 4.0 do .Net Framework, foi introduzido um novo modelo para desenvolver aplicativos que realizem tarefas simultaneamente, chamado de Biblioteca Paralela de Tarefas, ou, Task Parallel Library (no original).

Diferentemente da abordagem tradicional para multitarefa, onde você pode criar e gerenciar um conjunto de tópicos em seu código, o novo modelo de programação paralela permite você se concentrar nas tarefas que você precisa para realizar e permite ao runtime criar e gerenciar as threads no seu lugar. Com isso, o desenvolvedor não precisa se preocupar em como será executado o código, se focando apenas na tarefa que precisa executar.

Abaixo está um exemplo de como fazer um loop para imprimir dez números inteiros na tela utilizando programação seqüencial e imprimir o mesmo loop de forma paralela (linguagem VB.NET).

Imports System.Threading.Tasks
Imports System.Threading
 
Module Module1
 
    Public Sub Main(ByVal args As String())
        executaSequencial(10)
        executaParalelo(10)
 
        Console.ReadKey()
    End Sub
 
    Private Sub escreverNumero(ByVal numero As Integer)
        Console.WriteLine(numero)
        Thread.Sleep(500)
    End Sub
 
    Private Sub executaSequencial(ByVal qtde As Integer)
        Dim sw As New Stopwatch()
        sw.Start()
 
        For i As Integer = 1 To qtde
            escreverNumero(i)
        Next
 
        sw.Stop()
        Console.WriteLine("Tempo execucao com for normal: " & sw.Elapsed.ToString)
    End Sub
 
    Private Sub executaParalelo(ByVal qtde As Integer)
        Dim sw As New Stopwatch()
        sw.Start()
 
        Parallel.For(1, qtde + 1, Sub(i As Integer) escreverNumero(i))
 
        sw.Stop()
        Console.WriteLine("Tempo execucao com for paralelo: " & sw.Elapsed.ToString)
    End Sub
 
End Module

Após executar o código, será impresso na tela o seguinte resultado:

Podemos perceber a diferença no tempo de execução entre as funções. O detalhe a ser levado em consideração é que mesmo em computadores com apenas um processador com um núcleo, o código escrito para ser paralelo é executado mais rápido que o seqüencial.

Irei demonstrar como escrever o mesmo loop utilizando a tecnologia Linq (para mais informações acesse aqui).

    Private Sub executaSequencialLinq(ByVal qtde As Integer)
        Dim sw As New Stopwatch()
        Dim valores = Enumerable.Range(1, qtde)
 
        sw.Start()
        Dim numeros = From n In valores
                      Where n >= 1 And n <= qtde
                      Select retornaNum(n)
 
        For Each num In numeros
            Console.WriteLine(num)
        Next
 
        sw.Stop()
        Console.WriteLine("Tempo execucao com for normal usando Linq: " & sw.Elapsed.ToString)
    End Sub
 
    Private Sub executaParaleloLinq(ByVal qtde As Integer)
        Dim sw As New Stopwatch()
        Dim valores = Enumerable.Range(1, qtde)
 
        sw.Start()
        Dim numeros = From n In valores.AsParallel
                      Where n >= 1 And n <= qtde
                      Select retornaNum(n)
 
        For Each num In numeros
            Console.WriteLine(num)
        Next
 
        sw.Stop()
        Console.WriteLine("Tempo execucao com for paralelo usando Linq: " & sw.Elapsed.ToString)
    End Sub
 
    Private Function retornaNum(ByVal numero As Integer) As Integer
        Thread.Sleep(500)
        Return numero
    End Function

Após executar o código, será impresso na tela o seguinte resultado:

Não tem muita diferença. Mas a vantagem de utilizarmos Linq é que podemos utilizar algumas funções no paralelismo. Se desejar imprimir de maneira ordenada a lista dos números do código paralelo, é só utilizar a função AsOrdered após a função AsParallel.

Não há perda significativa de performance se imprimir ordenado ou desordenado. Podemos também definir até que nível de paralelismo será utilizado, bastando utilizar a função WithDegreeOfParallelism passando como parâmetro a quantidade de processadores a serem utilizados.

Como pudemos perceber, o paralelismo reduz notoriamente o tempo de processamento do programa. Nos aplicativos que trabalham um enorme volume de dados, é interessante implementar a programação paralela diminuindo o tempo de resposta e, consequentemente, a energia gasta pela máquina.