Sobrecarga de projetos no freelance

Essa semana li no blog do José Papo sobre gestão de projeto, no qual o autor aborda a escassez de profissionais e sobrecarga de projeto para os recursos disponíveis. Apesar do artigo abordar de uma perspectiva do gerente de projeto, o tema sugere algumas reflexões também na vida de um freelancer.

Trabalhar como freelancer tem suas vantagens e desvantagens em todos os aspectos. Isso todos nós sabemos. Mas uma coisa é certa: se o freelancer não tiver organização, acabará sobrecarregado de trabalhos a serem realizados, da mesma forma que se trabalhasse em uma empresa. Tudo porque o freela é multi funcional.

O trabalho do freela se inicia com o primeiro contato, seja por telefone, msn ou e-mail. Em se tratando de desenvolvimento (programação), há algumas etapas intermediárias até o inicio do projeto, que são o levantamento de requisitos, definição de escopo, estimativa de custo e prazo, etc, o que já exige do freela uma certa disponibilidade para entender o que o cliente deseja. E pra piorar, todo esse trabalho pode ser em vão se o cliente achar um outro cara que cobra metade do preço. Pra se ter uma idéia, ouvi dizer que uma agência por aí cobra R$200 para definir o projeto (requisito, custo e prazo). Se é verdade, não sei.

Uma vez fechado um projeto, o programador freelancer inicia o trabalho de desenvolvimento. É justamente nessa etapa que o problema tende a aparecer. Com a mão na massa, e em multithread, já que o freela realiza todo trabalho de atendimento, suporte, negócio e programação, novas procuras e oportunidades tendem a surgir. E neste momento, o profissional tem que ser forte e frio para dizer “Não”. O quê? Freela negando trabalho? Você tá louco, mano?!

Como eu disse, o freela necessita ter muita organização. Iniciar novos projetos sem concluir ou estar em fase final do atual pode lhe render dores de cabeça e muitas cobranças. Afinal, no projeto você definiu um prazo. E, como já sabemos, na área de TI, prazo é algo que se cumpridos podem lhe render bons frutos. Segundo o Gartner, 70% dos projetos são falham em relação ao cronograma. Você pode fazer a diferença no mercado. Basta ter os pés no chão. É melhor negar um projeto, do que assumir um compromisso que você não pode cumprir.

É comum que todo e qualquer freelancer deixe um novo projeto já engatado, enquanto conclui o atual. Mas, em se tratando de desenvolvimento de sistema, não podemos esquecer das etapas pós desenvolvimento. Homologação, validação dos requisitos e manutenção são necessárias para a qualidade do projeto (você está preocupado com isso, né?).

Portanto, na minha opnião, as principais características de um freela são a organização e compromisso.  Se comprometer a desenvolver dois ou mais projetos em paralelo, é um risco à qualidade do projeto e projeção de seu nome no mercado. Tenha seus pés no chão, evite a sobrecarga de trabalho. Saiba avaliar quais clientes sérios e os que estão a procura de “parceiros de projeto” (leia-se, programador de graça). Aliás, isso é tema para um outro artigo.

Apagão em TI: gestão de riscos

Dizem que a história se repete. E este ano aconteceu novamente… Semelhante a 1999, no início deste mês parte do país ficou às escuras por algum motivo ainda não muito bem esclarecido. A falta de energia afetou 12 estados brasileiro, causando prejuízo e transtornos para a população atingida. (Saiba tudo sobre o apagão aqui e aqui)

E foi justamente nesse cenário que muitos profissionais de TI deve ter pensado: “putz! deveria ter estudado mais sobre gerencia de risco”. E o que vem a ser gerenciamento de risco de projeto?

Riscos de projeto são condições que, caso venham a ocorrer, podem comprometer ou impedir a realização de um dado projeto. A necessidade de gerenciar riscos decorre, principalmente, da constatação de que a quantidade e diversidade dos riscos de projeto excede o montante de recursos alocados para neutralizar todos esses riscos durante a execução do projeto. Essa situação demanda que os riscos devam ser priorizados ou “gerenciados” adequadamente. Wikipédia

