Software development needs a Campfire

You will always want the best developers. Or at least those more adequate to your company. They won’t be in your city. The world has 7 billion of people, and each one can have good reasons to not reallocate or travel daily. Forcing it to do it will result in more costs and dissatisfaction with the moving. But don’t get me wrong: someone isn’t accommodated just for deciding to not leave friends.

Limitations. At least geographical distance is not one. We are on the 21st century.

Hiring remote doesn’t necessarily mean closing a deal with Indonesians (but would probably add a lot in culture); a remote employee can be in a close city or even in the peripheral area of the same one. Because, definitely, developers don’t need to be in the same office to do their job

Although it can be seem, the developer job is not just deploy a list of features. He needs a casual environment of constant knowledge exchange. It’s like an office itself, where he can talk about the need of semicolons in JavaScript while drinking a cup of coffee. An abnormal rate of delivered points on Pivotal Tracker can be a sign of a successful project, as exhaustion and introduction of bugs to be noticed just a couple of sprints later. As any professional, he will have a place to learn and cool off when needed. Problems solved joining everyone interested in the project in the same room; no wonder a discussion group on Campfire is called room.

Campfire doesn’t have any witchcraft. It’s just a chat. People send messages that other team members can read. With a differential: not every message needs to be read instantly. When you feel that this is needed, you can use… instant messaging (like Google Talk or Skype), which keep working as always. But what kind of message would you send in a company’s (or team’s) chat? The same sentences said out loud in the office’s room: “Guys, do you know any lib for authorizations compatible with Rails 4.1?”, “I’m using rbenv, but Ruby 2.1 isn’t properly loading with the project”, “What do you think of the design of this autocomplete” or “We can’t send user’s password by e-mail? Can we find any alternative without leaving the page?”. All of them are part of features that a developer could do alone (with or without Google’s help), but why not share?

As any workroom, not everything is about work. The Campfire room is free to talk about the movie watched in the weekend, an article being shared on Twitter or the last video from Freddie Wong. This kind of action will bring the office to anyone distant to it.

A concern to those trying this method is about communication. Although is a really important worry, cannot be a reason to prevent its use. Working physically remote won’t stop - or increase - communication problems, but will make them clearer. Given the both sides of the coin, you can use this to fix existing problems. A person pushing a feature after its estimate without getting help shows someone without pro activity. Being in the same site, he can argue the problem was “demonstrated”; remote, it must be directly reported.

And remember about necessity of instantly reading each message? It will give you a bonus: having a lot of people in the same room will force you to scan messages from those not working directly with you. This process will stand to, in a future point, remember yourself that someone knows something about a given problem that you are having. Will stand to know what happens in the company. In a way that working in site wouldn’t allow you. This will give the flexibility to do your job outside of office’s schedule and even attending to some courses.

But one of the challenges of working with Campfire is using it in the same room (that with four walls). What should be spoken and what goes as text? Each company can find the better solution for itself, but one simple and interesting use is: needs to be heard or can be interesting to someone else? Campfire. Is immediate? Skip instant messaging and poke your co-worker. You will see satisfaction and more concentration in the team.

So, use Campfire. Even if not from 37signals. You can have HipChat, a channel on IRC or any set group on a chat. Tools, as any other, must be used with a purpose.

Desenvolvimento de software precisa de um Campfire

Você vai sempre querer os melhores desenvolvedores. Ou ao menos os mais adequados à sua empresa. Eles não estarão na sua cidade. O mundo possui 7 bilhões de pessoas, e cada uma pode ter os seus bons motivos para escolher não se mudar ou deslocar-se grandes distâncias diariamente. Obrigá-la a isso trará problemas como custos com deslocamento e insatisfação com a mudança física. E não leve a mal: a pessoa não é acomodada apenas por não querer deixar amigos.

Limitações. Ao menos a distância física não é mais uma. Estamos no século XXI.

Contratar pessoas remotas não significa necessariamente fechar contrato com indonésios (apesar de poder te adicionar muito no quesito cultural); um empregado remoto pode estar numa cidade vizinha ou mesmo na periferia do mesmo município. Porque definitivamente desenvolvedores não precisam estar no mesmo espaço físico para desempenharem o próprio trabalho.

