Categorias
Software Empresarial

O que é um Desenvolvedor de software

Um desenvolvedor de software é uma pessoa que se ocupa com as facetas do processo de desenvolvimento de software. O seu trabalho inclui pesquisar, projetar, desenvolver e testar o software. Um desenvolvedor de software pode participar na conceção, programação, de computadores ou gerenciamento de projetos de software. Eles podem contribuir para a visão geral do projeto a nível de aplicação, em vez de a nível de componente ou tarefas de programação individuais.

O que é um Desenvolvedor de Software?

Uma pessoa que desenvolve software (que é mais do que apenas um simples programa) e se envolve com todas as fases do desenvolvimento (design e código) é um desenvolvedor de software. Alguns desenvolvedores de softwares notáveis incluem Peter Norton (desenvolvedor do Norton Utilities), Richard Garriott (criador da série “Ultima”), e Philippe Kahn (fundador da chave Borland), os quais começaram como desenvolvedores de software em nome individual numa pequena equipa, antes de se tornarem ricos e famosos.

Outros nomes que são frequentemente dados a um desenvolvedor de software são: programador, analista de software e engenheiro de software.

Desenvolvedor de Software

De acordo com o desenvolvedor Eric Sink, as diferenças entre o design do sistema, desenvolvimento de software e programação são mais aparentes. Por vezes no mercado atual já se encontra uma segregação entre os programadores e desenvolvedores, sendo que quem implementa não é o mesmo que concebe a estrutura de classe ou hierarquia.

O trabalho dos desenvolvedores de software podem incluir:

  • Design de software
  • Implementação do ‘núcleo central’ (a programação que muitas vezes é a parte mais importante do desenvolvimento do software).
  • Outras implementações necessárias (por exemplo: instalação, configuração, personalização, integração e migração de dados).
  • Participação na definição do produto de software, incluindo a análise de lacunas.
  • Especificação.
  • Análise de requisitos.
  • Criação da documentação necessária para os usuários e parceiros de implementação, etc.
  • Testes, incluindo a definição, apoio e aceitação, recolha de feedback de quem testa o pré-lançamento do software.
  • A participação no lançamento do software e atividades posteriores ao lançamento, incluindo a divulgação para o lançamento do produto (por exemplo, demonstrações e/ou amostras) e análise competitiva.

Numa empresa grande, podem existir desenvolvedores de software, cuja única responsabilidade é constituída por apenas uma das tarefas anteriores. Em empresas menores o desenvolvedor de software, pode ter a responsabilidade de mais de uma ou todas as tarefas anteriores.

Os 7 pecados mortais do desenvolvimento de software

Hoje as empresas estão, muitas vezes, tão focadas no crescimento que acabam por cometer um, (ou vários) pecados no desenvolvimento de software. Magne Terra, a liderança de tecnologia em RightScale, descreve esses sete pecados mortais e oferece conselhos sobre como evitar cometer esses erros críticos.

1. Cobiça

Conseguir que outras pessoas cobicem os seus produtos pode ser muito rentável. Mas os desenvolvedores de software, muitas vezes cobiçam a perfeição, o que pode causar grandes problemas. Um exemplo é, Kapor que fundou Lotus, era suposto que Chandler fosse o PIM final. O projeto tinha muito financiamento inicial, programadores assistentes e não tinha prazos reais. Esses recursos infindáveis criaram a ilusão de que a perfeição era possível. Mas em software a perfeição não acontece. Pode-se gastar uma quantidade infinita de tempo para otimizar uma parte muito pequena de todo o programa. Chandler acabou por fracassar, porque estavam a construir um produto que ninguém tinha pedido. Quando a versão 1.0 finalmente saiu, o resto do mundo já estava voltado para os dispositivos móveis.

2. Glutonaria