O PMBOK aborda 9 áreas de conhecimento de gestão, sendo que a gestão de risco de projeto é uma das mais importantes. Em termos práticos,  o que o a apagão tem a haver com o gerenciamento de risco? Tudo! Vejamos:

Um empresa de hospedagem que promete oferecer a seus clientes disponibilidade de 99,8% de seus sistemas online, tem como um dos principais atributos de qualidade e requisito não-funcional, alta disponibilidade. Assim, a empresa necessita ter um análise e planejamento consistente para seus servidores estejam sempre disponíveis. E se der problema no hardware do servidor? E se cair o link (conectividade) do servidor? E se houver um apagão? O gerenciamento de risco tende a neutralizar esses e outros problemas que possam vir a ocorrer. Mesmo que o problema venha a se repetir 10 anos depois. Foi o que aconteceu com a Locaweb.

Mas, a gestão de risco não se limita apenas às grande e médias empresas. Seja você iniciando sua empresa ou em trabalho autônomo como freelancer, o gerenciamento de risco se torna extremamente necessário. Eu, particularmente, tenho a mania de trabalhar com “o dedo no CTRL + S” (atalho para salvar documento), já que não possuo um no break disponível para segurar os trabalhos, em caso de queda ou oscilação de energia.

Quando se fala em risco, não se limita a ter somente um no break. Este recurso é um amparo momentâneo. A “gerência de risco pessoal”, digamos assim, envolve algumas ações, que podem amenizar possíveis problemas que venham a surgir em condições adversas. Além do no break, é sempre bom manter um hábito de realizar back up mensal (minha sugestão) de seus documentos importantes. Uma outra dica importante é manter seu HD particionado. Em uma partição deve-se manter o sistema operacional,  e na outra, seus dados, documentos pessoais e profissionais. Em caso de problema com o SO, sua reinstalação não afetará os arquivos na outra partição.

Portanto, podemos observar que gestão de risco não é uma atividade exclusivamente de profissionais de TI, das grandes empresas e gerentes de projetos. Gerenciamento é válido e necessário para todos aqueles que utilizam da tecnologia. Se você tem alguma dica mais sobre o gerenciamento de risco para uso pessoal, deixe registrado nos comentários.

Abraço e até mais!

“Olá! Preciso de um sistema. Quanto você cobra pra fazer?”

Enquanto lia um livro sobre SEO, fui aplicando alguns conceitos no blog, com o objetivo de melhor posiciona-lo com a palavraa chave “programador php”. O resultado foi positivo e, por algumas semanas, permaneci no topo da busca orgânica do Google. Hoje ainda me encontro entre as três primeiras colocações, como resultado dos esforços passados.

Como consequência, choveu e-mail de possíveis clientes e/ou interessando em obter um sistema para integra-lo ao projeto em andamento. E o que me chamou mais atenção é como as pessoas veem (ou não veem) o processo de desenvolvimento de software. Em diversos e-mails, alguns visitantes dificilmente explicou o que deseja, porém claramente solicita custo e prazo de desenvolvimento.

É bom deixar claro que, muitos destes não possuem conhecimento do processo de desenvolvimento. Estimar custo de um sistema sem definir escopo e requisitos deste, é um tiro no pé. Ou na mão. Muitas vezes, quando mal modelado ou mal definido as funcionalidades, o desenvolvimento acaba sendo mais custoso que o estimado no início do projeto. E, em se tratando de freelancer, na maioria dos casos não há ajuste de custo. No final da história, de duas uma: ou o freelancer acaba perdendo por trabalhar mais e não receber, ou o cliente fica com o sistema incompleto, por não querer ou poder custear os ajustes de requisitos.

Portanto, se você é um cliente, e tem um projeto, expresse isso escrevendo. Liste em um documento o que você deseja ter no site/sistema, e como funcionará cada item. Se você for o desenvolvedor, solicite junto ao cliente o que ele pensa, tire todas as dúvidas. Evite deixar “pontos de fuga”, digamos assim. Acredite: isso não resolverá de vez o problema de requisitos, mas com certeza minimizará consideravelmente este problema.

