Evento de Metodologias Ágeis na FACENSA

Dezembro 17, 2008

O Curso de Sistemas de Informação da FACENSA, com o apoio do GUMA,  estará promovendo dia 06/01/09, uma palestra sobre Metodologias Ágeis de Software.

Este evento visa coletar alimentos para o Asilo Santa Bárbara.

Mais informações do evento no site do GUMA.


PHP Conference Brasil 2008 – Descrição das palestras em Inglês

Dezembro 3, 2008

Christopher Jones, da Oracle, me pediu que colocasse a descrição em inglês das palestras que apresentei no PHP Conference Brasil 2008. Veja o post no Blog do Chris aqui.

Abaixo, segue o resumo de ambas apresentações.

 

Short Descriptions of Presentations – PHP Conference Brazil 2008

Christopher Jones, from Oracle, asked me to put a brief description of lectures in English on the blog.  Below follows a summary of both presentations. See the original post here.

 

Presentation 1 – Coding Standards and Refactoring with PHP 

In this presentation held in PHP Conference Brazil 2008, I showed it is possible to develop PHP code with quality, focusing on best practices standards and refactoring techniques of code.  For this, equivalent tools which have existed for some time in technologies like Java and .NET can be also used for PHP.  These tools are:

PHP Tool                           Java Equivalent

PHPUnit                            JUnit
PHP Code Sniffer                CheckStyle
PHPUnit PMD/CPD               PMD/CPD
PHPUnit Code Coverage       Cobertura
IDE Eclipse PDT                  IDE Eclipse
PHPDocumentor                  JavaDoc
Apache ANT                      Apache ANT
phpUnderControl                 CruiseControl

 

In addition to the techniques demonstrated, I discussed values and practices of Agile Software Methodologies, with a focus on LeanSCRUM and XP. It’s been very interesting to see the public receptivity for Agile Methodologies and PHP.

 

Presentation 2 – Applying Patterns of Enterprise Architecture with PHP

PHP is a language known for developing programs more focused on the WEB.  People are used to hearing about in PHP for development of WEB sites. Soon development of enterprise applications using PHP comes. In this presentation, I gave concepts of Software Architectures, Design Patterns, SOA, Web Services and Enterprise Applications. In addition to these concepts, I also showed the types of Enterprise Patterns used in most applications (also involving other technologies like Java and .NET). After this introduction, the content was directed to patterns of architecture and enterprise applications addressed by Martin Fowler. In the end, I showed a case study of a corporate application developed in PHP, using a set of patterns of architecture.

 

 


Aplicando Padrões de Arquitetura Corporativas com PHP

Dezembro 1, 2008

PHP é uma linguagem conhecida de desenvolvimento de programas mais focado na WEB. As pessoas estão acostumadas a ouvir falar em PHP para desenvolvimento de sites. Pouco se fala em desenvolvimento de aplicações corporativas usando PHP. Nesta apresentação, apresento conceitos sobre Arquiteturas de Software, Padrões (Patterns), SOA, Web Services e Aplicações Corporativas. Além destes conceitos, é mostrado também os tipos de Enterprise Patterns mais usados em aplicações (envolvendo também outras tecnologias como Java e .NET). Após estas introduções, o conteúdo é direcionado para padrões de arquitetura de aplicações corporativas abordados pelo Martin Fowler (www.martinfowler.com). No final, mostro um estudo de caso de uma aplicação corporativa desenvolvida em PHP, usando um conjunto de padrões de arquitetura.


Padrões de Codificação e Refactoring com PHP

Dezembro 1, 2008

Nesta apresentação realizada no PHP Conference Brasil 2008, mostro que é possível sim desenvolver código com qualidade em PHP, focando em boas práticas de padrões de codificação e técnicas de refactoring de código. Para isso, se pode utilizar ferramentas existentes para PHP e que já existem há um certo tempo para tecnologias como Java e .NET. Estas ferramentas são:

Para PHP                    Equivalente em Java
PHPUnit                            JUnit
PHP Code Sniffer              CheckStyle
PHPUnit PMD/CPD           PMD/CPD
PHPUnit Code Coverage   Cobertura
IDE Eclipse PDT               IDE Eclipse
PHPDocumentor              JavaDoc
Apache ANT                    Apache ANT
phpUnderControl            CruiseControl
 
Além das técnicas demonstradas, abordo valores e práticas das Metodologias Ágeis de Software, com foco em Lean, SCRUM e XP. Está sendo muito interessante a receptividade do público em relação às Metodologias Ágeis com PHP.


PHP Conference Brasil 2008

Dezembro 1, 2008

Neste final de semana, aconteceu em SP o PHP Conference Brasil 2008, principal evento de Tecnologia PHP da América Latina. Neste evento, ministrei duas palestras.

  • Padrões de Codificação e Refactoring com PHP
  • Aplicando Padrões de Arquitetura Corporativas com PHP

Minha intenção é mostrar que PHP é muitas que linguagem para escrever forms e páginas WEB.