Apesar do que pode aparecer à primeira vista, o trabalho de desenvolvedor não é apenas fazer deploy de funcionalidades. Este, precisa de um ambiente de troca de informação constante e descontração. Ele é como o próprio escritório, onde você pode parar para trocar uma ideia sobre a necessidade ou não de ponto e vírgula no JavaScript durante um café. Uma taxa de entrega anormalmente alta de pontos no Pivotal Tracker pode ser sinal de um projeto bem sucedido, mas também de cansaço e introdução de bugs que serão detectados apenas meia dúzia de sprints adiante. Como qualquer profissional, a ideia é que tenha tempo para conseguir esfriar a cabeça e se auto-aperfeiçoar. Problemas estes resolvidos reunindo os interessados na mesma sala; e não é à toa que um grupo de discussão do Campfire é chamado de room.

O Campfire não tem nenhuma magia negra. É apenas um chat. Pessoas digitam mensagens que membros do grupo podem ler. Com um diferencial de uso: nem toda mensagem precisa ser lida instantaneamente. Quando essa necessidade realmente existe, você tem… mensageiros instantâneos (como Google Talk ou Skype), que seguem funcionando perfeitamente. Mas que tipo de mensagem enviaria num chat da empresa (ou da equipe)? O mesmo que diria em voz alta na sala física: “Pessoal, alguém conhece uma biblioteca para ajudar a criar permissões compatível com Rails 4.1?”, “O Ruby 2.1 não é carregado corretamente no meu projeto. Estou usando o rbenv.”, “O que vocês acham dessa aparência para o autocomplete?“ ou “Não podemos enviar a senha do usuário por e-mail. Tenho como contornar isso sem sair da página atual?”. Todas fazem parte de alguma tarefa que um desenvolvedor deveria ser capaz de realizar sozinho (com ou sem ajuda do Google), mas por que não compartilhar?

Como toda sala de trabalho, nem tudo que é ouvido é referente a trabalho. O Campfire é livre para qualquer um falar sobre o filme que assistiu no fim de semana, colocar o artigo da vez sendo compartilhado pelo Twitter e postar o último vídeo do Porta dos Fundos. Esse será o tipo de atitude que trará o ambiente físico do escritório para qualquer pessoa distante dele.

Uma preocupação constante de quem está entrando no mundo do Campfire é a comunicação. Apesar de ser um bom motivo para se repreender à mudança, não pode ser impeditivo. Trabalhar fisicamente remoto não impedirá - nem aumentará - problemas de comunicação, mas os deixarão mais evidentes. São dois lados da mesma moeda que podem ser aproveitados de modos diferente, caso exista interesse. Uma pessoa prolongando uma tarefa enquanto tem dificuldades e não procura ajuda, demonstra a falta de pró-atividade do profissional. Presencialmente poderia ter criado a ilusão que a dificuldade foi “demonstrada”; remoto, ela deve ser reportada diretamente.

E lembra da parte de não precisar ler as mensagens imediatamente? Você leva mais um bônus: se tiver bastante gente na sala, você pode escolher apenas escanear mensagens de determinadas pessoas com quem não está trabalhando diretamente. Esse scanning pode servir para num futuro lembrar que alguém já teve um determinado problema que atualmente te incomoda, por exemplo. Servirá para saber o que acontece na empresa. De um modo que trabalhar presencialmente não permitiria. E de um jeito que permitirá você ter horários mais flexíveis, talvez até para fazer cursos em um turno.

Agora talvez um dos maiores desafios de se trabalhar com Campfire é usá-lo dentro do escritório físico. O que devo falar pessoalmente e o que vai por escrito? Cada empresa pode encontrar o que se encaixa mais com o seu fluxo, mas uma forma interessante de usar é: precisa ou acha que qualquer um pode se interessar? Campfire. É imediato? Pule o mensageiro instantâneo e cutuque o colega diretamente. Você verá ganhos em satisfação e concentração da equipe.

Por isso, use o Campfire. Mesmo que não seja o da 37signals. Você tem o HipChat, um canal do IRC ou um grupo fixo em qualquer chat. Eles são apenas ferramentas, e como qualquer outra, não tem utilidade se não for usada com um propósito.