Abraço, e até a próxima!

Autoridades acusam hacker romeno de invadir Defesa dos EUA
Um hacker romeno de 23 anos foi detido sob a acusação de ter entrado sem autorização nos servidores do departamento de Defesa dos Estados Unidos, em 2006, informou nesta sexta-feira (20) a imprensa romena.

Já havia postado uma notícia que um britânico invadiu o sistema da NASA. Dessa vez, teve-se notícia de que um romeno também conseguiu tal moleza proesa. Mas, lendo tanta notícia em relação a isso, inclusive aquela de que o governo da Alemanha treina hacker para guerra do futuro, fiquei a imaginar o estrago que o time do Bin Laden causariam se tivesse infra-estrutura e conhecimento para um ataque cibernético.

Basta analisarmos o que aconteceu com os vírus e trojans com o passar do tempo. Nos anos 90, lembro-me do cuidado que tinhamos que ter para não pegar  vírus pelo disquete e destruir todos os dados de nosso 486 (momento nostálgico). Hoje, as coisas são bem diferentes. Não se vê mais pragas digitais para destruir dados de computadores como antigamente (apesar de ainda existir por aí). O que os crackers querem é roubar dados bancários, informações sigilosas para poder ter algum retorno financeiro.

Pois bem, os terroristas sabem que os ataques por eles praticados são bem inferiores aos contra-ataques, em termos materiais. Diga-se de passagem, a maior consequência do atentado de 11 de setembro foi no psicológico dos americanos. Basta fazer um “boom” atrás de um deles pra você ver o que acontece. Sendo assim, os terroristas poderiam simplesmente atacar o império capitalista através de um ataque cibernético. Seja no sistema de defesa, ou na NASA, ou quem sabe ainda no sistema da bolsa de valores. Tanto as invasões dos hackers, como os atentados de 11/09, provaram que não é impossível atingir os EUA.

Veja bem. Não estou desejando que isso aconteça, mas a internet tem evoluido de tal forma que pode acontecer, mais cedo ou mais tarde. Agora, acho que Bin Laden vai ter que pedir uma ajudinha ao Google pra que a internet chegue até lá onde ele está.

Em prosseguimento ao artigo “Como se tornar um programador php“, abordarei nesse post os seguintes ítens:

  • Recolhendo material de estudo
  • Estudando códigos prontos
  • Praticando
  • Tirando dúvidas

Vamos lá!

Praticando

Chegado neste ponto, não podemos esquecer da principal forma de fixar o aprendizado: praticando! Programação é igual a matemática. Quanto mais você pratica, mas você aprende como resolver os problemas encontrados. (que analogia!) Assim, uma vez recolhido todo o material, estudado e analisado o código, é hora de treinar!

Inicialmente, você precisará de um servidor pra testar suas aplicações. Para isso você precisa do php, apache e mysql. Existe algumas ferramentas que permite instalar tudo junto e já configurado. É o caso do Xampp e o Easyphp. O easyphp é para windows, mas o xampp possui a versão para outros sistemas operacionais, como o Lamp para o linux.

Uma outra pedida é você desenvolver um site simples, e disponibilizar na internet. Existe alguns servidores php de hospedagem gratuita. Só nunca testei, mas existe relatos de que alguns servidores são legais.

Tirando dúvidas

Para finalizar, tire suas dúvidas. A primeira e principal fonte é o manual oficial de php. Calma! Não se preocupe se você não entende nada em inglês ou se tem aversão. Há duas formas de explorar o manual php em português. Uma é online e outra offline, fazendo o download do arquivo. Eu recomendo baixar o arquivo de ajuda do windows. Ele auxilia bastante na hora de pesquisar por determinado assunto. Mas se você preferir em outro formato, pode acessar a lista com outros formatos.

