Conheça a Informant          RSS

Posts Tagged: software


30
May 14

Um computador, dois programadores. Conheça o pair programming!

Set icons for business, communication, web

Trabalhar em equipe é sem dúvida a melhor maneira de se executar qualquer tipo de tarefa, principalmente quando essa tarefa exige dos profissionais um grande conhecimento técnico no assunto, como é a indústria de fabricação de software.

Para ir além do trabalho em equipe estudiosos de metodologias ágeis de desenvolvimento criaram o pair programming. Do inglês, pair programming significa programação pareada e envolve dois programadores trabalhando na mesma máquina para se alcançar um resultado superior no código. Um dos programadores é o “driver”, que escreve o código, enquanto o outro é o “observador” que revisa cada linha em busca de erros.

Enquanto o observa, o segundo programador também pode ajudar na estratégia de desenvolvimento, apontando o melhor caminho que o código deve tomar. Pair programming já vem sendo utilizada por muitas empresas ao redor do mundo e nos próximos parágrafos você irá entender como você pode tirar proveito dela. Confira:

Vantagens de pair programming

Um código de qualidade é apenas uma das vantagens apresentadas por pair programming. Algumas pesquisas apontam que programadores pareados gastam 15% mais de tempo do que programadores individuais para escrever o mesmo código. Por outro lado, o resultado costuma ter 15% menos erros, reduzindo assim o custo de manutenção e correções ao longo do tempo de vida do software.

Também é comum que o pair programming incentive um aprendizado entre os desenvolvedores e ajude a reforçar a comunicação na equipe. Pair programming permite que os membros do time compartilhem seus problemas e soluções entre eles, incrementando a troca de informações.

Por fim, segundo pesquisa de IEEE, 96% dos programadores preferem trabalhar em dupla do que individualmente, demonstrando que esse tipo de programação acaba sendo mais vantajosa para o profissional.

Como funciona o pair programming

O pair programming pode ser dividido em quatro combinações: expert-expert, quando se busca a mais alta produtividade e excelente resultados; expert-novato, para que haja a oportunidade de se criar um vínculo de mentoria; novato-novato, ainda que a produtividade e a qualidade sejam baixas, é uma maneira de se treinar novos programadores; e remota, quando a pair programming ocorre através de editores de texto em tempo real com os programadores em locais separados.

Em geral, a modalidade expert-expert costuma não ser boa para que se descubra novas formas de se resolver os problemas, já que esse tipo de programador não está aberto a tentar novos caminhos. Se o objetivo for inovar, o pareamento do tipo expert-novato se encaixa melhor na estratégia da empresa.

Quando adotar

Para muitas empresas, adotar o pair programming pode significar uma quebra nas metodologias de trabalho. Isso pode gerar atrito entre desenvolvedores e prejudicar o andamento de projetos. Dessa forma, a migração para o pair programming precisa ser feita de maneira cautelosa.

Por outro lado, toda empresa que deseja aumentar sua produtividade e qualidade das entregas deve considerar o uso de pair programming, principalmente se o time de desenvolvedores possuir profissionais mais experientes.

Encontrar a melhor estratégia pode exigir testes, reuniões e paciência dos gestores, mas o resultado final pode surpreender mesmo os programadores mais céticos. Dúvidas? Vamos conversar nos comentários abaixo!


19
May 14

O que são user personas?

Um dos fatores mais importantes para o projeto –e desenvolvimento- de um software bem sucedido é o entendimento do seu usuário. Sem uma compreensão correta de quem são as pessoas que vão interagir com ele, suas dificuldades e necessidades, é praticamente impossível desenhar soluções para elas. Hoje vamos mostrar uma ferramenta que é incrivelmente útil para isto, as user personas. Veja só!

Personagens fictícios e reais ao mesmo tempo

Uma persona é a representação de um grupo de pessoas condensada em um personagem, com nome, rosto e história. Ela é uma maneira de humanizar os dados demográficos que a pesquisa de usuário trazem.

Quando fazemos (ou analisamos) pesquisas sobre usuários, encontramos informações sobre sua idade, classe social, formação e determinados hábitos, de acordo com o foco daquele levantamento específico. Já estabelecemos que o bom entendimento destes dados é fundamental no desenvolvimento, certo?

O problema é que é muito difícil para as pessoas decodificar os números, percentuais e percentuais levantados pelas pesquisas em informação realmente relevante para o produto que está sendo desenvolvido. Nós, como seres humanos, simplesmente não somos feitos para isto. É aí que a user persona mostra o seu enorme valor!

Humanizar a relação é o segredo para o bom entendimento

A criação da persona dá a estes números um nome, uma cara e uma história. Os dados apresentados são os mesmos, mas uma vez transformados em personagem, fica muito mais fácil entender e extrair informação útil deles.

