Se você acompanha este blog, deve ter percebido que já faz algum tempo que não escrevo nada para a série “Diário de uma pequena empresa”. Claro, isto teve um propósito: quando voltasse a escrever, gostaria que fosse algo relacionado ao produto que a Conio Soluções em Tecnologia criou e que agora, em 2014, está colocando no mercado – o EducaNet.
Pois bem, quase um ano após o último post desta série, estou de volta para falar sobre os desafios que enfrentamos para criar o produto ao qual me referi no parágrafo anterior.
A ideia
O EducaNet nasceu (conceitualmente, é claro) já há alguns anos, quando ainda lecionava disciplinas de programação nos cursos de tecnologia em algumas universidades no interior paulista. Por identificar uma série de lacunas nos processos acadêmicos e principalmente pedagógicos, comecei já naquela época (lá pelos idos de 2008, 2009) a criar o famoso “mapa mental” daquilo que imaginava ser uma boa opção em termos de ferramenta computacional para instituições de ensino. É claro que, com o passar do tempo e com sugestões muito interessantes de alguns colegas (tanto da área pedagógica quanto da área de tecnologia), aquilo que inicialmente era algo menor, direcionado, ganhou nova forma e está se tornando algo bem maior, completo e robusto.
Algumas características iniciais que, obrigatoriamente, a ferramenta (naquela ocasião, ainda sem nome) precisava possuir:
- Funcionar para qualquer instituição de ensino, independente do tamanho ou modelo de ensino (entenda-se: superior, ensino médio, ensino fundamental, escolas técnicas ou cooperativas).
- Deveria ser acessível para qualquer dispositivo que possuísse conexão com a internet.
- Deveria ser acessível para pessoas que possuem necessidades especiais.
- Nenhuma instalação de plugin ou complemento deveria ser requerida para que a aplicação funcionasse.
- Deveria possuir o mesmo comportamento em todos os navegadores (independente do sistema operacional).
- Deveria otimizar os processos de gestão acadêmica.
- Deveria possuir um foco pesado na gestão pedagógica.
- Deveria suportar carga “infinita”, ou seja, não poderia cair.
- Dentre algumas outras coisas.
Este projeto ficou guardado, a sete chaves, até que chegou o momento de investir na Conio e claro, naquele projeto “das antigas”. Com base em todos os requisitos já levantados inicialmente, fomos a luta e hoje, um ano depois, temos um produto no mínimo “interessante” para ofertar ao mercado.
O nome…
Quando resolvemos investir tempo, esforço e principalmente, dinheiro, para viabilizar o produto, nossa primeira preocupação foi com o nome do mesmo. Após algum tempo de reflexão e muitos brainstorms, chegamos ao nome EducaNet.
Entendemos que o nome funcionava, pois: era atual, identificava exatamente a natureza do projeto e principalmente, é de fácil pronúncia e memorização. Diante disso, nossa primeira providência foi a de registrar a marca e o logotipo.
A arquitetura
Superada a etapa do nome, solitariamente (claro, não haviam recursos para montar uma equipe de desenvolvimento), comecei a pensar na arquitetura da aplicação, de modo que pudesse atender aos requisitos descritos na lista apresentada anteriormente. Algumas perguntas que eu me obriguei a responder naquela ocasião:
- Como fazer uma aplicação única possuir comportamentos distintos para instituições distintas?
- Como criar uma estrutura de bancos de dados que se comporte de forma adequada em um ambiente de extrema concorrência?
- Como fazer uma aplicação que é baseada 100% em recursos web ser performática, segura, bela e robusta?
- Como criar uma estrutura de códigos reutilizáveis?
- Como criar uma arquitetura aberta e flexível, que facilite os processos de testes automatizados?
- Como conseguir escala para a aplicação na medida em que a carga de usuários e acesse cresce de forma exponencial?
- Como criar uma aplicação “plugável”, que me permita conectar outras aplicações a ela e vice-versa?
- Banco de dados relacional ou não relacional?
- HTML 5 ou não (já que a especificação ainda não era final)?
- Qual ORM utilizar?
- Qual infra estrutura de hospedagem suporta estas demandas?
- E se este software, um dia, for comercializado em outro país?
- Dentre algumas outras.
Foram algumas semanas pensando em cada uma destas questões até chegar em respostas seguras e confiáveis. Felizmente elas vieram mais rapidamente do que eu mesmo poderia imaginar.
Estruturação do banco de dados
Sim, o EducaNet começou pelo banco de dados. Cada tabela, campo e seus respectivos tipos de dados foram cuidadosamente planejados para atender as demandas de features iniciais.
É evidente que, para que chegássemos a um modelo final de diagrama entidade-relacionamento (DER), muitas reuniões técnicas e pedagógicas com alguns colaboradores do sistema foram realizadas. Estas reuniões geravam documentos que, mais tarde, se tornavam requisitos para o sistema, que mais tarde, eram convertidos em entidades e suas regras, enfim.
Superada a etapa de criação do modelo conceitual de dados, o passo seguinte consistiu na criação da estrurtura física do banco de dados. Para isso, foi preciso escolher os sistemas gerenciadores de dados que a aplicação suportaria e com base neles, criar rotinas compatíveis com os mesmos. SGBDR’s escolhidos, banco criado.
Criação do ambiente inicial de desenvolvimento
No início, o EducaNet tinha apenas um programador (no caso, eu mesmo), mas e se, em algum momento, este número subisse para dois? E se em outro momento fosse para três? E se, em outro momento, fosse para 50? Como ficaria?
Diante disso, optamos por criar um ambiente de desenvolvimento robusto, 100% baseado em ferramentas de nuvem, que contemplasse os seguintes aspectos:
- Gestor de versões para código fonte.
- Ferramenta para geração de build e integração contínua.
- Ambiente de desenvolvimento.
- Ambiente de homologação.
- Ferramenta gestora de tasks, sprints e releases.
- Dentre diversas outras coisas.
Mãos a obra
Me orgulho de dizer que fiz o “File” > “New” > “Project” para o EducaNet.
Me lembro das views iniciais, da composição dos elementos visuais, classes controladoras, estruturação das tabelas do banco de dados, escolha dos mecanismos de arquitetura, etc.
Outra preocupação importante esteve relacionada ao ambiente de produção, aquele onde a ferramenta deverá “rodar” de forma efetiva. Muitos foram os ambientes testados. Aquele que apresentou o melhor comportamento, foi o escolhido.
Na sequência, os colaboradores começaram a chegar. Foi bacana visualizar a evolução do projeto e do time, com entregas sendo realizadas no prazo (e claro, algumas vezes fora dele), etc.
Hoje, um ano depois, podemos ver a materialização daquele projeto inicial impactando positivamente e de forma efetiva, os alunos, pais/responsáveis, docentes e gestores que utilizam a plataforma.
Como colocar o produto “na rua”?
Talvez, este tenha sido o maior de todos os desafios.
Lançar um produto não é tarefa fácil, ainda mais considerando a enorme concorrência no mercado atual. Muitos são os aspectos a serem considerados neste quesito:
- Estratégias de divulgação (quais irei utilizar?).
- Budget para o projeto.
- Definição assertiva de público alvo.
- Estruturação de departamento comercial (sim, é um mal extremamente necessário).
- Dentre diversos outros.
Atender a estes requisitos não é tarefa fácil. Se os recursos estiverem disponíveis, uma boa consultoria de uma agência de marketing e vendas pode ajudar neste processo.
Especificamente sobre a área comercial, cercar-se de boas ferramentas de gestão (como CRM, por exemplo) é importante, entretanto, é o meio e não o fim. O mais importante continua sendo o elemento humano. Nem todas as pessoas são de vendas e nem todos os vendedores vendem todos os produtos. Vender software é uma atividade complexa, uma vez que, na grande maioria das vezes, é importante possuir, além do skill de vendas, o conhecimento técnico. É importante ser assertivo neste aspecto.
Outro aspecto de extrema importância, é o estabelecimento e medição de indicadores de resultados. Cuide disso e você saberá como está sendo o desempenho de seu produto em diferentes aspectos. Novamente, se esta habilidade não for nativa, uma boa consultoria poderá lhe auxiliar em grande escala.
Suporte técnico
Vender um produto significa, necessariamente, oferecer suporte e o mais interessante, é que a qualidade deste serviço pode ser a diferença entre o sucesso do produto (e consequentemente da empresa) ou seu fracasso.
Novamente, a modelo do que ocorre com o setor comercial, o diferencial neste quesito está no material humano. Existem boas e acessíveis ferramentas para auxiliar nesta missão, entretanto, contar com a experiência e comprometimento de profissionais bem preparados, faz toda diferença. #ficadica
Concluindo
Criar e comercializar um produto não é tarefa fácil. Este post apresenta apenas alguns pontos chave em relação a este assunto, ou seja, isso é o mínimo que você deve pensar se esta for sua intenção.
É preciso coragem para seguir nesta linha, uma vez que software, diferentemente de outros tipos de produtos, demora um bom tempo para retornar os investimentos (que não são baixos). Estamos falando de meses/anos investindo tempo e dinheiro em algo que possui potencial mas que não traz qualquer certeza de sucesso.
Boa sorte!
Facebook
Twitter
Instagram
LinkedIn
RSS