Uma vez tendo acesso ao manual php, a principal fonte para tirar dúvidas em relação a sintaxe e funções da linguagem, explore-o. Cada vez que você ver alguma função nova nos códigos ou apostilas de consulta, verifique no manual o que aquela função faz. Se observares, o próprio manual já é um bom material pra começar php. É só seguir a ordem do índice, pois ele aborda todos os pontos. Se não sabes pra que serve a função isset(), por exemplo, pesquise no manual.

Um outro método que usei bastante foi participar de fóruns como fonte de pesquisa e para tirar dúvidas. Mas, por favor, não entre no fórum pedindo código. Faça sua pergunta, explique o que você precisa, até onde chegou e pergunte como pode resolver isso. Normalmente eles não te dão o problema resolvido. Apenas indica o caminho para que você resolva. Como eu disse anteriormente, a comunidade PHP é grande, e o pessoal é colaborativo.

Não faça de qualquer jeito

Então é isso! Espero que este artigo possa orientá-lo nos estudo da linguagem, e que sempre procure ser bom no que faz. Não faça de qualquer jeito. Faça direito, ok?! O mercado é competitivo, e exige que você seja bom no que faz.

Um abraço e até a próxima!

Ontem recebi um e-mail de Jonathan Silva, me parabenizando pelo site e fazendo o seguinte questionamento:

” (…) venho também saber de você se existe algum excelente curso de PHP em Salvador, ou se seria melhor tentar aprender em casa mesmo?”

É com base nesse e-mail que relatarei minha experiência com o aprendizado com php. Dividirei este artigo em dois posts, abordando os seguintes itens:

  • Recolhendo material de estudo
  • Estudando códigos prontos
  • Praticando
  • Tirando dúvidas

Minha jornada aconteceu após conclusão do 3º ano. Por não ter conseguido passar na UFBa naquele ano, resolvi estudar em casa sobre o que mais me enchia os olhos na época. A internet! No 1º ano, tinhamos aula de informática, onde aprendemos noções básicas sobre web e chegamos até a fazer um site (bizarro), como trabalho final da unidade. =D

Porém, antes de saber que existia linguagem de programação, aprimorei o pouco que sabia de html copiando o código fonte de portais, como bol e uol, e colando no Front Page, ferramenta do pacote Office para desenvolvimento web. Me lembro o quanto de tabela era feito esses portais! Aff!

Foi então que descobri a linguagem de programação, e como poderia deixar os sites dinâmicos. Assim, criei e adotei a seguinte didática de aprendizado.

Recolhendo material de estudo

Meu primeiro passo foi adquirir apostila sobre a linguagem na internet. Na época, encontrei uma apostila do Maurício Vivas no Cadê (que hoje pertence ao Yahoo). Essa apostila é básica, mas aborda os principais pontos da programação básica. Desde eventos com formulários, até conexão com banco de dados, etc. No site do Script Brasil, há uma lista de apostilas sobre php. Veja!

Ao final do estudo da apostila, já estava pronto para fazer ao menos um CRUD.

Mas a internet hoje oferece um vasto leque de informações. Se na época encontrei material no Cadê, que era basicamente um diretório de sites, imagine agora com o Google nas mãos! Não se detenha apenas a uma fonte.

Mas, depois que entrei na faculdade, percebi que, antes mesmo de você aprender a sintaxe da linguagem e sair por aí programando, você precisa aprender ao menos lógica de programação. Sem isso, você pode até saber como começa o código, mas não conseguirá chegar a um final. Aliás, pode até chegar, mas pela metodologia da tentativa e erro. =/

Estudando códigos prontos

Após entender o básico da linguagem, comecei a aprimorar e aprofundar o conhecimendo da linguagem através de scripts prontos encontrados na web. A comunidade php é enorme, e disponibiliza muito material online. Isso não quer dizer que você já tenha tudo pronto nas mãos. Muitos desses códigos, são feitos por pessoas que também possuem conhecimento básico/intermediário.