A necessidade de desenvolver aprendendo

Dificilmente você conseguirá manter desenvolvedores (ou, se preferir, “criadores”, já que não é de apenas programadores que me refiro) instigados no ambiente de trabalho se ele não oferecer formas de sempre aprender coisas novas. Um profissional desses está em constante formação e quer trabalhar em volta de pessoas que saibam mais do que ele, para que todos os dias possa tirar coisas novas. E tão constante quanto as reclamações, vemos gente que sente não estar aprendendo tudo o que poderia. Vindo de empregados de empresas pequenas, como é comum no ramo de tecnologia, é fácil encontrar causas: dificilmente num grupo de 10 pessoas encontraremos gente com grande (seja em dimensão ou profundidade) conhecimento e saiba instigar os outros a elevar o próprio nível.

As tentativas

Sabendo que depois de certo tempo a pessoa pode se achar limitada, a primeira alternativa é recorrer à literatura para conhecer casos passados. Do mesmo modo que um escritor lê obras clássicas para aprender padrões em casos de sucesso, o desenvolvedor quer conhecer técnicas provadas como funcionais. A literatura técnica, seja em qualquer área, não é exatamente barata. Mesmo ganhando 1 ou 2 salários mínimos, isso é um problema contornável, mas você quer ou não apoiar quem está se esforçando para aumentar a qualidade da sua empresa? Para ambos é um investimento baixo e com alta chance de bons lucros.

Muito valorizada também, é direcionar o profissional para cursos. Estes geralmente são fáceis de encontrar e têm preços variados. A empresa paga o empregado em dobro (salário e curso) e é um dos mais arriscados. E exatamente por isso que pode trazer melhor retorno: você está treinando uma pessoa em alguma habilidade necessária para o seu trabalho. Talvez esta seja única na empresa. O risco, caso você não consiga fidelizar o funcionário, de a médio prazo estar evoluindo o time do seu concorrente existe, mas aí valem as conversas que você vai constantemente levar com ele sobre o alcance de suas expectativas.

A terceira, e talvez a mais interessante de incentivar o aprendizado, é o networking. Chame do que quiser, mas conhecer pessoas novas e discutir ideias com gente diferente só tem a adicionar à capacidade da sua empresa. Nesse caso não pode haver medo da concorrência: ai existem pessoas com objetivos semelhantes, seja trabalhando com o mesmo crachá ou não.

Como se não bastasse, esse pessoal costuma levar a sério qualquer conselho bonito que ouvem por ai. Resultado: se passar 2 dias insatisfeito com o que está fazendo, tentará corrigir os problemas e propor soluções. De você, líder, é esperado que aproveite a oportunidade. Daí podem surgir mudanças interessantes e inovadoras.

As alternativas

Para contornar isso, não tem bala de prata: você precisará confiar em quem contratou e ser sincero (como também cobrar a contra-parte) no máximo de aspectos possíveis. Incentive, discuta e apoie.

Quer uma alternativa simples de ser implementada? Rotatividade. Se a empresa possui poucos funcionários, dê a oportunidade para trocas de projeto a cada 3 ou 6 meses. Isso fará bem para o profissional - que estará em um ambiente novo e de maior aprendizado - e para o projeto - que pode ter problemas invisíveis até então, revelados por carne nova no pedaço. Não tem gente nem projeto suficiente para ficar rotando? Use o networking que espero que já tenha feito para trocar um empregado por outro de mesmo nível em uma empresa parceira. Laços entre todos os envolvidos têm grande chance de se reforçarem.

O fim

E esse processo simplesmente não tem fim. Trabalhar com gente que está sempre criando é extremamente disposta a inovar. Aprender é fundamental para que essa capacidade esteja crescendo e tendendo ao infinito.

Sobre a relação entre satisfação e prestação de consultoria

A partir desse momento você é um consultor. Você conhece bem um processo ou ferramenta e sabe apontar quando ela deve ou não ser usada. Você é um especialista na resolução de problemas relacionados à sua área de domínio. Seu trabalho será estressante.

Prestar consultoria não é um trabalho fácil. Você só tem clientes com problemas e quanto mais extensos e complicados, mais interessante são para a empresa que presta o serviço. E este é seu papel: ter um cliente que só chegou até você porque tinha problemas, porque algo fugiu do controle. É possível generalizar para um cenário: a equipe atual não dá conta do que precisa ser feito. Prazos estão apertados, gente pouco qualificada para cumprir os requisitos ou o processo do projeto não ficou claro a todos. Resumindo: uma empresa precisa da sua ajuda.

Ajudar uma empresa não é fácil. Mas errar é comum e você deve encontrar cada um desses erros. Seu trabalho é estudar como ela funciona, participar dos processos e ensinar conceitos novos. Para você, de fora, será menos complicado de identificar os pontos deficitários. Mesmo este sendo aberto a novas ideias, alguém da empresa estará errado e o responsável pela sua contratação tem certa culpa no cartório. Seja por falta de conhecimento de melhores ferramentas ou exigências por mudanças bruscas, as pessoas da empresa não foram capazes de cumprir as restrições e obrigações que o mercado exige.

Mas você não vai querer que o cliente simplesmente aceite os seus argumentos. Um bom consultor - que vai ser lembrado pela sua capacidade de resolver problemas - deve ensinar o porquê de estar propondo mudanças. E argumentos frágeis não serão aceitos. Da mesma forma que você tem o objetivo ético de apontar qualquer coisa que deva ser melhorada, seu cliente tem um negócio que gera dinheiro. Para ele, que talvez tenha funcionários subordinados e parceiros comerciais, teorias acadêmicas nem sempre terão validade. Evidências práticas do funcionamento das ideias geralmente são requisitos para uma avaliação mais séria do que vai ser implementado. Se o próprio responsável pela empresa não souber claramente causas e consequências dos problemas, logo voltarão ao ponto inicial sem terem ideia do porquê. A forma mais efetiva de criar resultados satisfatórios é a partir de boas discussões com o dono do negócio. Se juntos chegarem a uma segunda ou terceira solução mais efetiva, esta deve ser colocada à prova. Dificilmente vocês terão algo perfeito, mas no fim isso não tem tanta importância. Antes de uma resposta pronta é importante se fazer a pergunta certa, que exigirá boa experiência. Pode ser que seu trabalho no fim seja até visto como supérfluo, mas ele foi o responsável por plantar sementes que vieram a germinar semanas depois.

E nem tudo são flores. Do mesmo modo que pessoas e empresas falham, você pode falhar. Esse entendimento, apesar de pré-requisito para qualquer pessoa se formar em Medicina, não é obrigatório em outros cursos. Assim como luta para melhorar o que você vê acontecendo de errado, você deve aconselhar medidas contrárias. Vale mais você ser honesto e prescrever eutanásia em partes que não têm mais chances de sobreviver sem a devida dignidade. Um especialista não deveria ter problemas em ser honesto e sugerir soluções efetivas.

Sendo um trabalho tão complicado e precisando argumentar sobre tudo o que faz, resta ser bem pago ou você deveria estar direcionando seus esforços diretamente para si. Mas qual seria a melhor forma de encontrar as respostas (e, obviamente, suas perguntas) se não fosse tornando-as cada vez mais fortes? A partir do momento que você é obrigado a argumentar convincentemente cada uma das suas decisões para pessoas que realmente precisam do seu trabalho, você tem muito mais satisfação ao saber que fez diferença. Sem dúvida é um trabalho que exige altruísmo e persistência.

Já é hora de acelerar minha startup?

Podemos pensar em 3 períodos de uma startup que essa pergunta vem à tona:

  • A ideia do produto ou serviço a ser oferecido não passa disso: uma ideia.
  • Temos algo funcionando e usuários, mas falta um modelo de negócios rentável.
  • Já foi gerado uma quantia em dinheiro considerável mas ultimamente o crescimento tem diminuído ou estagnou.

Se o seu caso não se enquadra em nenhum destes, você já deve ter várias opções de como fazer a empresa crescer e não sabe qual ou como decidir; ou talvez não seja mais uma startup.

Da ideia à prática