Com o uso de personas, uma sequência de dados como: “Sexo masculino; superior completo; 20-30 anos; área de saúde; (…)” é transformada em uma verdadeira narrativa. Por exemplo: “João, 25 anos, médico. Tem o objetivo de se tornar cirurgião. É solteiro, tem pouco tempo para se dedicar ao lazer e estudos, devido à rotina pesada no hospital”.

Conseguem perceber como é muito mais fácil lidar com esta pessoa fictícia do que com os dados puros? Entretanto, para que a técnica traga bons resultados, é importante notar que…

Personas não são um exercício de imaginação!

Durante a criação das personas é fundamental se ater aos dados. A sua elaboração é muito mais uma atividade de análise e entendimento do que uma de criação. É uma grande tentação para o desenvolvedor imaginar o seu usuário final e incorporar esta percepção na persona que orientará a criação. Este é um erro terrível.

Por trás da escolha de um nome, rosto e história para a persona, a atividade principal relacionada à sua elaboração ainda é a pesquisa do usuário. Observar o seu comportamento, realizar entrevistas e testes continua sendo a melhor maneira de obter os dados que vão ser usados para orientar o desenvolvimento do seu software. Mas certamente a comunicação e uso destes dados através de um personagem, em vez de tabelas e gráficos, facilitará muito as conversas e aprendizados no time.

Você tem experiências com a utilização de user personas? Como foram os seus resultados? Não se esqueça de comentar! Para saber mais sobre esta, e outras ferramentas úteis no desenvolvimento de software, é só ficar ligado no blog da Informant!


15
May 14

Qual a função de um gerente de produto?

Depositphotos_7263989_s

O sucesso da criação de um novo software é alcançado através da soma de diversos fatores: organização, planejamento, visão, comunicação, qualidade do time de execução e clareza do que, realmente, o cliente está buscando. Ainda assim, mesmo com todas as informações, nada garante que a ferramenta será bem aproveitada.

No meio de tudo surge uma figura muito importante para o bom andamento do projeto: o gerente de produto. Nos últimos anos as fábricas de software perceberam que possuir alguém que consiga centralizar as decisões, administrar o time e ainda entender a necessidade do cliente é valioso para os negócios, fazendo do gerente de produto o principal aliado da empresa. Nos próximos parágrafos iremos nos aprofundar sobre o papel desse profissional. Confira:

O papel do gerente de produto

É comum que as empresas acreditem que o principal papel do gerente de produto é estar focado no desenvolvimento do produto que alavanca o negócio. Mas, atualmente, sua função é muito mais ampla: ele cuida do desenvolvimento, mas também da implementação, atendimento, marketing e vendas. Apesar de não ser responsável por todas essas áreas, é função dele perceber quando problemas possam influenciar o desempenho do produto.

Basicamente, o gerente de produto presta suporte a todas essas áreas, focando na qualidade da entrega final e impedindo que outros fatores, como falta de recursos, atrapalhe a experiência do cliente. O gerente de produto costuma atuar mais no marketing e vendas, por conhecer cada vantagem do produto e saber como estas devem ser exaltadas para melhorar as vendas.

Motivos para contar com um gerente de produto

A busca por criar ferramentas cada vez melhores faz do gerente de produto uma peça fundamental em toda empresa de software. Isso significa que um bom gerente é capaz de melhorar a qualidade das suas entregas e ainda assim garantir o uso inteligente e eficaz de seus recursos.

Para se alcançar esse resultado é fundamental que você saiba o que buscar ao contratar este profissional. Lembre-se que ele terá que controlar o desenvolvimento da ferramenta, mas também estará em contato com clientes e colaboradores. Assim, é possível listar algumas competências que todo gerente de produto deve ter, além da paixão por criar bons produtos: empatia com clientes, inteligência, ética, integridade, confiança, foco, conhecimento em tecnologia, negócios, processos e uma atitude vencedora.

Apesar de parecer que essas habilidades sejam impossíveis de serem reunidas em apenas um profissional, precisamos notar que a maioria delas são obrigatórias quando estamos falando de desenvovimento de software. Um gerente de produto que não conheça tecnologia ou que não esteja por dentro dos processos e negócios da empresa não será capaz de gerenciar um time de desenvolvedores.

Já um profissional sem ética ou integridade, apaixonado pelo que faz e focado em buscar metas e objetivos não irá durar em emprego algum. Por todos esses motivos a função de um gerente de produto será, sim, de coordenar a construção das suas ferramentas, mas também será um grande ativo para sua empresa ao gerenciar clientes, recursos e resultados.

Você já trabalha com um gerente de produto? Qual sua experiência? Deixe seu depoimento nos comentários abaixo.


09
May 14

Conheça a metodologia da Informant! Etapa 4