Entretando, a revisão de códigos prontos e o aprimoramento destes, serve para você por em prática noções de lógica de programação e conhecer algumas funções da linguagem. É claro que, com códigos de outros, você pode acabar aprendendo uma maneira macarrônica de programar, mas quanto mais você aprende, mais você tem um olhar crítico das coisas.

Assim, lembro-me de um sistema de enquete encontrado também no Script Brasil. Lá há um diretório de scripts, com mais de 20 enquentes pra você treinar. Agora, lembrando que, de início, opte pelas enquete mais simples, sem autenticação por exemplo. Com o tempo, vá pegando scripts um pouco mais complexo do que a anterior.

Portanto, caro colegas, comece a recolher os materiais da internet e reserve um tempo para dedicar-se ao estudo. No próximo artigo abordarei os itens “Tirando dúvidas” e “Praticando”.

Um abraço e até a próxima!

Iniciar um negócio hoje na internet é pensar em publicidade como forma de retorno. A maioria das pessoas, principalmente jovens, atentaram para uma forma simples, porém rentável, de obter um retorno financeiro em cima daquilo que eles fazem na web. O exemplo mais clássico são os blogs. Sejam eles sobre informática, humor ou moda feminina, os autores sempre procuram algo em troca pelas informações disponibilizada. (Sim, ainda vivemos num mundo capitalista).

Hoje temos uma variedade de opções pra podermos rentabilizar com publicidade nos projetos online, através de links patrocinados. O Google Adsense, Hot Words, dentre muitos outros, oferecem dinheiro, em troca da publicidade em seu site. Funciona mais ou menos assim: A empresa paga ao Google para anunciar nos serviços dele. O Google reparte o lucro com os parceiros afiliados, através desta publicidade em seus sites. No final das contas, todos ganham.

Porém, engana-se quem pensa que essa forma de rentabilidade iniciou-se na internet. Observando dias atrás o programa Silvo Santos na televisão, percebi que o lendário apresentador da TV brasileira já exercia uma praticava  semelhante em seus programas. Quem nunca ouviu a famosa pergunta “Quem quer dinheiro?” ? Pois é. Apesar do programa não ser muito atrativo, muitas pessoas param pra assistir simplesmente porque querem o dinheiro, apesar de saber que nunca vai ganhar (pelo menos os que moram longe!).

Um outro dia, meu cunhado adolescente questionou-me: “Como é que Silvio Santos dá tanto dinheiro assim?”. Simples. Primeiro que não é muito dinheiro (isso te lembra os centavos ganho do Google Adsense?). Segundo, é que ele apenas compartilha – em proporções bem menores – o lucro dos comerciais vinculados nos intervalos do programa. Ou seja, uma empresa paga ao SBT para vincular uma propaganda, e Silvio Santos reparte o lucro, em forma de aviõezinhos com as meninas do auditório, e todos ganham, exceto você que assiste. Simples assim! O que ambas as práticas tem em comum? Os donos da empreitada ganham muito dinheiro com isso.

Recentemente um cliente estava a procura de um profissional para dar manutenção periódica no seu site, que consistia basicamente em criar páginas estáticas e acoplar à lista já existente. Como bom programador, sugeri o desenvolvimento de um sistema para ele mesmo poder gerenciar seus artigos e registros.

Ainda assim, foi solicitado o custo por hora de trabalho. Eu sempre questionei sobre essa metodologia de estimativa de custo, e, pesquisando pelos amplo mundo cibernético, encontrei o artigo “Valor/hora? Isso já não serve mais…“, por Adail Muniz Retamal. Confira!

Vida de programador não é fácil. Algumas vezes, me pego tendo que ficar no trabalho além do expediente, para resolver algum pepino e deixar o sistema redondo! Aliás, lendo o artigo “Diário de um DBA” no iMasters hoje, observei que isso acontece na área de informática de modo geral. Por isso, pense bem se é nisso que você quer ser quando crescer. =D