Em breve estarei postando os slides aqui no Blog.


Descobrindo as Metodologias Ágeis

Agosto 12, 2008

Para iniciar os artigos no meu Blog, eu gostaria de relatar um pouco da minha experiência com desenvolvimento de software e sua relação com as Metodologias Ágeis. Descobri o desenvolvimento de software por acaso, através de um curso profissionalizante Técnico em Processamento de Dados (TPD) que iniciei em 1993, seguindo alguns amigos. No início, eu não estava muito interessado, até conhecer o universo da Programação. Descobri que aquilo me fascinava e, de certa forma, me desafiava também. Comecei a fazer fluxogramas, algoritmos até o meu primeiro programa em BASIC. Aquela experiência foi decisiva para a definição da minha carreira profissional.

Dali em diante, depois do uso de quase duas dezenas de linguagens de programação, alguns cursos e muito aprendizado e softwares desenvolvidos, estou aqui para compartilhar com vocês um pouco destas experiências.

A primeira e mais inusitada foi a descoberta das metodologias ágeis. Em 1996, eu era bolsista em uma Universidade, tinha entrado no Curso Superior, cheio de expectativas e anseios. No setor onde trabalhava (Assessoria Especial de Planejamento/Apoio Técnico Pedagógico), basicamente digitava textos. Em horários de folga, estudava novas tecnologias e procurava novos desafios. Em outubro deste mesmo ano, vi que os chefes do setor criaram uma espécie de questionário de avaliação, denominado Avaliação Institucional, que seria aplicado a professores e alunos. Esta era também uma exigência do MEC.

Quando olhei aqueles formulários, pensei diretamente no desenvolvimento do software. Muita empolgação, pouca experiência…

Inicialmente, este projeto seria desenvolvido pelo CPD da Instituição, onde trabalhavam grande parte dos professores. Quando disse que tinha condições de desenvolver o projeto, os chefes ficaram apreensivos, mas compraram a idéia. Para iniciar o projeto, precisei chamar um colega meu de TPD e de faculdade, que poderia trabalhar meio turno comigo. Fizemos uma reunião inicial com o coordenador do projeto (chefe do CPD) e conversas diárias com os chefes do setor de Planejamento.

A minha sala era muito pequena, razão pela qual tinha apenas uma máquina (486 DX2 66 Mhz) e uma impressora matricial IBM 132 colunas. Combinei com este meu colega de trabalharmos juntos pela manhã no projeto e a tarde eu desenvolvia mais algumas funções do software além do trabalho do setor, que não podia parar.

A tecnologia que utilizamos na época era Clipper, versão 5.2.

Pegamos aqueles formulários e após algumas análises preliminares, conseguimos esboçar um modelo conceitual. Como havia apenas um computador, trabalhamos juntos, ora eu pilotando, ora ele. Tivemos que realizar alguns trabalhos de importação, parte da base COBOL da Instituição e outra parte de uma base ZIM, do Recursos Humanos.

Foi muito interessante o nosso aprendizado, pois conseguimos produzir um código muito enxuto, cada vez mais otimizado e sem gerar desperdício, pois o cliente estava ali na sala ao lado para acompanhar e direcionar as funcionalidades do projeto. Cada vez que percebíamos uma oportunidade de melhoria, realizávamos. Procurávamos ter versões diárias, sempre verificando e validando informações com os usuários/clientes. Concluímos esta versão em dois meses. A primeira versão compreendia funcionalidades básicas de operação e módulo de digitação para professores e alunos. Ficou para depois o desenvolvimento de relatórios gerenciais, até porque o pessoal do setor não os tinha definido. Este software funcionou em 8 Campi Universitários, fazendo o registro de questionários de mais de 9 mil alunos. Nos anos seguintes, exigiu pouquíssima manutenção.

Até onde sei, este sistema funcionou até 2002, pois saí da Instituição em 2000.

Algumas práticas importantes:

·         Comunicação efetiva

·         Padrões nas práticas de trabalho e de codificação

·         Pair Programming

·         Inspeções/Revisões de Código

·         Cliente presente

·         Projeto simplificado ao extremo

Em 1997, comecei a trabalhar com OO e Smalltalk. Programei por dois anos nesta linguagem, onde tomei conhecimento de alguns trabalhos e pessoas envolvidas com a tecnologia, entre eles o de Kent Beck.

Passaram-se alguns anos e, em 2001, através de conversas com o Klaus Wuestefeld, fiquei sabendo um pouco mais sobre eXtreme Programming. Quando vi o nome de Kent Beck e qual era o objetivo deste processo, tive certeza que funcionava. Foi paixão a primeira leitura. Quanto mais eu estudava, mais eu lembrava do projeto de Avaliação Institucional que, através do sucesso obtido e da satisfação do cliente, foi um degrau muito importante na minha vida. Embora já tivesse estas convicções, decidi que iria desenvolver software focado na comunicação efetiva, simplicidade, feedback e respeito do cliente, tendo como base os princípios ágeis.