Chegamos ao fim da série de quatro posts sobre a metodologia de desenvolvimento de softwares da Informant. Durante a série, conseguimos expor como nosso time trabalha com o objetivo de construir uma ferramenta capaz de entregar a solução para o problema do cliente, dentro de prazo e custo saudável, utilizando o que há de mais pioneiro em tecnologia, design e planejamento.

Mas antes de terminar, vamos tratar de um ponto que é o principal desejo de todo empreendedor quando cria sua empresa: vê-la crescer e atrair cada vez mais usuários. Mesmo que esse estágio não pareça trabalho para uma fábrica de software, aqui na Informant temos a convicção de que podemos ser parceiros dos nossos clientes durante toda a vida útil do software. Assim, criamos uma metodologia que melhora a ferramenta e dá a ela combustível para avançar sempre em frente. Então, para encerrar, conheça os três pontos fundamentais para o crescimento:

Computação em nuvem

Atualmente quando um software é planejado através de metodologias ágeis e design thinking, ele também é pensado para estar disponível o máximo de tempo possível. Por estar disponível, é preciso entender que não significa apenas estar num servidor hospedado na nuvem – ao invés de servidores locais e seus emaranhados de cabos azuis – mas ser acessível a todos.

Quando um cliente está decidindo pela sua empresa ele não precisa o que você está fazendo para manter seu site no ar. Na verdade, ele quer poder acessar o sistema através do seu computador, mas também de um smartphone ou tablet com acesso móvel. Isso significa que sua ferramenta precisa estar disponível para todos a todo momento para que você possa atrair mais clientes e continuar crescendo.

Análise de engajamento

Mesmo com toda essa tração não significa que seu software seja perfeito. Ao longo do caminho é provável que novos clientes, com problemas diferentes, sugiram melhorias e incrementos. À medida que esses pedidos se tornam constantes é seu dever implementá-los. Não apenas para satisfazer os novos clientes e atrair mais, mas também para se posicionar um passo à frente da concorrência.

Implementar melhorias no software em busca de mais crescimento é um processo infinito. Ou seja, a empresa precisa monitorar e melhorar constantemente para manter-se na liderança. Um dos grandes erros das empresas que vão à falência é considerar a inovação algo desnecessário por estarem há muito tempo na frente. Muitas vezes, essa lentidão servirá de sinal para o seu concorrente lançar algo melhor e mais moderno.

Para que isso não aconteça e para que você possa construir um software alinhado com os objetivos da sua empresa, sem estourar prazos e orçamentos, procure nosso time e vamos colocar em prática tudo que tratamos nessa série de posts. Nossa metodologia funciona não apenas para novas ferramentas, mas para empresas que procuram melhorar seus processos através de um avanço tecnológico. Através da análise do problema, desenvolvimento da solução, métricas, engajamento e um total apoio ao cliente do início ao fim do processo.

Mais alguma dúvida? Vamos continuar o assunto nos comentários abaixo. Participe!


26
Apr 14

Conheça a metologia da Informant! Etapa 3

Metodologia Informant

No terceiro post da série sobre a metodologia de desenvolvimento de software que utilizamos na Informant vamos nos aprofundar na importância do acompanhamento das métricas e de como elas nos guiarão na busca de uma ferramenta muito mais completa e funcional.

Ao longo dos últimos dois posts,  falamos sobre como, em parceira com o cliente, conseguimos identificar o problema do usuário e, baseado nele, projetar um software que entregue a melhor solução dentro do orçamento e prevendo um retorno sobre o investimento. Através de metodologias de design thinking, user experience e desenvolvimento ágil, os sistemas que criamos surpreendem pela rapidez com que são lançados e pela confiabilidade de uso.

Para chegar neste ponto precisamos passar pela terceira etapa do processo com sucesso. Sem boas métricas, análises e acompanhamentos, corremos o risco de construir uma ferramenta pouco útil para o cliente, se transformando em prejuízo para a empresa. Assim, nos próximos parágrafos iremos explicar como as métricas são fundamentais para o desenvolvimento de software. Acompanhe:

A diferença entre métricas e feedbacks

Quando um software é lançado, mesmo em sua fase beta, conseguimos colher um grande volume de dados. Através de ferramentas de análise é possível medir todas as interações do usuário sem afetar a navegação ou a experiência de uso.

Por outro lado, é preciso diferenciar o que é métrica e o que é feedback nesse processo. Métricas são resultados vindos de uma grande porção de interações e servem para dar uma visão geral sobre o desempenho do software. Já feedbacks são gerados por usuários reais e são relevantes para correções pontuais, como uma funcionalidade que não esteja funcionando corretamente.

Ambos são importantes para as melhorias na ferramenta, mas devem fazer parte de estratégias diferentes. Métricas são mais fáceis de serem conseguidas; já feedbacks precisam ser incentivados.