Mas, por um lado, me tranquilizo. Talvez o estagiário de informática se sinta pressionado, com medo de ser demitido na primeira semana por ter feito alguma besteira (passei um mês ofegante no primeiro estágio), ou por não deixar o sistema do cliente funcionando perfeito. Mas cheguei a conclusão de que bugs acontecem nas melhores empresas.

Hoje, me deparei com a tela abaixo ao tentar logar no site do Banco do Brasil. Oras, se o site de um banco, com a credibilidade que tem, profissionais com certeza mais capacitados e experientes dá pau, imagine o site de seu manoel da padaria. =D

Veja bem! Não estou defendendo sistemas com problemas. De maneira alguma! Detesto isso! O que acontece é que, depois de trabalhar 10hs seguidas num projeto, é comum ficarmos com a mente cansada e não conseguir debugar o código. As vezes o problema é apenas uma vírgula, mas lembre-se: somos homens, e não máquinas. ^^

Há algumas semanas, apresentei o lendário vídeo de Bill Gates, num apresentação do Windows 95. O sistema travou (a famosa tela azul) no momento em que o apresentador mostrava o sistema operacional.

Por isso, não se assuste. Problema no sistema acontece nas melhores empresas! =)

É notório o aumento de número de sites a cada ano. Isso se torna possível, devido ao preços cada vez mais acessível para manter um site na web. O registro .com.br, agora liberado para quem possui apenas CPF, custa R$30 ao ano, e é possível encontrar servidores com preços bem acessíveis, como o Infinite host, custando o plano mínimo apenas R$6,50.

Tudo bem. Os preços estão acessíveis, contratei um profissional, – ou – meu sobrinho já sabe colocar meu site na web, mas, e agora? No início de tudo, a internet era vista apenas como um cartão de visitas das empresas. E estar fora dela, era não se atualizar, modernizar. O problema é que a internet é muito dinâmica, uma metamorfose ambulante. Se não estivermos em constantes atualizações, ficaremos para trás.

Recentemente refleti sobre isso. Trabalhando desde 2004 com desenvolvimento para internet, observei que muitos conceitos foram alterados. Os sites deixaram de ser meramente um cartão de visitas, uma vitrine virtual e se tornou um meio de comunicação direta com o cliente. As tecnologias evoluiram a nos permitir isso. A interação passou a ser um mecanismo indispensável com o usuário. Quem nunca ouviu falar da Web2.0, wikipédia, ajax, redes sociais? Pois é. Muito tem se discutido, não tão muito tem se esclarecido. É uma bolha, ou um novo conceito?

O fato é que, há pouco tempo, procurando um curso de inglês renomado aqui em Salvador, fui buscar primeiro, logicamente, no Google. Encontrei alguns, mas dei preferência àqueles em que tinha certa credibilidade. Provavelmente visto uma propaganda na TV, ou não. Apesar de ter no rodapé da página o número do telefone do curso, como qualquer outro usuário digital e preguiçoso, optei por enviar um e-mail através do formulário de contato no site, para obter maiores informações de novas turmas e preços. E para minha surpresa, até hoje não recebi a resposta.

Alguém tem noção de como é isso? É como se eu tivesse entrado em uma loja e nenhum vendedor viesse me atender. O que você faria? Sairia tranquilamente, e dificilmente voltaria lá, pelo menos até esquecer. Óbvio! Se o site mantém um formulário pra contato, é porque este seria um meio de comunicação com o cliente, correto? Tá, talvez eu tenha digitado o e-mail errado, mas, curiosamente, voltei ao mesmo site, e mandei outro e-mail, sem sucesso… Seria mais justificável que não tivesse o formulário de contato, e a empresa atendesse apenas pessoalmente ou por telefone, disponibilizando-os no lugar do formulário.

Alguém sabe por que o condicionador normalmente vem com a tampa embaixo, como se estivesse de cabeça pra baixo? (No dia que você passar o creme antes do shampoo vai entender) Os meios de contato são diferentes, e se você tiver o formulário lá, não esqueça de avisar a sua secretária que este é o condicionador, e deixará seus clientes lisinhos. =)