Neste ponto, você teve uma ideia. Genial ou nem tanto. Mas mesmo que seja baseada em algum modelo já existente, ela vai ser aplicada em um contexto diferente, então é necessário que você conheça os usuários envolvidos para poder adaptá-la e melhor agradá-los.

Talvez seja esta uma das fases mais interessantes de uma startup. É nela que vão ser formuladas hipóteses para serem testadas e validadas. Os fundadores começarão a descobrir quais dos seus sonhos têm possibilidade de funcionar no mundo real e ainda terão tempo de verem-se frustrados a ponto de não seguirem com a ideia adiante.

Se aí você já estiver comprometido com investidores, estará impedindo esse aprendizado necessário entre fundadores e mercado. Você pode acabar se vendo como uma pessoa que prefere seguir ordens e ter estabilidade financeira a arriscar-se montando uma empresa. Obviamente dinheiro será importante antes de torná-la lucrativa, mas passado esse período, você terá muitos argumentos para convencer pessoas competentes a te ajudarem - financeiramente ou não - no negócio.

Se uma aceleradora te oferecer ajuda para iniciar um projeto sem que você seja já um bom empreendedor ou conheça muito do mercado alvo, desconfie. Talvez ela não saiba da importância das ideias ou queira se aproveitar de um negócio que pode dar certo. Se você pagar o trabalho deles com uma porcentagem da empresa, terão um risco baixo (apenas o custo do próprio tempo durante a aceleração) apostando em você. Já que 20% de algo que vale zero é 0, a aprovação do mercado ao modelo tem chances boas de render frutos no futuro; se pagar com uma quantia fixa caso o projeto não alcance determinado patamar, beira à agiotagem. Investiram esta quantia com chance maior que 100% de retorno.

Dificuldade em análise de mercado

Chegado à este estágio, pode ser que a startup tenha até mesmo sido criada sem querer. Sendo ela ligada à software, talvez seja algum programa desenvolvido em algumas horas durante à noite. Clientes começaram a cobrar nota fiscal e você abriu uma empresa formal mas não consegue encontrar um modelo de negócios rentável ou agradável à todas as partes.

Estes fatores sugerem que sua ideia tem potencial. Ter usuários é um passo vencido, já que mostra que você não é o único acreditando na utilidade do serviço que presta. Agora qual a melhor forma - além de estudar - de tornar rentável aquele seu software que pelo acaso tem retornado menos dinheiro do que toma com suporte e servidores?

Permitir-se aprender conceitos novos é necessário em todas as etapas da vida, mas tendo uma empresa que não se paga pode ser decisivo. O que aconteceria se você precisasse fazer uma cirurgia daqui a alguns dias e não pudesse desempenhar seu papel de CEO por uma semana? A empresa teria rendimento negativo? Outros funcionários (talvez sejam você próprio) conseguiriam realizar suas tarefas sem mudanças drásticas?

Administração te ensinará a se posicionar bem para alcançar suas metas. Contabilidade explicará como funcionam finanças e ajudará a se organizar para entender quais metas devem ser alcançadas para tornar a empresa mais rentável. Psicologia e Filosofia serão ótimas para definir posicionamentos e como apresentar suas ideias a mentores em lugares específicas. Ou, ainda, pode explorar a área técnica usada no produto ou serviço prestado. Tendo esse conhecimento, basta que alguém te apresente as metodologias utilizadas para testar o mercado envolvido que será bem mais fácil de analisar resultados e aplicar os que tiverem sucesso comprovado.

Estabilizado ou decaindo

Existe um conceito matemático denominado “derivada”. A partir dele, podemos obter resultados referentes à taxa de crescimento da startup.

Gráfico mostrando "sucesso" em função de "tempo"

Se você manter um histórico organizado do que aconteceu na empresa, é simples construir um gráfico deste tipo a partir da definição de algumas métricas. Como o sucesso é definido por um número bastante complexo de fatores, podemos inicialmente considerar quantidade de lucro como “sucesso”.

Gráfico mostrando "sucesso" em função de "tempo" com retas indicando diferentes inclinações da imagem