Quais métricas são relevantes?

No meio de tanta informação é preciso saber separar o que é importante medir do que deve ser ignorado. Isso serve tanto para métricas, quanto para feedbacks dos usuários. Se seguirmos todas as métricas podemos cair na tentação de corrigir todos os aspectos do software, perdendo o foco do que realmente interessa: entregar uma solução simples, que resolva o problema do cliente.

Assim, é fundamental estabelecer uma métrica central para o software. Esta pode ser o número de cálculos que ele fará, ou a taxa de conversão de novos usuários. A partir disso é que as melhorias são decididas. Em relação aos feedbacks, não se deve fazer todas as correções e melhorias que os usuários solicitarem, apenas aquelas que se tornarem recorrentes. Ou seja, se algo está incomodando, mais de um usuários irá reclamar. Dessa forma, não perca tempo criando backlogs de reclamações, você saberá exatamente o que precisa ser melhorado no software.

Aprendendo e melhorando

A partir das métricas e feedbacks recebidos, as melhorias são listadas e implementadas. Com um pouco de tração já é possível lançar melhores versões do software em busca de mais usuários. Quando você chegar neste estágio seu software já estará pronto para escalar e se tornar lucrativo, mas isso não significa que nosso trabalho terminou! No próximo post falaremos sobre como a Informant pode te oferecer o combustível que falta para seu software decolar.

Continue acompanhando a série e deixe seu comentário abaixo! Até lá!


25
Apr 14

Conheça a metodologia da Informant! Etapa 2

Continuando a série de posts sobre a metodologia de desenvolvimento de software da Informant, hoje vamos falar sobre como nosso time é capaz de avançar com o seu projeto sem turbulências rumo ao resultado desejado.

Antes disso convém lembrar a importância que demos no início da nossa série em descobrir o problema da sua empresa ou do seu cliente antes de começar a construir uma nova ferramenta. O acúmulo de informação na primeira etapa servirá de base para o que será proposto a partir daqui. Aliadas, as duas fases trabalharão para que o retorno sobre o investimento seja o maior possível, dentro de um prazo saudável de desenvolvimento.

Assim, já com o problema claro, passamos para o estágio de validação de hipóteses, de construção do software e engajamento dos primeiros usuários. Acompanhe a continuação da série a seguir:

Validando hipóteses

O processo de validação de hipóteses é fundamental para o desenvolvimento de um software. É comum muitos clientes acreditarem que possuem, instintivamente, a melhor solução para os seus clientes, sem realmente testar suas deduções. Dessa forma acabam criando ferramentas que não serão úteis e menos ainda comerciais.

Um bom método para validar hipóteses é conversar com seus clientes para tentar entender se a solução que você está criando é realmente funcional para eles. Ou seja, se ela resolve o problema dele. Caso contrário, com os feedbacks recebidos é possível fazer melhorias até se encontrar a melhor solução. Faça uma pequena apresentação ou então simule o funcionamento do seu software para perceber a aceitação dos seus futuros usuários.

A partir dessa solução é que começamos o construção do software através da metodologia de desenvolvimento ágil.

A metodologia ágil

A metodologia de desenvolvimento ágil de software tem como objetivo garantir a satisfação do cliente entregando rapidamente e continuamente softwares funcionais. Na prática isso significa que nosso time irá entregar resultados quase que semanalmente (ao invés de em meses, como na indústria de software tradicional).

Esse tipo de desenvolvimento encoraja a participação do cliente para que o resultado final seja o melhor possível. Mesmo mudanças tardias de escopo são bem-vindas se essas se mostrarem necessárias para o objetivo do projeto. Prezando pela excelência técnica e simplicidade, a metodologia ágil de software diminui os riscos da implementação e maximiza o retorno sobre o que foi investido na ferramenta.

Para que a metodologia ágil seja um sucesso, é fundamental que haja confiança entre as partes. Do contrário perde-se agilidade na tomada de decisões em prol de um software melhor.

Engajamendo de early adopters

Com a ferramenta em fase de finalização é preciso colocar usuários reais para testá-la. O objetivos desses testes não é procurar por falhas – apesar de esse também ser um estágio importante – mas entender como eles irão se engajar com o software.

Os primeiro usuários – chamados de early adopters – costumam estar mais abertos a novidades e novos sistemas, sendo bons testadores para novas funcionalidades. A partir do feedback deles é que alterações e melhorias poderão ser feitas, mesmo após o lançamento da ferramenta. Aos poucos mais usuários são colocados para dentro do software, gerando mais dados e mais feedbacks. Essa medição e análise são alicerces para o sucesso do seu software, mas este será o assunto do nosso próximo post. Continue acompanhando a série e comente através do formulário abaixo.