Category Archives: Desenvolvimento de Software

Nascendo o meu pequeno site! [am(a²)dora.ws]

Então, eis que eu estou criando um site pra mostrar um pouco do meu trabalho e centralizar o conteúdo que eu tenho produzido e está on line!

Bem, os objetivos são:

1 – um lugar para executar ideias malucas ou não que eu venha a ter e, com isso, aprender o máximo possível

2 – validar minhas ideias e práticas, através da opinião de outras pessoas, nem que seja só uma pessoa além de mim (quando há olhos suficientes, todos os erros são óbvios…)

3 – aprender sobre desenvolvimento web aplicando na prática

4 – divulgar o meu trabalho e o que eu tenho feito nas áreas de software livre, design etc.

5 – eu tava a fim de fazer, achava que podia fazer, arrumei tempo pra fazer e fiz / estou fazendo…

6 – conhecer e usar ferramentas e tecnologias novas

7 – leia o P.U.M.!

8 – o principal é que eu não estou profissionalmente atuando como desenvolvedora, mas não quero ficar sem fazer nada, então inventarei! Claro, contribuir com software livre em outros projetos pode e vai acontecer, mas eu senti que preciso de um espaço pra fazer e mostrar qualquer coisa que der na telha!

9 – a visualização de outros é algo muito importante, pelo aprendizado e contribuirá para a minha segurança como desenvolvedora. Eu ainda estou há muito pouco tempo nisso…

Então, é uma parada experimental, sem maiores pretensões, ainda não tem quase nada, apenas a estrutura, bem pouco conteúdo e um domínio.

Também me preocupei com alguns detalhes (detalhes??) de usar padrões web, obter dados de tráfego, acessibilidade, tornar a navegação mais rápida etc. Pretendo fazer um post sobre esses coisas em breve…

Por enquanto, a única divulgação é esse post e eu fiz um banner tb (:P), tá aqui e vai ficar na barra lateral do blog!

Anúncios

Meu ambiente de trabalho em 7 itens

Já estou meio ‘out’ postando isso só agora, mas enfim… 😛

O Tarsis Azevedo me passou a bola, então lá vai!

Tô usando o modelo que vi no blog do Rodrigo Manhães e que foi um que eu gostei e aliás, percebi que temos um ambiente parecido (se isso fosse sinal de conhecimento parecido eu tava feita… hahaha)

Sistema Operacional

Uso o Ubuntu e sou feliz (since 8.04). Estou com a versão 10.04 e aguardando para migrar para 11.04 no meu computador pessoal. No trabalho, onde eu tenho que usar Windows XP, eu estou o tempo todo com o Ubuntu 10.10 ligado na VMWare (aliás, o meu post anterior falava sobre máquinas virtuais).

Para edição de imagem em vários casos e com bem menos frequência, algumas de vídeo, na minha máquina, eu uso Windows 7 (que atire a primeira pedra…)

Editor

– Eclipse Helios para Java (apesar de ter feito pouca coisa em Java, mas atualmente estou envolvida em um projeto para a pós graduação)
– GEdit – com os imprescindíveis gedit-plugins, gmate e Batraquio – para Python, Ruby, JavaScript, HTML, CSS, LaTeX etc.

Terminal

– A fonte que uso é a Monaco que eu também invejava no Mac (rsrs) e um pouco de transparência. Tenho ainda alguns itens interessantes: mostrar informações do Git em caso de o diretório atual ser um repositório; mostrar a versão e a gemset do RVM atuais, caso exista alguma; e o Python virtual do virtualenvwrapper, também caso exista.

Tudo isso com um esquema de cores estiloso! Aliás, indico fortemente dar uma olhada no After-format pro Ubuntu! É uma mão na roda e tanto! Grande parte das coisas que estou citando e citarei é possível instalar a partir dele (tudo opcional!)

Browser

Tenho instalados Firefox, Chrome, Opera e Safari, utilizo para validar layouts (vou instalar uma VM Windows pra validar tb no I.E. e ver um monte de problemas e perder um tempão validando pra ele! rs) Firebug e plugins de cor para o Firefox para desenvolver. O Firefox é o navegador que eu uso no dia-a-dia.

Software