No início, vemos que o sucesso - determinado pelo lucro - da startup está negativo (abaixo da linha em azul horizontal). Temos um aumento para algo positivo com o teste de algum modelo de negócio. Algum tempo depois, ela passa a permanecer constante (sem crescimento) até que percebamos que estamos na fase “Dificuldade em análise de mercado” e, mantendo o mesmo ritmo que temos, tudo indica que estagnou, deixando de crescer ou diminuir de “sucesso”. Você passa a estudar mais e descobre que o crescimento pode ser maior que qualquer outro momento, e se dedica cada vez mais a desenvolver e aproveitar a crista da onda (momento indicado pela reta “crescimento positivo”).

Gráfico mostrando "sucesso" em função de "tempo" com retas indicando diferentes inclinações da imagem e períodos com crescimento baixo e negativo

No entanto, chegamos a um momento que, apesar de ainda estar em crescimento, o faz mais lentamente (em “crescimento positivo, mas menor”); apesar de ainda estar crescendo, passou a fazer isso mais devagar. Este é o primeiro ponto que devemos considerar contratar consultores para tentar descobrir a causa deste comportamento diferente do histórico. Nesse ponto você já terá conhecimento prévio para aprender conceitos já adaptados ao seu modelo de negócio. Assim, conseguirá tirar muito mais proveito do que essas pessoas têm pra te passar e entenderá melhor a causa da diminuição. Isso poderá ser reaplicado em outros períodos, já que mesmo sob causas diferentes, você terá melhorado sua habilidade analítica e tem bom conhecimento dos problemas e soluções já utilizados.

Mas o momento decisivo para acelerar a startup é um decrescimento (mais à direita no gráfico, sinalizado pelo “crescimento negativo”). Apesar de possuir experiência e competência para fazer o negócio dar certo o suficiente para se manter no mercado a tempo de ter diferentes fases de crescimento, o “sucesso” tem diminuído e você não consegue mais enxergar formas com boas chances de reverter a situação. Uma aceleradora correta será uma ótima aliada para descobrir os motivos dessa mudança e aconselhar formas de subir consideravelmente o patamar da empresa. Nela, você encontrará outros empreendedores que tiveram as mesmas dificuldades e souberam enxergar soluções, conhecerá investidores que ajudarão em marketing e contratação de gente qualificada e ter um ambiente físico onde cada startup está diariamente tentando crescer e aproveitar o mercado que se inserem.

O que o Mac OS X tem pra ensinar ao software livre

Quando falamos de uma máquina desktop geralmente podemos assumir que ela faz uso de um dos três grandes sistemas operacionais. Eu, pelo acaso, comecei usando computadores com Windows. Neles, tudo segue o padrão “next next”, onde você sempre possui um utilitário que clicando em alguns botões pode concluir qualquer ação esperada de um usuário comum. O Linux (sem distiguir distruibuições), te dá o controle total sobre a máquina. Sob qualquer dificuldade, você pode abrir uma tela preta e ordenar comandos ao computador. Já com o Mac OS, você tem a união de ambos mundos: um “next next” com terminal Unix.

Antes de qualquer coisa, esteja preparado: você não encontrará aqui um macfag expressando todo o seu amor pelo suor do Steve Jobs. Conhecer o que o mercado oferece deve servir para melhorar o seu uso do computador como ferramenta que o é. Ter qualquer preconceito quanto a isso é uma besteira que pode estar atrapalhando o seu desenvolvimento.

Desktop do Mac OS X

Falando sobre o desenvolvimento do Mac OS em si, é notável o apreço à filosofia minimalista. Esta tem como objetivo principal a diminuição de informações para que não tenhamos dificuldade em se concentrar no que realmente importa. Mas mesmo com toda essa simplicidade, o Mac OS não deixa de agradar também o usuário avançado que conhece interfaces de computador o suficiente para saber onde tentar encontrar uma função que precisa.

Screenshot do aplicativo AppCleaner

E esta filosofia também acaba sendo refletida nos programas desenvolvidos para o sistema operacional. O AppCleaner, por exemplo, procura por arquivos que um determinado app possa ter criado fora de sua pasta de instalação para removê-lo completamente. A interface? Você arrasta o app para uma janela e confirma a lista de arquivos a serem deletados.

