Resumo do 1º Seminário Catarinense de Qualidade e Teste de Software

Setembro 23, 2008 por ronaldo

Como prometido no outro post, irei escrever um pouco sobre o que foi apresentado no 1º Seminário Catarinense de Qualidade e Teste de Software. Participei do evento junto com o Marcos e o Alessandro, ambos meus parceiros de trabalho.

Como sou da área de desenvolvimento, confesso que fiquei um pouco surpreso com a quantidade de gente que trabalha com teste de software e o quanto é desenvolvido essa área.

Em meu pensamento o teste teria que ser uma das últimas tarefas a serem feitas, mas todos os palestrantes deixaram claro que os testes devem iniciar junto com o projeto, ou seja, deve seguir a mesma “linha” do desenvolvimento, começando pelos testes unitários.

Para quem programa em PHP, os teste unitários podem ser feitos com o PHPUnit, que é similar ao JUnit do Java, onde você escreve script de testes, para testar um retorno de uma função por exemplo. Por isso os testes começam junto com o projeto, pois primeiramente você escreve os seus testes unitários para as suas funções, para poder comparar com o retorno esperado.

Um dos pontos fundamentais em um início de projeto é análise de requisitos, que são as características que o nosso sistema deve ter, para atender as expectativas do cliente. E nessa fase se necessário, podemos perder alguns dias de desenvolvimento, para podermos planejar tudo que é necessário ter em nosso sistema, para que lá na frente não tenhamos surpresa, alguma mudança que possa acarretar uma mudança mais brusca.

Na análise de requisitos devemos também praticar a análise de ambigüidade que serve para identificar os requisitos que podem levar a interpretações diferentes por pessoas diferentes, para que não tenhamos o mesmo resultado do exemplo abaixo:

Projeto novo brinquedo – Requisitos

- O objetivo do projeto é construir um brinquedo que cause emoção e possa ser usado por crianças
- Deverá ter subida e descidas íngremes de forma que o usuário sinta medo
- O veículo deve poder levar crianças e ter no mínimo quatro rodas
- O veículo deve rodar sobre trilhos em alta velocidade
- Deve ter um mecanismo de proteção para os passageiros

Atendendo os requisitos, temos um brinquedo igual a este:

Se você perceber todos os requisitos foram atendidos na imagem acima, mas na verdade o brinquedo deveria ser igual a este:

Portanto é preciso deixar bem claro a definição dos requisitos.

O evento foi bem válido, queria parabenizar o pessoal da organização, pois os palestrantes eram muito bons, todas as palestras começaram nos horários previstos e a estrutura do SENAI – CTAI pode comportar a todos os participantes com qualidade.

E o mais importante, como a inscrição para o evento eram dois litros de leite, foram arrecadados mais de 300 litros de leite, para a SERTE.

1º Seminário Catarinense de Qualidade e Teste de Software

Setembro 18, 2008 por ronaldo
Supreme Quality

1º Seminário Catarinense de Qualidade e Teste de Software

Amanhã (18/09) acontece o primeiro Seminário Catarinense de Qualidade e Teste de Software, o evento será aqui em Florianópolis. Toda a parte do setor de programação aqui da Kombo estará presente.

No Seminário serão apresentadas palestras e cases sobre assuntos de Qualidade e Teste de Software, de forma que sejam englobados os temas mais relevantes e práticos da área.

Programação do evento:

08:30    09:00    Credenciamento
09:00    09:30    Supreme Quality:  Érika Hmeljevski – Abertura
09:30    10:15    Real Testing:  Lucas Nazário dos Santos – Projeto de software com testes unitários
10:15    10:30    Coffee-break
10:30    11:15    Test Anywhere: Elias Nogueira – Automação de Testes: Mitos e Verdades
11:15    12:00    ALATS: Trayahú Moreira – Processo de Teste tratado como Projeto
12:00    13:30    Intervalo para almoço
13:30    14:15    ID+ Design: João Costa – A importância do design na qualidade de software
14:15    15:00    Nexxera:Marcello Lima – A qualidade aplicada no processo de testes: Da análise dos requisitos até a geração dos casos de testes
15:00    15:45    Audare: Fábio Sumiya – Engenharia de Software, Ação e Planejamento de Fábrica de Teste
15:45    16:00    Coffee-break
16:00    16:45    Innovit: Adail Retamal – Agilidade e Qualidade: Lados da mesma moeda
16:45    17:30    Testware: Kleber Gimenes Greco – Bureau remoto de testes
17:30    18:15    Testsoft: Rodrigo Peter – Testes Funcionais de Software

Para maiores informações, acesse o site do evento.

Pretendo depois fazer um post sobre o que foi apresentado no seminário.

Dicas para iniciantes em PHP

Junho 9, 2008 por ronaldo

Vejo muita gente que programa em PHP, mas conhece muito pouco da linguagem, orientação a objeto então passa longe.

Por isso resolvi fazer esse post, com algumas dicas/ferramentas que poderão ajudar no desenvolvimento não só de PHP, mas do seu dia a dia.