Gtalk com vídeo e Yoono(para Twitter), no Firefox. Skype. Para escritório BrOffice3.3 no Windows e no Linux. Para edição de imagens uso Gimp e Corel Draw (Inkscape também pra quebrar galhos, não vamos entrar nesse mérito, mas é incomparável com o Core em muitos aspectos). PhotoFiltre para edições de imagens, pq é simples e leve e com funcionalidades mega úteis (e vai bem no Ubuntu com o Wine!) E o iTunes pra gerenciar as músicas, aplicativos etc, do iPod.

Repositório/Versionamento

Git. Usava também o Subversion no trabalho. Atualmente, só o Git para os meus projetos.

Música

No trabalho, quando ouço, ouço no Grooveshark, baixinho e com fone em um só ouvido pois atendo muito ao telefone. Em casa, ouço no iPod, ligado no dock, não muito alto pra não atrapalhar os vizinhos [que pena ter que me preocupar com isso agora… 😦 ].

Moral da história: faça o seu relato também que ele pode contribuir com idéais para incrementar o ambiente de trabalho alheio! [e antes tarde do que nunca! xD]


Ataque a causa!

Sabe quando a resistência do chuveiro queima e você esquenta agua no fogão ao invés de compra-la? (pra você @hltbra) ;D

Ou sabe aquele método besta la na sua classe que você enche de ifs/else e pensa: “A é tão bobo que não vai fazer diferença”

Ai então seu programa quebra naquele método, e você ao invés de refatorar, limpar o código, deixa-lo legivel, simplesmente você coloca outro if e pronto, a POG começa e vira uma bola de neve!!!

Só chuck norris pra arruma isso! ;D

Com isso, cada dia mais você fica mais lento pra modificar seu software, e chega uma hora onde você não consegue fazer mais nada, a não ser xingar, chorar e correr pro colo da sua mãe! :p

E isso tudo porque? Voce atacou as consequências e não a causa!

Porque quando seu código quebrou você xingou a linguagem ao invés de admitir o erro e fazer um código melhor, ou então atribuiu o erro ao capeta, fez o sinal da cruz e colocou outra pog lá!

Eu admito, é muito mais fácil fazer uma solução “provisória” e bem mais rápido também, porem ela só é rápida naquele momento porque mais tarde você terá de voltar para aquele código e ai meu brother, você vai perder 100x mais tempo. No livro “Você está louco” (Ricardo Semler) o autor diz: “Toda solução provisoria se torna permanente!” e em desenvolvimento de software todos sabemos que isso é verdade!

Porem isso nao se aplica só a codificação, e sim em todas as areas da nossa vida. Quando agente nao passa numa prova, culpa o professor, quando reclamamos por nao ser tao “inteligentes” quantos nossos colegas, porque eles tiveram mais “oportunidades” que nós.  Tudo isso é reversivel, e se agente aprender a olhar as causas, saberemos exatamente aonde atacar e resolver!

Objetivo e foco!

No caso da prova, é quase sempre sua culpa a nota baixa, ou voce nao estudou, ou nao levou a serio, enfim, muito pouco culpa do professor ou de outras pessoas.  No caso do seu amigo “genio, ele nao se tornou genio do dia pra noite, foi com muito esforço e estudo, entao pare de reclamar e cai dentro lendo, estudando, lendo, estudando e cola nele pra ele te ensinar tudo que sabe.

Start

Uma otima tecnica para sabermos a verdadeira causa é a dos 5 porques! Se voce acha bobeira, comece a pratica-la e verá que a maioria das respostas nunca nos levam a causa e sim a uma consequencia da mesma!

Bom, eu tenho o pensamento de que tudo na vida é possivel, tendo objetivo e foco. Basta traçar um objetivo e a lutar por ele. Se seu software nao é bom, estude, leia, e peça ajuda a quem sabe mais que voce. Se voce nao passou na prova, admita que a culpa é sua e se prepare para recuperar sua nota, e em tudo, lembre-se de atacar a causa, sempre!


Como agradar seu Chefe (ou como dormir bem e nao fazer hora extra)

FALE A VERDADE SEMPRE!!!

Não prometa algo impossivel, não se envergonhe de dizer que está um pouco atrasado, não encurte estimativas!!!

A maioria dos programadores que conheço reclamam que seus prazos estouraram, que fizeram codigo ruim porque estavam sem tempo, e que estão cheios de coisas pra fazer e precisam fazer hora extra pra compensar. E geralmente, colocam a culpa em quem? No chefe, no cliente, nos marketeiros loucos, nos tecnicos incompetentes