OK. Deve ser open source para ser comparado a softwares deste tipo? Postgres.app. Com ele, tenho o banco de dados PostgresSQL de pé com seus utilitários disponíveis via terminal (como psql e pg_dump) já configurados seguindo a padronização indicada. Ver um ícone de elefante ao lado do relógio significa que tudo está funcionado. Documentação para casos mais específicos estão disponíveis em opção ao clicar no próprio.

Screenshot do aplicativo Perian

Apesar de termos alternativas muito melhores que o QuickTime Player para assistir vídeos, posso precisar dele ao usar um aplicativo que usa a Cocoa, API alto nível para desenvolvimento no Mac OS. No entanto, ele não vem com suporte nativo a formatos menos conhecidos. Solução? O open source Perian. Você instala um executável e… só. Funciona. Qualquer configuração (de quase nenhuma disponível) é feita via preferências do sistema.

Screenshot do aplicativo Transmission

Outro que você nem precisa ter um Mac para testar? Transmission. Nele, você pode fazer downloads, criar e gerenciar torrents e magnet links. A interface é extremamente direta para o desejo de um usuário que não quer se preocupar: abro um arquivo torrent/magnet link e aparece uma janela para seleção da pasta destino. A partir dai, ícones de fácil associação para pausar ou abrir o download (que avisará por notificação quando completar) estão destacados na indicação do torrent. Para qualquer opção extra posso dar um duplo clique no arquivo e modificar configurações avançadas.

Em todos estes aplicativos vemos facilmente um padrão: cada um tem um objetivo muito bem definido. Fazem apenas isso e do melhor jeito possível. No entanto isso não é exclusividade do Mac e muito menos da Apple. Esse mesmo comportamento pode ser visto em uma suíte que deve ser familiar a qualquer usuário de Unix que já tenha aberto um terminal: GNU Core Utilities. ls, ln, rm, mv, chown, echo… De cada um deles você provavelmente sabe o uso mais comum mas também tem disponível muitas outras opções que só usuários avançados conhecem.

Screenshot do aplicativo Wireshark

No mundo do software livre em geral, os programas são desenvolvidos tendo como foco principal as suas funcionalidades. No entanto, apesar de termos softwares de excelente qualidade técnica, vemos interfaces feias ou difíceis de usar. Um exemplo claro dessa situação existente é vista no Wireshark. Este, bastante usado em faculdades de Ciência da Computação, tem como objetivo mostrar o tráfego de rede para análise. Vemos um programa que faz isso muito bem mas tem uma barreira inicial grande: por que preciso digitar “host 192.168.0.1” para monitorar o que passa pelo IP indicado e não apenas “192.168.0.1”, ação esperada de um usuário novo? O que significa cada um dos botões de iniciar e parar captura na parte esquerda da barra de ferramentas? Por que tenho linhas em vários tons de diferentes cores? Essas são perguntas que mesmo pessoas com conhecimento técnico de redes se fazem e têm o trabalho inicial de ler a (muito boa) documentação do programa.

Não importa seu nível técnico. Usar qualquer ferramenta que simplesmente funciona e faz o desejado mesmo quando não esperado é sempre mais agradável. Para isso, você precisa tratar cada funcionalidade como um programa dedicado. Com que frequência espero que ela seja usada? É difícil de encontrá-la no meio dos outros da categoria? E, na dúvida, lembre-se do AppCleaner e se pergunte se um botão para ativação realmente é necessário. Mesmo não sendo um Mister M você consegue pressupor futuras ações do usuário, basta sentir-se na sua pele e fazer do melhor jeito que pode. O que o Mac OS faz é diminuir a quantidade de elementos ditos principais na interface para, literalmente, diminuir a preocupação do seu usuário. Erros e não acertos são lembrados. Mas experiências sempre ficam marcadas, não importa a plataforma.

Quer saber mais sobre minimalismo? O The Joy of Less vai te ajudar a enxergar essa visão intuitiva que temos. Agora se prefere ter alguém como espelho, o Aral Balkan tem levantado estes pontos sobre software livre há mais tempo. Siga-o que você vai aprender muito e ter a oportunidade de contribuir mais efetivamente com o que já faz.

Tive uma ideia genial: posso criar uma startup

Tenho uma boa ideia que acredito ter potencial de mercado. Qual a melhor forma de criar um modelo de negócios em cima dela e conseguir investimentos?