Cada empresa e desenvolvedor, está ciente da glutonaria do software, mas muitos não entendem o quanto é prejudicial. O problema é que o hardware está a melhorar tão rapidamente que os desenvolvedores acreditam que se podem dar ao luxo de ser glutões de ciclos e memória de CPU. No entanto, o ponto de discórdia é o consumo de energia.

A tecnologia das baterias está a melhorar lentamente. Portanto, escrever programas menores que consomem menos recursos é a coisa mais ecológica que um programador pode fazer. Para além disso, supondo que o número médio de erros por linha de código é constante, então menor é de fato melhor.

3. Ganância

Indiscutivelmente este é outro ponto de valorização, especialmente no mercado de IPO, é fácil ser ganancioso. O problema é que a ganância leva a metas de curto prazo, o que leva a dívida técnica e lentidão. Quantos mais recursos tentarem cortar, mais difícil se torna manter o produto. Especialmente com clientes grandes, é fácil esquivar-se a implementar um recurso personalizado o que poderá ter um retorno negativo sobre o investimento a longo prazo. Se o seu cliente maior decide sair, com que é que você fica? Um desenvolvedor de software deve pensar estrategicamente, pois os seus clientes irão apreciar um produto sólido.

4. Preguiça

Esta preguiça é apatia, não propriamente preguiça. Um desenvolvedor de software apático é sem dúvida o mais prejudicial, porque este tem o menor interesse na qualidade. Por outro lado, um desenvolvedor preguiçoso pode ser um bom desenvolvedor, porque a preguiça pode conduzir a eficiência a longo prazo. Por exemplo, se ele for preguiçoso para digitar a senha em todos os ‘lugares’, ele poderá criar um recurso de login único. Ou, se for muito preguiçoso para implantar software manualmente, ele poderá optar por escrever uma ferramenta de implementação automática. A preguiça e a escalabilidade andam de mãos dadas.

5. Ira

Embora muitos desenvolvedores de software pareçam pacíficos, sob a superfície, muitas vezes, esconde-se uma personalidade passiva-agressiva. Esta é uma hostilidade oculta. Normalmente os palavrões em código fonte são proporcionais à dívida técnica. Tenha cuidado com o desenvolvedor de software que não faz perguntas ou que usa qualquer editor de texto, de bom grado. Os bons desenvolvedores de software têm opiniões fortes sobre quase tudo, mas também apreciam debates animados.

6. Inveja

A inveja pode ser muito perigosa, no desenvolvimento de software. A inveja de outros produtos, muitas vezes leva a apresentar fluência. Se alguém mencionar paridade de recursos, você deve perguntar: “precisamos disso?”. O recurso assassino final é a simplicidade, mas simples de usar é difícil de desenvolver. Para além disso, é fácil perder o foco quando se está constantemente a observar o que as outras empresas estão a fazer. Imagine construir torres de legos. Prefere construir uma torre por uma vez ou muitas torres em paralelo? A abordagem paralela só funciona se as torres forem idênticas. Caso contrário, irá gastar muito tempo na troca de contexto. Agilidade não é a mesma coisa que ‘meio- cozido’. E fazer uma coisa bem ainda é subestimado.

7. Orgulho

Em pequena escala, o orgulho excessivo pode levar ao comportamento “confie em mim” que adiciona risco ao sistema. Em grande escala, pode levar à falha da megatendência seguinte. Se o desenvolvedor de software se rir dos clientes, tenha cuidado! Muitas grandes empresas têm caído devido ao excesso de orgulho.

Vantagens dos Serviços de Desenvolvimento de Software no crescimento dos negócios

Hoje em dia o desenvolvimento de software demonstra ser uma característica vital que auxilia na condutividade suave de um negócio, com o mínimo de esforço. Diversos processos de negócio estão a contratar o auxílio de desenvolvedores de software para automatizar os planos dos seus negócios e, assim, afinar o nível de produtividade e eficiência. Os serviços de desenvolvimento de software dão auxílio aos estabelecimentos comerciais de diferentes tamanhos, a fim de ultrapassar qualquer deficiência ou discrepância que exista na estrutura do software.

software para crescimento de negócio

Inicialmente, o serviço de desenvolvimento de software envolve o aplicativo de desenvolvimento de software, desenvolvimento Web, Design do Web site, design gráfico, Marketing na Internet e manutenção do site. Estes serviços são de grande utilidade nas áreas de aplicação de muitos campos:

  • Serviços de Soluções CRM
  • Soluções E-commerce (Comercio eletrónico)
  • Telecomunicações
  • Aplicações de cuidados de saúde
  • Aplicações de média
  • Aplicações Financeiras

Principais vantagens dos Serviços de Desenvolvimento de Software

O desenvolvimento de software simplifica a manutenção de um grande banco de dados e acompanha-o quando necessário. Permite aumentar o seu desempenho e opera na diferenciação de outras facetas importantes.

O software personalizado representa uma potência para melhorar a sua eficiência e reduzir o custo que é gasto em formações.

Vantagens de uma metodologia eficiente no desenvolvimento de software

Os desenvolvedores de software conhecem a finalidade do software. Os desenvolvedores não podem apenas começar a codificação em qualquer direção com base numa solicitação de um recurso. É produzido um documento de especificação funcional, bem como um pseudo código que é utilizado para desenhar o software. Primeiramente são conquistadas as partes mais difíceis e complicadas. Depois disso, codificar é relativamente fácil e simples. Produzir um documento de requisitos, um documento de conceção (pseudo código) ou diagrama, permite que o desenvolvedor pense o suficiente sobre o código e que o projete bem desde o início.

Os desenvolvedores possuem o seu próprio código

São a pessoa certa a quem recorrer para novos recursos. Quando um desenvolvedor possui o código, significa que ele não tem que gastar tempo a rever e a analisar o que outros desenvolvedores fizeram a esse código. O código também será mais consistente, visto ter um único autor. Isto significa que qualquer alteração pode ser feita rapidamente e de forma mais eficiente o que economiza tempo e dinheiro.

Cada desenvolvedor de software tem um desenvolvedor de backup. Se um desenvolvedor deixar o projeto, estiver doente ou for de férias, o desenvolvedor de backup está em condições de assumir esse código. O desenvolvedor de backup também pode ajudar com a análise de requisitos, revisões de projeto, revisões de código, e indicar um novo desenvolvedor para assumir esse componente se o desenvolvedor original abandonar o projeto.

Categorias
Software Empresarial

Software House, Casas de Software

Existem muitos e diferentes tipos de Software house, (casas de software). Estas são empresas que focam o fornecimento de soluções de software sob medida para as várias indústrias.

As Software house podem ser categorizadas da seguinte maneira:

  • Contratual – quando a software house é contratada para entregar um software específico, de fora (outsoursing software)
  • Desenvolvimento do produto – quando produz software ‘pronto para usar’, software empacotado; (comercial para comprar, a partir da prateleira)
tipos de software house

Papéis comuns de uma software house

Organizar uma software house requer uma habilidade de gestão muito específica, uma pessoa experiente pode transformar o problema de uma empresa num único benefício. Por exemplo, ter equipas de propagação em diferentes fusos horários pode permitir que uma software house trabalhe 24 horas diárias, para se certificarem que os sistemas e procedimentos estão bem estabelecidos. Uma software house é normalmente composta de pelo menos três tipos de profissionais:

  • Analistas de negócios, que definem as necessidades do negócio e do mercado
  • Projetistas de software e programadores que criam a especificação técnica e compõem o software
  • ‘Testadores’ de software que são responsáveis por todo o processo de gestão da qualidade

Em software house maiores, é necessária uma maior especialização, e muitas vezes também existem:

  • Escritores técnicos que escrevem toda a documentação, tal como o guia do usuário
  • Especialistas de lançamento que são responsáveis pela construção dessa versão de software.
  • Designers gráficos que são particularmente importantes na indústria dos jogos. Eles são normalmente responsáveis por o design da interface gráfica do usuário.
  • Engenheiro de manutenção para servir as linhas de apoio.
  • Consultores responsáveis por tornar a solução operacional, (estes devem ter algum conhecimento especializado.)

Exemplos são: a construção de cubos multidimensionais em software de ‘business intelligence’, integração com as soluções existentes e implementação de ‘cenários’ de negócios em software Business Process Management.

A maioria das empresas reconhece as muitas vantagens da compra de aplicações de software, a partir da prateleira, em vez de o pedir numa software house. Ao adquirir pacotes de aplicativos (como os da Microsoft, Oracle, SAP e outros fornecedores) ou ao usar aplicações que os fornecedores criam, hospedam e disponibilizam na Web (por exemplo, os de SalesForce.com), as empresas podem adquirir soluções eficazes para o seu negócio, com os benefícios da padronização. Desta forma, podem acompanhar as inovações criadas por esses especialistas.

Apesar destas vantagens, as aplicações personalizadas ainda são bastante procuradas. Existem empresas em muitos setores que gastam bem mais de metade dos seus orçamentos de aplicativos em software personalizado, utilizado em grande parte para melhorar, apoiar e operar sistemas personalizados. Para as grandes empresas, setores com concorrência, em rápido movimento, como as telecomunicações, serviços financeiros, alta tecnologia, produtos farmacêuticos, e meios de comunicação, os gastos podem ser muito elevados.

Software para Bancos

Os bancos, por exemplo, frequentemente criam aplicações personalizadas para suportar novos produtos financeiros ou para gerir o risco. As empresas farmacêuticas regularmente constroem aplicações personalizadas para apoiar as atividades de marketing.

Software para Bancos

Mesmo quando uma empresa utiliza software que compra a partir ‘da prateleira’, frequentemente precisam de o personalizar, normalmente adicionando módulos que oferecem uma capacidade distinta. Uma empresa de alta tecnologia, por exemplo, pode instalar um software ERP, mas também construir uma aplicação de gestão de caixa-personalizada para complementar a funcionalidade do software ERP.

A compra de software personalizado a partir de uma software house pode ser um desafio e, claramente, não é adequado para todas as empresas. O retorno do software personalizado é maior em empresas com setores de movimento rápido.

As empresas que utilizam software estandardizado têm vários benefícios

  • Redução do trabalho para os ‘proprietários” do software (menos despesa com a software house) as pessoas que desenvolveram o software personalizado.
  • Redução de custos e transparência de custos pois o custo do software estandardizado, também é estandardizado
  • Maior utilização de recursos
  • Aumento da capacidade de gerenciamento
  • Menos formação, no uso do software, pois é estandardizado
  • O valor total para as empresas que consolidam aplicações em serviços partilhados.

No entanto este software estandardizado não é adequado para todas as empresas. As empresas que têm que implantar novas aplicações de forma rápida e constante, como os bancos e as empresas de média, irão beneficiar da software house. As empresas em sectores mais lentos podem ter pouca necessidade dos serviços da software house. Se as aplicações de software não precisam de ser alteradas com frequência, escrevê-las uma vez é o suficiente, o trabalho necessário para padronizar atividades personalizadas, não se justifica. Para as empresas que podem beneficiar de produtos de software estandardizados, sugerimos o seguinte:

  • Criar os produtos, não lembrando apenas a base de aplicações existentes, mas também as necessidades futuras.
  • Organizar grupos para entregar produtos de forma eficaz mediante as necessidades do negócio e não apenas os resultados da tecnologia.
  • Prestar atenção aos fatores organizacionais que garantam a devida governança e percebam os benefícios do negócio.

Definir os produtos certos para gerenciar os aplicativos, começa com a análise de como eles se agrupam de acordo com as necessidades comuns. De seguida, é mais proveitoso concentrar-se em aplicações que prevê que venham a ser necessárias, do que naquelas que já estão em vigor.

O que você espera de uma software house, para o seu negócio?

Uma empresa que tem como objectivo básico fazer software, chama-se software house.

Em poucas palavras, podemos simplesmente dizer que o software é um conjunto de instruções dadas pelo hardware, para o operar (drivers), e um conjunto de procedimentos de programas, e algoritmos com documentação. Existem dois tipos de software.

processos das softwares houses

Software de Programação e Software de Aplicação

Software de Programação

Este é geralmente usado para desenvolver um software com a ajuda de muitas outras ferramentas, utilizadas por um programador, como, compilador, linker, depurador, editor de texto, etc.

Software de Aplicação

Este software é geralmente para uma finalidade específica, como o Sistema Operacional, Software de Negócios, Software Educacional.

Por que se deve preocupar com software que pode desaparecer se o seu criador também desaparecer?

Um equívoco comum sobre software – apesar de que este, talvez, está a mudar gradualmente – é que geralmente o produto é desenhado por grupos focais, que nunca são vistos por os clientes, e apoiados por pessoas que, muitas vezes, nunca usaram o software. Essa ideia da software house, como uma grande empresa, sem dúvida, vem das empresas que mais facilmente saltam à mente sempre que software é mencionado: Microsoft, Apple, Adobe, Google etc. Afinal, muitos usuários de computador, só querem entrar no computador e fazer coisas, não têm tempo ou inclinação a ficar obcecados sobre qual o software que deveriam usar, ou para explorar muito além do que usam todos os dias no escritório ou os programas que vêm instalados no computador. Muitos não conhecem o mundo do software para além das casas de renome. Isto é agravado pela nossa relação com a tecnologia em geral, se algo correr mal ou estiver apenas mal projectado, não temos nenhum poder real para falar com alguém que possa fazer algo sobre isso. Nós aprendemos a viver com os defeitos.

Por que deve tentar usar software que foi desenvolvido de forma independente quando pode usar um programa que é apoiado por uma equipe de dezenas de programadores?

Deve-se preocupar, porque poderá existir uma ferramenta melhor para aquilo que você quer fazer.

Os computadores foram feitos para nos servir, para facilitar as nossas vidas (pelo menos até que se tornem rebeldes.) Em alguma ou outra altura, muitos de nós encontramo-nos a ‘lutar’ com o software que, conhecemos, tentando forçar que os programas familiares façam tarefas para as quais o software não foi projectado. No entanto, existe software, menos conhecido, que foi criado por desenvolvedores independentes que se debateram com os mesmos problemas e, criaram um software que fornece uma solução. Ao contrário das grandes casas de software, os desenvolvedores de software, independentes, são mais capazes de assumir um risco com uma nova ideia, porque estão a trabalhar uma ideia com que se preocupam, um software que, realmente, querem para si próprios, em vez de um software (que a pesquisa de mercado diz) que vai vender bem. No final do processo, o desenvolvedor tem uma ferramenta que resolve o problema que ele tinha, se o problema for bastante comum a ferramenta até pode ter venda. A inovação em software começa com alguém que se dispõe a criar uma ferramenta que quer ou precisa para si próprio.

O Software deve estar em constante evolução. Muito software começou como um simples substituto digital para ferramentas analógicas, o processador de texto para substituir a máquina de escrever, (por exemplo.) À medida que usamos os computadores de formas cada vez mais criativas, o software evolui para suportar os diferentes fluxos de trabalho, para incorporar e melhorar as formas como usamos as ferramentas em relação uma à outra. É neste ponto que muito do software que foi desenvolvido de forma independente começou a brilhar ao longo dos últimos anos, e a razão por que vale a pena explorar o mundo para além do Word, Excel e Photoshop, mesmo que esses programas de ‘grandes nomes’ tenham um lugar nos nossos computadores.