Query browser – Ferramenta para trabalhar com o Mysql de forma rápida e intuitiva (http://www.mysql.com/products/tools/query-browser/).

Smarty Template – Extremamente útil, serve para separar a programação php do layout do site, ideal para quem trabalha com webdesigner (http://smarty.php.net).

PHPMailer – Excelente classe para envio de e-mails (http://sourceforge.net/projects/phpmailer).

Toad – Comparação de estrutura, dados entre dois bancos. Excelente ferramenta, muito útil em migrações (http://www.quest.com/toad-for-mysql/).

Firebug – Plugin para o Firefox que adiciona ao navegador inúmeras ferramentas para facilitar a tarefa de desenvolvimento de páginas web. Ele possibilita a identificação e eliminação de erros de programação, edição e também o monitoramento de CSS, HTML e JavaScript presentes em qualquer página da internet (https://addons.mozilla.org/firefox/addon/1843).

Web developer – Mais um plugin para o Firefox com várias ferramentas para desenvolvedores como redimensionamento de janelas, depuração de formulários e imagens, links para validação de páginas e ferramentas de otimização (https://addons.mozilla.org/firefox/addon/60).

IDE – Cada um usa a de sua preferência, mas atualmente usamos o Notepad++ e o Nusphere. (http://notepad-plus.sourceforge.net/ e http://www.nusphere.com/)

Jquery – Framework javascript, todo desenvolvedor web deveria usar, nãoi sei como eu programava em javascript sem usar isso antes (http://jquery.com/).

XML – Aconselho a usar extensão SimpleXML do php (http://www.php.net/simplexml).

Expressões regulares – Se você está buscando algo para estudar, estude expressões regulares. Vale muito à pena (http://guia-er.sourceforge.net/ ótimo guia sobre er do Aurélio).

Fpdf – Classe que gera arquivos em pdf (http://guia-er.sourceforge.net/).

Sem falar em orientação a objetos, que por incrível que pareça muito pouca gente usa, a qualidade dos código em php ainda são muito fracos, ainda vemos muito código macarrão e POG.

Leiam livros, teve um professor meu que disse “- A pessoa que não lê pelo menos um livro relacionado a sua área de atuação, deveria se sentir envergonhada”, concordo plenamente.

Foi o que eu lembrei por enquanto.
Bons estudos!

PHP CONFERENCE BRASIL 2008

Junho 9, 2008 por ronaldo

Definidas as datas e local:
27, 28 e 29 de Novembro na UNIFIEO, Osasco – SP
Mais detalhes em breve!

Via blog do Silvano Jr

Melhoria x Retrabalho

Junho 3, 2008 por ronaldo

Semana passada aqui na Kombo estávamos discutindo sobre qual a diferença entre melhoria e retrabalho.
Chegamos a seguinte definição, deixando claro que o nosso foco é desenvolvimento de software.

- Melhoria: É quando um cliente já usa o produto e de alguma forma a solução já supre as suas necessidades. Quando ocorrer alguma mudança, será algo que não vai mudar a forma de como o cliente fazia antes, serão mudanças simples, sem grandes impactos.

- Retrabalho: Ocorre quando o planejamento falhou, é quando a solução nem chegou ao cliente ainda, e no meio ou no final do desenvolvimento é alterado todo o funcionamento da solução. A equipe de desenvolvimento tem que alterar tudo, gerando grande perda de tempo e custo.

Quem tiver alguma outra definição, favor comentar.

Estratégias competitivas

Maio 24, 2008 por ronaldo

Para lidar com as forças competitivas as empresas necessitam oferecer produtos ou serviços que sejam atraentes ao seu público alvo. Ter produtos de baixo preço ou produtos diferenciados de seus concorrentes são exemplos de como isso pode ocorrer.

Para obter vantagem as empresas estabelecem estratégias que determinam como pretendem competir no mercado. Apesar de cada empresa possuir suas próprias estratégias de atuação, existem estratégias genéricas em que a maioria faz uso. São elas:

Estratégia de Liderança em Custo: consiste em oferecer ao mercado produtos e/ou serviços de baixo custo no seu ramo de atividades. A competitividade em relação à concorrência vem do preço final do produto/serviço.

Estratégia de Diferenciação: consiste em encontrar maneiras de diferenciar produtos ou serviços da empresa em relação a seus concorrentes, ou reduzir as vantagens de diferenciação que seus concorrentes já possuem.

Estratégia de Inovação: consiste em encontrar novas maneiras de fazer negócios. Isto envolve o desenvolvimento de produtos/serviços exclusivos, ou o ingresso em mercados exclusivos que até então não eram explorados por ninguém. Isso pode envolver, inclusive, mudanças radicais nos processos de produção e distribuição da empresa, e gerar profundas mudanças até mesmo na forma como determinado ramo de negócios atua.

Estratégia de Crescimento: Consiste em fazer a empresa crescer para se tornar mais competitiva. O crescimento pode se dar através da expansão significativa da capacidade da empresa para produzir bens e serviços, da expansão para mercados mundiais, ou através da integração com outros produtos e serviços.

Estratégia de Aliança: consiste em estabelecer vínculos e alianças comerciais com clientes, fornecedores, concorrentes, consultores ou qualquer outro agente do mercado. Esses elos podem incluir fusões, aquisições, formação de empresas virtuais, ou ainda acordos de marketing, manufatura ou distribuição entre a empresa e seus parceiros comerciais.

Esse foi mais um trabalho feito na disciplina de Gestão da Informação.

Planejar para quê?

Abril 25, 2008 por ronaldo

Todos nos já passamos por momentos no qual sabíamos que pouparíamos muitos transtornos se tivéssemos pensado melhor no que fazer antes de agirmos.

O dito popular “quem não tem cabeça tem que ter perna” é a prova disso, porque quando agimos ao acaso, fazemos tudo às pressas e talvez com resultados frustrantes.
Por isso planejamos para poder identificar o que deve ser feito, para saber qual direção deve ser tomada. É a já conhecida questão do foco.

Sem um foco, saímos dando “tiro” para tudo quanto é lado, querendo acertar diversos alvos e acabamos na maioria das vezes não acertando nada. E com isso são feitos gastos a cada nova tentativa e temos um prejuízo com os tiros desperdiçados.

Então, quando você tiver uma idéia ou um volume muito grande de coisas para fazer e nem sabe por onde começar, planeje muito bem antes as tarefas e aí sim você pode começar a dar o primeiro passo em um projeto.

Preciso de um software! E agora?

Abril 3, 2008 por ronaldo

Sua empresa começa a crescer e chega certo ponto que para gerir tantos processos é necessário começar a usar softwares. Algumas dicas que devem ser levadas em conta antes de comprar ou fazer um software.

1) Desenvolvimento In-house É contratado pessoas para desenvolverem o software dentro mesmo da empresa.

Vantagens
- Com o desenvolvimento do sistema dentro da empresa, pode-se ter a maior chance de que todos os pré-requisitos do sistema serão atendidos.
- Manutenção e atualização do sistema a qualquer momento.

Desvantagens
- Dificuldade na substituição de membros da equipe de desenvolvimento.
- A empresa perder foco em seu “core business” (atividade principal da empresa) e gastar tempo e recursos em “meios”. Ex: Universidade está desenvolvendo seu próprio software. Perde totalmente o foco da universidade que são os alunos e não desenvolvimento.
- Pode ser mais trabalhoso, mais demorado e mais caro.

2) Pacotes de Software

É comprado um pacote já pronto de software. Ex: Pacote de software para automação de escritórios. Atende as funções mais comuns da empresa.

Vantagens
- Redução do trabalho de projeto, programação, instalação e manutenção.
- Ganho de tempo.
- Redução de recursos internos em sistemas de informação.
-Usar um sistema já testado e estável.

Desvantagens
- Pode não atender requerimentos próprios da organização.
- Pode não atender bem muitas funções comerciais.
- A customização aumenta o gasto do desenvolvimento.
- A empresa se molda ao software quando deveria ser o inverso.

3) Terceirização
Sistemas construídos e às vezes operados por fornecedor externo.

Vantagens
- Transformação de custos fixos em variáveis.
- Liberação de recursos humanos para outros projetos.
- Liberação de recursos financeiros.
- A empresa preocupa-se com seu “core business” (atividade principal da empresa).

Desvantagens
- Perda do controle das funções dos sistemas de informação.
- Vulnerabilidade de informações estratégicas.
- Dependência de fornecedores externos no que se refere à atualização.

Até que as aulas de Gestão da informação estão servindo para alguma coisa.
No próximo post irei falar um pouco mais sobre a terceirização.

SCRUM ecologicamente correto

Novembro 23, 2007 por ronaldo

Quem usa SCRUM no dia a dia, sabe a quantidade de lixo que gera, pois depois de uma sprint temos que jogar todos os post-its no lixo, pois não tem como reaproveitá-lo.

Na empresa onde eu trabalho, resolvemos adotar o SCRUM ecologicamente correto. Nada de papel, os post-its são feitos com imã e a placa onde são fixados é de metal.

Ao final de cada sprint é só apagar todos os post-its e pronto! É só usar novamente.

Temos também a caricatura de cara membro do time, que é colocada em cima de qual tarefa a pessoa está realizando.

As fotos foram tiradas pelo Abu, que passou essa semana na empresa para saber como estávamos após a implantação do SCRUM (desde Agosto de 2007).

Digo para vocês que em um ano, finalizamos quatro módulos e após o SCRUM, estamos finalizando um módulo em menos de um mês. Será que vale a pena?

Scrum ecologicamente correto Scrum ecologicamente correto

Scrum ecologicamente correto Scrum ecologicamente correto

Lançamento do livro: PHP Programando com Orientação a Objetos

Outubro 24, 2007 por ronaldo

Foi lançado a mais ou menos há 20 dias o livro do Pablo Dall’oglio sobre orientação a objetos em PHP e também inclui Design Patterns. O livro chama-se PHP Programando com Orientação a Objetos.

O livro aborda desde os conceitos básicos de orientação a objetos como herança, encapsulamento, abstração, polimorfismo, associação, agregação, composição, interfaces, tratamento de exceções, manipulação de XML e Web Services, sempre através de exemplos 100% funcionais e comentados.

Conheci o Pablo em uma de suas palestras, sobre PHP-GTK2 no PHP Conference 2006. Ele explica com muita facilidade e conhece muito bem sobre PHP, por isso acredito que o livro deve ser de fácil entendimento e de boa leitura.

Quem quiser pode dar uma folheada em algumas páginas do livro.

Já encomendei o meu, agora é só aguardar.