Estude

Permita-se aprender a todo momento e perceba que, se não sabe responder essa pergunta, você tem muito a estudar antes de chegar a qualquer resultado dito de sucesso.

Posso apostar que você conhece ao menos uma pessoa que tem uma história de uma excelente ideia que não foi bem sucedida. Possivelmente você próprio teve uma ideia de um produto ou serviço que hoje vale milhões nas mãos de outro. As desculpas podem ser várias: você não tinha todos os contatos do concorrente, pouco dinheiro ou tempo. Todas, apesar de boas, são desculpas.

O primeiro passo para levar uma empresa para frente é: admita sinceramente que não sabe de tudo. Somente dessa forma você poderá obter confiança de pessoas boas que poderão te ajudar a encontrar o melhor caminho para seguir adiante e um dia deixar de lado o título de “startup”.

Não existe bala de prata

Pela própria definição de startup, “organização temporária projetada a buscar por um modelo de negócio reproduzível e escalável" (em tradução livre de Steve Blank), nenhuma sequência de instruções pré-definidas irá funcionar em todos os casos e é o seu dever como empreendedor descobrir todas as práticas que se aplicam ao seu caso. Sim, também espero que você avalie por si próprio a validade do que digo neste texto.

Uma mesma ideia pode ser bem aplicada e sucedida de diversas formas. Quando um desenvolvedor de software cria uma startup que faz uso desse tipo de tecnologia, o resultado mais natural é fazer um programa de alta qualidade que agrade pessoas com necessidades semelhantes. Um agente de investimentos com a mesma tarefa pode ter essas preocupações em entregar valor para os usuários mas saberá e projetará lucros mais satisfatórios ao longo do tempo. Ou seja, a forma que cada um direciona suas decisões e consequências é totalmente baseada no conhecimento prévio de cada um. Não basta você ser um ótimo engenheiro na área da startup e não saber apresentar o que ela faz, em poucas palavras, para um leigo, por exemplo.

A importância das ideias

Um fato é: sua ideia vale absolutamente zero. Vale menos ainda se estiver apenas na sua cabeça. A melhor forma de tornar este valor positivo é moldando-a a partir da sua experiência e o mercado que decidiu direcionar.

Se você for um ótimo empreendedor (e contar com um pouco de sorte), você pode conseguir tirar dinheiro e gerar lucros até mesmo de ideias ruins. Um exemplo: trabalhar em uma startup de distribuição de descontos no seu bairro. Você já conhece os comerciantes e pode propor o pagamento para permanecer no banco de dados do site. Provavelmente você terá dificuldades em trazer empresas que já têm um retorno satisfatório em sites concorrentes ou pode encontrar problemas de custo/benefício em escalar o projeto. Vale aí saber quando a premissa principal da empresa é falha e tentar buscar alternativas enquanto ainda em lucro, como em qualquer investimento de risco.

Faça um MVP

Permita a sua ideia tomar formas que você antes não imaginava. Provavelmente todo planejamento que fizer não vai conseguir prever a aceitação real do público. Uma forma bastante objetiva de avaliar e ajudar a definir o futuro do desenvolvimento é a criação de um MVP. Um Produto Mínimo Viável é um conceito geralmente relacionado à software mas pode ser aplicado a qualquer entrega feita pela empresa.

Nele, você coloca o mínimo de funcionalidades possíveis para atrair os primeiros clientes. Tendo poucas funcionalidades, permitirá uma medição muito mais eficaz de pequenas alterações e tornará mais rápido o processo da busca da perfeição. Assim, você passará a concentrar-se apenas no que vem sendo adicionado de novo e sabe que o que já existe atende bem o seu público.

Um outro propósito para criar um MVP de uma ideia é a sua validação. Perdendo qualquer medo de contá-la a todos que se interessem ou não pelo resultado, servirá para levar adiante ou não a criação de um protótipo e investimentos (já que certamente você precisará colocar tempo no desenvolvimento da startup).

No entanto, posso estar errado. Mantenha a ideia na sua cabeça. Ela provavelmente não vai criar uma startup magicamente, mas vai valer boas histórias de erro no futuro.