Conheça a Informant          RSS

Posts Tagged: projeto


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!


16
Apr 14

O que significa a arquitetura do software?

Software

Quando pensamos em arquitetura não podemos evitar de imaginar prédios, pontes, construções e plantas. Nossa visão não está errada, mas quando levamos o assunto para o desenvolvimento de softwares, essa imagem pode dificultar nosso entendimento sobre o que é arquitetura de software.

Até o início dos anos 90, praticamente não exista uma estrutura para o desenvolvimento destes programas. Assim, cada empresa, para resolver problemas mais complexos, criava da sua maneira a estrutura de dados e algoritmos. Com isso, a criação de programas era mais cara e difícil de se manter, principalmente quando havia a necessidade de se envolver mais pessoas no projeto.

A partir dos anos 90, com o aumento da demanda por sistemas, a indústria de software uniu esforços para criar uma metodologia capaz de unificar o desenvolvimento, criando assim um padrão. Apesar do início da arquitetura de software ter sido imprecisa e desorganizada, já dava sinal de que se tornaria mais eficiente.

No decorrer da década, com melhorias na metodologia, pode-se alcançar um conjunto de padrões de projeto, estilo, melhores práticas, descrição de linguagens e lógicas formais. Nascia assim, a arquitetura de software.

Descrevendo arquiteturas

A arquitetura de software tem como objetivo dar a direção a ser tomada e as tarefas envolvidas em cada área do desenvolvimento da ferramenta. Aliada aos stakeholders envolvidos no projeto, precisa ligar as múltiplas perspectivas que farão do sistema uma ferramenta útil para a demanda do cliente ou da empresa.

Na prática, criou-se linguagens de descrição capazes de organizar a arquitetura de software de acordo com os pontos de vista que o mesmo está se propondo a cumprir. Dentre eles, a visão funcional/lógica, visão de código, de desenvolvimento, de usuário, entre outras. Ainda não se alcançou um consenso sobre qual visão é melhor, sendo que cada uma deve guiar a construção dos programas de acordo com a vontade da equipe que está desenvolvendo.

Por exemplo, sistemas operacionais precisam ter uma visão de usuário sobre como cada pessoa irá utilizá-lo. Já sistemas construídos para fazerem operações matemáticas podem ter uma visão mais lógica ou de código. Dependendo do cenário, a arquitetura de software se adapta em prol do melhor desempenho.

Exemplos de arquitetura

Ao longo das duas últimas décadas, a evolução do desenvolvimento dos programas e o surgimento de novas demandas, principalmente com o avanço da internet, aplicativos e APIs, forçou a arquitetura de software a expandir seus conceitos.

Dessa forma, criou-se formas comuns de projetar módulos. Cada módulo com sua própria arquitetura, formando ao fim apenas uma. Entre elas estão algumas muito conhecidas como P2P, computação distribuída e plugins; e outras nem tão conhecidas como quadro negro, aplicação monolítica e modelo em três camadas.

Como se pode se perceber, não podemos considerar que uma arquitetura é melhor do que a outra, apenas que elas servem ao que se propõem. A busca por padrões, tão comum para quem trabalha com tecnologia, não deve limitar as possibilidades de criação de software. Pelo contrário, os desenvolvedores devem ser livres para acrescentar inovações. Devemos apenas seguir boas práticas para que nossas criações sejam úteis a nós e aos outros.

Dificuldades em entender ou determinar a arquitetura do software que quer desenvolver? Fale com a Informant!


18
Mar 14

Qual a diferença entre engenheiro, programador e desenvolvedor?

diferença

O projeto de desenvolvimento de um software reúne profissionais das mais diferentes formações. Programadores, desenvolvedores, engenheiros, gestores, clientes e patrocinadores podem ter estudado diferentes disciplinas técnicas ou de graduação e executar várias funções durante o planejamento e a realização do projeto.

No mercado da computação, é comum vermos pessoas e empresas tratando programadores, desenvolvedores e engenheiros de software como sinônimos. No entanto, a forma como cada um desses profissionais atua no dia a dia é bem diferente e pode fazer toda a diferença na forma como um projeto é conduzido.

Ao tentar explicar esse contraste, é comum vermos pessoas fazendo analogias com a construção civil, como os arquitetos, engenheiros, designers, etc. No entanto, comparações como essas são reducionistas e não suficientes para explicar muitos dos aspectos envolvidos.

E você? Sabe qual a diferença entre um programador, um desenvolvedor e um engenheiro?

O programador

O programador é o profissional que tem contato direto com a construção do software no computador. Ele é o responsável por escrever o código para colocar o sistema em funcionamento, lembrando-se que ele deve estar limpo, organizado e evitando erros.

Ao receber os requisitos de um projeto, o programador passa a trabalhar na maior parte do tempo de forma individual, concentrado no desenvolvimento das aplicações.

O programador deve ser fluente em ao menos uma linguagem de programação e saber qual a melhor forma de escrever o código para que o sistema funcione de maneira adequada.

O desenvolvedor

Os desenvolvedores de softwares também podem fazer tudo aquilo que um programador faz. No entanto, além desses conhecimentos e habilidades, os desenvolvedores se preocupam não somente com o código, mas também com a execução do projeto como um todo.

Além da parte técnica de escrita do código, o desenvolvedor se relaciona com outros profissionais da equipe do projeto, pessoas de outras áreas da empresa, clientes e patrocinadores. Ele precisa ter uma compreensão mais abrangente para que o software atenda aos requisitos propostos e que as etapas sejam seguidas da melhor forma possível.

No entanto, apesar de se ocupar menos com a parte técnica em relação ao programador, é fundamental que o desenvolvedor tenha capacidade de trabalhar no código quando necessário e conhecer a linguagem de programação utilizada, para que possa avaliar e tomar decisões da forma adequada.

Engenheiro

O engenheiro de softwares também pode realizar todas as tarefas de responsabilidade dos programadores e desenvolvedores.

No entanto, o engenheiro precisa ter uma visão ainda mais global do desenvolvimento do sistema.

Ele é responsável pela confiabilidade do software, sua qualidade final e a capacidade de ser mantido de forma sustentável pelo cliente. Os engenheiros também devem ser capazes de fazer a ponte entre os requisitos do projeto, o design do sistema, a codificação, a manutenção do código e os testes.

Integração

Apesar das diferenças entre esses profissionais, é importante lembrar que cada um deles tem um papel fundamental par a entrega de um software dentro dos requisitos propostos.

Além disso, já se foi o tempo em que desenvolvedores e engenheiros apenas pensavam sobre o sistema. Hoje em dia, também é fundamental que eles tenham conhecimentos técnicos sobre linguagem de programação para que possam gerenciar profissionais com sucesso e alcançar melhores resultados.


27
Sep 13

3 preparativos que todo cliente deve fazer antes de começar um projeto de software

softwareCriar um projeto de software exige muito trabalho. E esse esforço não deve vir somente da equipe desenvolvedora, mas, também, dos próprios clientes. Antes mesmo de começar a produção de um novo software, o futuro usuário daquele produto deve realizar tarefas que vão auxiliar os profissionais a criar o projeto e agregar qualidade a ele. Trazendo, desta maneira, satisfação para os dois lados.

O que seriam essas pequenas ações que um cliente pode realizar para auxiliar no desenvolvimento e qualidade do novo software? Algumas delas devem ser realizadas antes mesmo do começo da produção de um novo projeto. É disso que trataremos nesse post. Se você está curioso para saber mais sobre esses preparativos, fizemos uma lista com três itens que devem ser levados em conta na hora de demandar um produto. Preparado? Então, vamos lá!

Definindo um novo software

Antes de tudo é necessário que o cliente saiba bem qual é o produto que está procurando e que vai se encaixar perfeitamente no perfil da sua empresa, suprindo as suas principais demandas. Não adianta pedir às empresas que executem a produção de um novo software se não puder  especificar bem qual será a sua utilidade e quais são os seus requisitos básicos. Para que isso aconteça, algumas definições precisam ser postas no papel.

Se você pretende escrever um bom requerimento de software, aqui vai uma lista com alguns desses quesitos:

  • Funcionalidade: Nessa especificação, você deve explicar o que esse produto fará e quais serão as suas principais tarefas.

  • Interface e interação: Aqui você deve descrever como esse novo produto deve interagir com os seus usuários, com o hardware e até mesmo com outros softwares.

  • Performance: Nesse quesito é especificada qual deve ser a velocidade, seu tempo de resposta, a disponibilidade e a recuperação das funções desse novo software.

  • Atributos: Nesse item você precisa definir quais serão as suas características de portabilidade, de manutenção e de segurança.

  • Design: Por último, é preciso dar ideia de como deverá ser o seu visual, como ele deve ser adaptado para atender as suas principais demandas.

Todas essas especificações reduzirão bastante o tempo de trabalho de toda a equipe, além de garantir uma adequação melhor do produto. Lembre-se: essas são apenas as principais características. Em alguns casos a equipe pode precisar também de mais informações sobre a demanda ao longo do processo.

Estabelecendo os processos de produção

Após definidas as principais características do produto, os clientes devem apresentá-las à equipe. Esse é um passo importante, pois será a partir dessa reunião de ideias que serão estabelecidos os processos de produção do novo projeto. O método, assim como as tarefas relacionadas a ele são quem permitem a estimativa do tempo necessário para a produção.

São os desenvolvedores os mais adequados para dar o parecer técnico sobre esta decisão, mas ainda assim é importante que o cliente esteja envolvido, entenda os critérios que estão sendo avaliados e concorde com a decisão final.

Adequando a empresa para o novo projeto

É importante que, antes do início do projeto de um novo software, a empresa se prepare para recebê-lo. O cliente deve avaliar se todo o ambiente de sua organização oferece o suporte e equipamentos adequados para a inserção do produto que será fabricado. Outra dica é preparar os profissionais para que eles possam utilizar os novos recursos. Assim, o cliente pode garantir que as utilidades da nova ferramenta sejam aproveitadas rapidamente pelos funcionários da sua companhia.

Além disso, em muitos casos, há a necessidade de realizar testes ao longo da produção do novo software. Para sejam bem sucedidos, é importante que a empresa esteja apta para receber os protótipos e avaliá-los. Esses procedimentos serão importantes para, além de aprimorar a qualidade do produto, verificar se o novo projeto se adaptará ao ambiente oferecido pela organização.

 

Definir, organizar e estabelecer. Essas três ações fazem a diferença na hora de produzir um software. E nada melhor do que contar com a ajuda do cliente para começar o desenvolvimento do novo projeto com o pé direito. Tem mais alguma sugestão de como o cliente pode ajudar antes de iniciar a fase de produção? Compartilhe conosco nos comentários!