No livro Codigo Limpo (Clean Code) o autor, “Uncle Bob” Robert C. Martin, fala exatamente disso, no capitulo 1! A culpa de um codigo mal escrito, sujo, feio, desorganizado e cheio de bug, é unica e exclusivamente de quem o fez, ou seja, voce programador! E ai voce diz:

  1. Os prazos sao impossiveis, entao tenho que fazer POG
  2. Tem muitos bugs da equipe anterior
  3. O codigo esta desorganizado
  4. Existem muitas coisas a serem feitas

Mas se voce parar e pensar, tudo isso é sua culpa! Porque? Porque voce não soube dizer não! Porque voce mentiu para o seu chefe, seu cliente, e todos os outros dizendo que era capaz de fazer um monte de coisa, prometendo o Impossivel! Então voce corre, faz um monte de gambiarras e depois reclama que o projeto nao anda!

No livro Getting Real, da 37signals existe uma parte dedicada a isso, e o titulo é: Comece pelo NÃO!

Nessa parte eles falam exatamente disso. Nao aceite todas as funcionalidades propostas, diga não, resista, e somente implemente o que o cliente insistir!

Por exemplo: Estavamos , eu, os gerentes e o diretor, discutindo ideias pro site da empresa e toda vez que alguem levantava a mao pra dar uma ideia, eu rejeitava, sem ouvir, nem sabia o que o cara estava propondo. Dai se a pessoa insistisse, eu ouvia, mas continuava negando, e só quando a pessoa insistia muuitoo, eu aceitava. E foi assim, durante algumas horas! O resultado: conseguimos chegar em um consenso e colocamos aquilo que realmente interessava, com isso conseguimos uma estrutura leve, pratica, simples e extremamente navegavel para o cliente. Outra coias, conseguimos vantagem sobre os concorrentes, sabe porque? O site deles é extremamente pesado, lento e dificil! O nosso site está em desenvolvimento, e estamos refinando a proposta continuamente!

E o meu chefe ficou bravo com isso: não! eu perdi noites de sono com essas funcionalidades: não!

E quanto a velocidade? Voce é daqueles que diz que fez gambiarra porque tinha que programar rapido? Então leia:

A maioria deles(gerentes) quer um codigo bom. Mesmo estourando o prazo. Eles podem proteger com paixão

os prazos e os requisitos, mas essa é a função deles. A sua é proteger o codigo com essa mesma paixão

E se ainda resta duvida quanto a velocidade, leia esse post do Henrique Bastos: Reflexões sobre o programador lento

Depois dessa só me resta dizer, que mais vale um programador “lento” que entrega um codigo limpo e funcionando perfeitamente, do que um programador “ultra rapido”, que entrega uma merda de codigo, que tem milhoes de bugs e que vai faze-lo ser 1000 vezes mais lento no futuro!

Fica a dica! ;D

Qualidade do codigo


Santa ignorância

Um dia, no núcleo de pesquisa de sistema de informação (NSI) onde eu trabalho, estava a maior discussão, de como a maioria dos professores ficam parados no tempo e não procuram evoluir e aprender novas técnicas e tendências do mercado. Bom no meio de discussão meu chefe solta a seguinte frase: “O meio conhecimento é pior que a ignorância.”.

Se pararmos pra pensar, esta frase está realmente correta. Muitas pessoas na área do desenvolvimento de software estudam as coisas pela metade e acabam falando besteira, usando técnicas de forma errada, dizendo o que não deviam.

Numa aula de Java, um professor, doutorando, disse que faríamos um projeto durante o semestre usando XP! Eu logo imaginei que usaríamos TDD, programação em par, e mais coisas básicas de qualquer projeto que usa XP. Pra minha surpresa, logo depois ele disse que queria o software todo documentado no papel, que o trabalho era individual, e mais outras bizarrices que nem vou dizer aqui!! xD

O mais triste é ver que este tipo de pessoa é comum. Elas falam de coisas das quais não tem nenhum conhecimento, nem o básico!!! Sei que não tenho quase nenhuma experiência pra falar desse assunto, porém diferente desses tipos, eu procuro aprender, estudar, ler exaustivamente, antes de falar de algo, principalmente se estou ensinando isso!

Bom, se você deseja ser grande, assim como eu desejo, estude, leia muito, leia mais, pratique o que você aprendeu e não aceite a opnião de qualquer um!!!

Cuidado! Os falsos profetas do agilismo estão a solta!


%d bloggers like this: