Por que vamos escrever sobre gestão de produtos?

Antes da popularização da Internet, a distribuição de software para usuários finais tais como editores de texto, planilhas, atualizações de sistemas operacionais e outros, ou para pequenas empresas tais como sistemas de gestão de restaurante, estacionamento, etc. era bastante complicada.

Era necessário preocupar-se com a logística de distribuição para os clientes que normalmente compravam o software em lojas de informática, papelarias ou até mesmo em bancas de jornais, e o autor dificilmente tinha acesso aos compradores ou usuários de seu aplicativo, já que os compradores eram clientes das lojas de informática, das papelarias ou das bancas de jornais, e não da empresa que desenvolveu o software.

A distribuição era feita por meio de disquetes ou CDs. Isso implicava que o próprio usuário, ou o alguém da equipe de suporte do cliente, do vendedor do software ou até mesmo de uma empresa especializada em instalar esse software, deveria ir de máquina em máquina fazer a instalação. Grandes empresas possuíam softwares que faziam o gerenciamento de ativos de software nas diversas máquinas da empresa, e conseguiam fazer instalações remotas – dependendo, é claro, de o software a ser instalado ter suporte a isso.

No caso de atualização desse software, o procedimento era o mesmo. Ainda que o software pudesse ter uma versão de atualização mais leve que uma instalação a partir do zero, o processo de distribuição acabava sendo o mesmo. Era impossível garantir que todos os usuários estavam rodando a mesma versão de um determinado software.

Com a popularização da Internet, vários softwares passaram a avisar o usuário que havia uma atualização na versão de seu software e, com isso, o usuário podia atualizar sozinho seu aplicativo desde que tivesse perfil com permissão na máquina para fazer isso, soubesse o que estava fazendo e a atualização não tivesse outros impactos. Geralmente usuários em empresas não tem este tipo de permissão em suas próprias estações de trabalho.

Do ponto de vista de desenvolvimento, ao fazer um software e suas atualizações, os desenvolvedores tinham que se preocupar com a compatibilidade de seu programa com o sistema operacional do usuário (Windows? Mac OS? Linux? Qual versão?), com as dependências que suas aplicações precisavam (será que o usuário tem Java instalado em sua máquina? E a biblioteca XYZ, será que está lá?) e com o impacto de outros softwares instalados na máquina do usuário (será que a versão 2 do meu aplicativo vai funcionar bem com a versão 3 do aplicativo Z – sobre o qual não tenho nenhum controle – e o usuário vai conseguir utilizar meu software com sucesso?).

Em resumo, desenvolver um software era um processo complexo, com dependências fora do controle da equipe de desenvolvimento do produto, riscos altos e uma grande dificuldade de evolução. Assim, ou você fazia um grande investimento no desenvolvimento, marketing e distribuição, e acertava; ou fazia este mesmo investimento e errava, desperdiçando tempo, esforço e muito dinheiro.

Este overhead no desenvolvimento e na distribuição de software dava muito pouca margem a erro. Se houvesse uma mudança numa regra de negócio, ou até mesmo um bug no software, seria muito difícil distribuir a atualização e garantir que todos os usuário estariam com a ultima versão.

Para este modelo antigo de desenvolvimento e distribuição são necessárias algumas “garantias”:

  • Os requisitos de negócio precisam estar muito bem definidos e não sofrer mudanças ao longo do tempo.
     
  • Não é possível ter dúvidas sobre funcionalidades, prioridades, ou layout das telas durante a especificação do produto.
     
  • O software não poderá ter nenhum bug que prejudique o uso de qualquer funcionalidade.
     
  • O software precisa ser testado numa infinidade de ambientes diferentes.

A única forma de chegar perto disso era através de muita documentação, muita especificação, muitas “certezas” sobre como os usuários utilizariam a ferramenta e um cuidado muito grande com upgrades, que precisavam ser muito bem justificados para que os usuários topassem pagar para comprá-los. E mesmo que fossem grátis, mesmo assim era necessário que fossem muito bem justificados, para que os usuários se dispusessem a passar pelo processo de atualização de software.

Internet e SaaS

O surgimento da Internet e das aplicações Web, principalmente no modelo SaaS (Software as a Service) permitiu uma grande evolução na forma de gerir produtos de software. Produtos de software rodando em browsers não dependem mais de logística de distribuição ou dos complicados processos de instalação e atualização. Os compradores e usuários são seus clientes sem passar por intermediários, e nova versões do produto passam a estar disponíveis para os usuários instantaneamente. Em vez de “prever o futuro” e “adivinhar” quais funcionalidades são mais importantes para fechar uma versão completa vendável de seu produto, agora é possível ter um roadmap que evolui sob demanda, conforme o feedback imediato dos clientes e usuários, e conforme a disponibilidade da equipe de engenharia. A web permite a implementação de layouts bem mais customizados e uma liberdade criativa muito maior. Outro aspecto importante é que a popularização da internet e dos computadores fez com que usuários com os mais diversos níveis de conhecimento técnico tivessem acesso a sites e produtos web.

Nos próximos posts abordaremos boas práticas para a gestão de produtos web: como criar produtos de forma incremental e iterativa, de acordo com as demandas de seus clientes, perseguindo as metas de sua empresa e garantindo usuários felizes e satisfeitos com os resultados entregues pelo seu produto. Iremos desde a etapa de concepção de um produto, até o tratamento do end of life de um produto que deixa de ser interessante para sua empresa.

Acreditamos que, com pequenas variações, os conceitos apresentados aqui poderão ser aproveitados tanto por startups quanto por empresas já estabelecidas. O importante não é seguir à risca os passos que apresentaremos, mas sim captar os conceitos e adequá-los a sua realidade.

Próximo post

No próximo post vamos começar pelo começo, ou seja, pela definição de alguns conceitos.

Comentários

Vc se lembra da época do software pré-internet? Tem alguma história interessante dessa época para compartilhar? E sobre gestão de produtos, o que vc espera ler? Comente!

Livro sobre gestão de produtos

Vc gosta do tema gestão de produtos de software? Quer se aprofundar mais no assunto? Escrevi um livro sobre o assunto, dividido em 5 grandes áreas:

  • Definições e requisitos
  • Ciclo de vida de um produto de software
  • Relacionamento com as outras funções
  • Gestão de portfólio de produtos
  • Onde usar gestão de produtos de software
Capa do Livro Gestão de Produtos

Esse livro é indicado não só para quem tem software como seu core business, como tb para empresas que desenvolvem software sob demanda e empresas que não tem software como seu core business mas usam software para se comunicar com seus clientes como, por exemplo, escolas, bancos e laboratórios clínicos.

Interessou? Então adquira sua cópia hoje mesmo!

Newsletter

Se você quiser receber artigos por email sobre startup, gestão de produtos e gestão de TI, digite seu endereço abaixo e aperte enter:


Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>